mirror of
				https://github.com/frebib/dotfiles.git
				synced 2024-06-14 12:57:23 +00:00 
			
		
		
		
	Compare commits
	
		
			23 Commits
		
	
	
		
			master
			...
			surface-do
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7ebb5ab79d | |||
| 2733f214eb | |||
| cb4c89ab5b | |||
| c329271f0f | |||
| 1d12a5afab | |||
| 80fc648fad | |||
| ae855ed967 | |||
| 5f76cace04 | |||
| daea729cc8 | |||
| 94b221ebb3 | |||
| 7bbe3f07c0 | |||
| 1f8272d259 | |||
| 061f358a7f | |||
| 914881a320 | |||
| 0c99fe83be | |||
| 4c578cad6f | |||
| a394c223c9 | |||
| 1e84320fab | |||
| d7f5ff2d77 | |||
| fe1365f444 | |||
| ead1c1fcc3 | |||
| 5786aee59f | |||
| 2ac5f09b83 | 
							
								
								
									
										96
									
								
								.Xresources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								.Xresources
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| !!============================================================================= | ||||
| !! RXVT-unicode setting | ||||
| !!============================================================================= | ||||
|  | ||||
|  | ||||
| urxvt.depth:                32 | ||||
|  | ||||
| urxvt.internalBorder:       4 | ||||
| urxvt.blurRadius:           25 | ||||
| urxvt.scrollBar:            false | ||||
| urxvt.saveLines:            10000 | ||||
| urxvt.preeditType:          Root | ||||
| urxvt.jumpScroll:           false | ||||
| urxvt.altSendsEscape:       true | ||||
|  | ||||
| xterm.metaSendsEscape:      true | ||||
|  | ||||
| !Set TERM | ||||
| urxvt.termName:             xterm-256color | ||||
|  | ||||
| Xft.dpi:                    96 | ||||
| Xft.antialias:              true | ||||
| Xft.rgba:                   rgb | ||||
| Xft.autohint:               false | ||||
| Xft.hinting:                true | ||||
| Xft.hintstyle:              hintfull | ||||
| urxvt*font:                 xft:Sauce Code Pro:style=Regular:size=9 | ||||
| urxvt*imFont:               xft:Sauce Code Pro:style=Regular:size=9 | ||||
| urxvt*boldFont:             xft:Sauce Code Pro:style=Bold:size=9 | ||||
| urxvt*italicFont:           xft:Sauce Code Pro:style=Italic:size=9 | ||||
| urxvt*boldItalicFont:       xft:Sauce Code Pro:style=Bold,Italic:size=9 | ||||
|  | ||||
|  | ||||
| ! clickable Url and copy paste keys | ||||
|  | ||||
| urxvt.iso14755:             false | ||||
| urxvt.iso14755_52:          false | ||||
| urxvt.perl-ext-common:      default,clipboard,vtwheel,font-size | ||||
| urxvt.keysym.Shift-Control-C:   perl:clipboard:copy | ||||
| urxvt.keysym.Shift-Control-V:   perl:clipboard:paste | ||||
| urxvt.url-launcher:         /usr/bin/chromium | ||||
| urxvt.matcher.button:       1 | ||||
|  | ||||
| urxvt.keysym.C-Up:     font-size:increase | ||||
| urxvt.keysym.C-Down:   font-size:decrease | ||||
| urxvt.keysym.C-S-Up:   font-size:incglobal | ||||
| urxvt.keysym.C-S-Down: font-size:decglobal | ||||
|  | ||||
| Xft.lcdfilter:              lcddefault | ||||
|  | ||||
| ! special | ||||
| *.foreground:               #ECEFF1 | ||||
| *.background:               #002B36 | ||||
| !*.cursorColor:              #ECEFF1 | ||||
| *.cursorColor:              #5294E2 | ||||
| *.highlightColor:           #5294E2 | ||||
| urxvt.background:           [95]#383C4A | ||||
| urxvt.scrollColor:          #767B87 | ||||
| urxvt*dynamicColors:        on | ||||
| urxvt*highlightSelection:   true | ||||
| urxvt*colorMode:            on | ||||
|  | ||||
| ! black | ||||
| *.color0:       #333638 | ||||
|  | ||||
| !white | ||||
| *.color15:      #eceff1 | ||||
|  | ||||
| ! gray | ||||
| *.color7:       #8b9396 | ||||
| *.color8:       #475760 | ||||
|  | ||||
| ! red | ||||
| *.color1:       #ff3f00 | ||||
| *.color9:       #ef5345 | ||||
|  | ||||
| ! green | ||||
| *.color2:       #8bc34a | ||||
| *.color10:      #9ccc65 | ||||
|  | ||||
| ! yellow | ||||
| *.color3:       #ffc107 | ||||
| *.color11:      #ffa000 | ||||
|  | ||||
| ! blue | ||||
| *.color4:       #0266f4 | ||||
| *.color12:      #3f86da | ||||
|  | ||||
| ! magenta | ||||
| *.color5:       #cc17cc | ||||
| *.color13:      #a56ecC | ||||
|  | ||||
| ! cyan | ||||
| *.color6:       #10aeba | ||||
| *.color14:      #5ddae2 | ||||
|  | ||||
							
								
								
									
										93
									
								
								.config/compton.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								.config/compton.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
| # Shadow | ||||
| shadow = true;					# Enabled client-side shadows on windows. | ||||
| no-dock-shadow = true;			# Avoid drawing shadows on dock/panel windows. | ||||
| no-dnd-shadow = false;			# Don't draw shadows on DND windows. | ||||
| clear-shadow = true;			# Zero the part of the shadow's mask behind the | ||||
| 								# window. Fix some weirdness with ARGB windows. | ||||
| shadow-radius = 12;				# The blur radius for shadows. (default 12) | ||||
| shadow-offset-x = -16;	    	# The left offset for shadows. (default -15) | ||||
| shadow-offset-y = -16;			# The top offset for shadows. (default -15) | ||||
| shadow-opacity = 0.65;			# The translucency for shadows. (default .75) | ||||
| # shadow-red = 0.0;				# Red color value of shadow. (0.0 - 1.0, defaults to 0) | ||||
| # shadow-green = 0.0;			# Green color value of shadow. (0.0 - 1.0, defaults to 0) | ||||
| # shadow-blue = 0.0;			# Blue color value of shadow. (0.0 - 1.0, defaults to 0) | ||||
| shadow-exclude = [ "class_g = 'slop'" ];	# Exclude conditions for shadows. | ||||
| shadow-ignore-shaped = false;	# Avoid drawing shadow on all shaped windows | ||||
| 								# (see also: --detect-rounded-corners) | ||||
|  | ||||
| # Opacity | ||||
| menu-opacity = 0.9;				# The opacity for menus. (default 1.0) | ||||
| inactive-opacity = 0.8;			# Default opacity of inactive windows. (0.0 - 1.0) | ||||
| active-opacity = 1.0;			# Default opacity for active windows. (0.0 - 1.0) | ||||
| frame-opacity = 1.0;			# Opacity of window titlebars and borders. (0.1 - 1.0) | ||||
| inactive-opacity-override = true;	# Let inactive opacity set by 'inactive-opacity' overrides | ||||
| 								# value of _NET_WM_OPACITY. Bad choice. | ||||
| opacity-rule = [ | ||||
|   "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" | ||||
| ]; | ||||
| alpha-step = 0.06;				# XRender backend: Step size for alpha pictures. Increasing | ||||
| 								# it may result in less X resource usage, | ||||
| 								# Yet f ading may look bad. | ||||
| # inactive-dim = 0.2;			# Dim inactive windows. (0.0 - 1.0) | ||||
| #inactive-dim-fixed = true;		# Do not let dimness adjust based on window opacity. | ||||
| inactive-opacity-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ]; | ||||
| blur-background = true;		    # Blur background of transparent windows. | ||||
| blur-background-exclude  = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'" ]; | ||||
| blur-background-frame = false;	# Blur background of opaque windows with transparent | ||||
| 								# frames as well. | ||||
| blur-background-fixed = true;	# Do not let blur radius adjust based on window opacity. | ||||
| 								# Exclude conditions for background blur. | ||||
| blur-kern = "5,5,0.894839,0.932912,0.945959,0.932912,0.894839,0.932912,0.972604,0.986207,0.972604,0.932912,0.945959,0.986207,0.986207,0.945959,0.932912,0.972604,0.986207,0.972604,0.932912,0.894839,0.932912,0.945959,0.932912,0.894839" | ||||
|  | ||||
| # python compton-convgen.py --dump-compton gaussian 9 -f=sigma=10 | ||||
|  | ||||
| # Fading | ||||
| fading = true;					# Fade windows during opacity changes. | ||||
| # fade-delta = 16;				# The time between steps in a fade in milliseconds. (default 10). | ||||
| fade-in-step = 0.025;			# Opacity change between steps while fading in. (default 0.028). | ||||
| fade-out-step = 0.02;			# Opacity change between steps while fading out. (default 0.03). | ||||
| # no-fading-openclose = true;	# Avoid fade windows in/out when opening/closing. | ||||
| # fade-exclude = [ ];				# Exclude conditions for fading. | ||||
|  | ||||
| # Other | ||||
| backend = "glx"					# Backend to use: "xrender" or "glx". GLX backend is typically | ||||
| 								# much faster but depends on a sane driver. | ||||
| mark-wmwin-focused = true;		# Try to detect WM windows and mark them as active. | ||||
| mark-ovredir-focused = true;	# Mark all non-WM but override-redirect windows active (e.g. menus). | ||||
| use-ewmh-active-win = true;		# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused | ||||
| 								# instead of using FocusIn/Out events. Usually more reliable but | ||||
| 								# depends on a EWMH-compliant WM. | ||||
| detect-rounded-corners = true;	# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. | ||||
| detect-client-opacity = true;	# Detect _NET_WM_OPACITY on client windows, useful for window | ||||
| 								# managers not passing _NET_WM_OPACITY of client windows to frame windows. | ||||
| refresh-rate = 0;				# For --sw-opti: Specify refresh rate of the screen. 0 for auto. | ||||
| vsync = "none";					# "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc" | ||||
| 								# See man page for more details. | ||||
| dbe = false;					# Enable DBE painting mode. Rarely needed. | ||||
| paint-on-overlay = true;		# Painting on X Composite overlay window. Recommended. | ||||
| sw-opti = false;				# Limit compton to repaint at most once every 1 / refresh_rate. | ||||
| 								# Incompatible with certain VSync methods. | ||||
| unredir-if-possible = false;	# Unredirect all windows if a full-screen opaque window is | ||||
| 								# detected, to maximize performance for full-screen windows. | ||||
| focus-exclude = [ "i:ai:chromium" ];	# A list of conditions of windows that should always be considered focused. | ||||
| detect-transient = true;		# Use WM_TRANSIENT_FOR to group windows, and consider windows in | ||||
| 								# the same group focused at the same time. | ||||
| detect-client-leader = true;	# Use WM_CLIENT_LEADER to group windows. | ||||
| invert-color-include = [ ];		# Conditions for windows to be painted with inverted color. | ||||
|  | ||||
| # GLX backend					# GLX backend fine-tune options. See man page for more info. | ||||
| glx-no-stencil = true;			# Recommended. | ||||
| glx-copy-from-front = false;	# Useful with --glx-swap-method, | ||||
| # glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync. | ||||
| # glx-no-rebind-pixmap = true;	# Recommended if it works.	 | ||||
| glx-swap-method = "undefined";	# See man page. | ||||
|  | ||||
| # Window type settings | ||||
| wintypes: | ||||
| { | ||||
|   tooltip = { fade = true; shadow = false; opacity = 1; focus = true; }; | ||||
|   # fade: Fade the particular type of windows. | ||||
|   # shadow: Give those windows shadow | ||||
|   # opacity: Default opacity for the type of windows. | ||||
|   # focus: Whether to always consider windows of this type focused. | ||||
| }; | ||||
| @@ -1,18 +1,18 @@ | ||||
| [global] | ||||
|     font = sans 9.5 | ||||
| 
 | ||||
|     font = Noto Sans 10 | ||||
|      | ||||
|     # 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 = full | ||||
| 
 | ||||
|     markup = yes | ||||
|      | ||||
|     # The format of the message.  Possible variables are: | ||||
|     #   %a  appname | ||||
|     #   %s  summary | ||||
| @@ -21,103 +21,109 @@ | ||||
|     #   %I  iconname (without its path) | ||||
|     #   %p  progress value if set ([  0%] to [100%]) or nothing | ||||
|     # Markup is allowed | ||||
|     format = "<b>%s %p</b>\n%b" | ||||
| 
 | ||||
|     format = "<b>%s</b>\n%b" | ||||
|      | ||||
|     # Sort messages by urgency. | ||||
|     sort = yes | ||||
| 
 | ||||
|      | ||||
|     # 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 = left | ||||
| 
 | ||||
|      | ||||
|     # 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 = 60 | ||||
| 
 | ||||
|      | ||||
|     # Split notifications into multiple lines if they don't fit into | ||||
|     # geometry. | ||||
|     word_wrap = yes | ||||
| 
 | ||||
|      | ||||
|     # Ignore newlines '\n' in notifications. | ||||
|     ignore_newline = no | ||||
|      | ||||
|      | ||||
|     # 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. | ||||
| 
 | ||||
|     # dynamic width from 0 to 400 | ||||
|     # width = (0, 400) | ||||
|     # constant width of 400 | ||||
|     width = (320, 360) | ||||
| 
 | ||||
|     # Position the notification in the top right corner | ||||
|     origin = top-right | ||||
| 
 | ||||
|     # Offset from the origin | ||||
|     offset = 30x30 | ||||
| 
 | ||||
|     # 53 = 30 + 23 (bar-height) | ||||
|     geometry = "300x5-30+52" | ||||
|      | ||||
|     # Shrink window if it's smaller than the width.  Will be ignored if | ||||
|     # width is 0. | ||||
|     shrink = yes | ||||
| 
 | ||||
|     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 = 20 | ||||
| 
 | ||||
|     # transparency = 10 | ||||
|      | ||||
|     # 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 = 120 | ||||
| 
 | ||||
|      | ||||
|     # Which monitor should the notifications be displayed on. | ||||
|     monitor = 0 | ||||
| 
 | ||||
|      | ||||
|     # Display notification on focused monitor.  Possible modes are: | ||||
|     #   mouse: follow mouse pointer | ||||
|     #   keyboard: follow window with keyboard focus | ||||
|     #   none: don't follow anything | ||||
|     # | ||||
|     #  | ||||
|     # "keyboard" needs a 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 = 100 | ||||
| 
 | ||||
|     history_length = 20 | ||||
|      | ||||
|     # 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 = 0 | ||||
| 
 | ||||
|      | ||||
|     # 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 = 15 | ||||
| 
 | ||||
|     padding = 12 | ||||
|      | ||||
|     # Horizontal padding. | ||||
|     horizontal_padding = 16 | ||||
| 
 | ||||
|     horizontal_padding = 20 | ||||
|      | ||||
|     # Define a color for the separator. | ||||
|     # possible values are: | ||||
|     #  * auto: dunst tries to find a color fitting to the background; | ||||
| @@ -125,27 +131,25 @@ | ||||
|     #  * frame: use the same color as the frame; | ||||
|     #  * anything else will be interpreted as a X color. | ||||
|     separator_color = frame | ||||
| 
 | ||||
|      | ||||
|     # 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/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources | ||||
| 
 | ||||
|      | ||||
|     # Browser for opening urls in context menu. | ||||
|     browser = /usr/bin/firefox | ||||
|     browser = /usr/bin/chromium | ||||
| 
 | ||||
|     # Align icons left/right/off | ||||
|     icon_position = left | ||||
| 
 | ||||
|     # Scale larger icons down to this size, set to 0 to disable | ||||
|     max_icon_size = 44 | ||||
|     icon_position = off | ||||
| 
 | ||||
|     # Paths to default icons. | ||||
|     icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices | ||||
|     frame_width = 0 | ||||
|     icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ | ||||
| 
 | ||||
|     frame_width = 3 | ||||
|     frame_color = "#404552" | ||||
| 
 | ||||
| [shortcuts] | ||||
| @@ -154,18 +158,18 @@ | ||||
|     # 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 = mod4+Escape | ||||
| 
 | ||||
|      | ||||
|     # Close all notifications. | ||||
|     close_all = ctrl+mod4+Escape | ||||
| 
 | ||||
|      | ||||
|     # Redisplay last message(s). | ||||
|     # On the US keyboard layout "grave" is normally above TAB and left | ||||
|     # of "1". | ||||
|     history = mod4+grave | ||||
| 
 | ||||
|      | ||||
|     # Context menu. | ||||
|     context = mod4+shift+period | ||||
| 
 | ||||
| @@ -200,7 +204,7 @@ | ||||
| # 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 | ||||
							
								
								
									
										44
									
								
								.config/fontconfig/fonts.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								.config/fontconfig/fonts.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| <?xml version="1.0"?> | ||||
| <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | ||||
| <fontconfig> | ||||
|     <match> | ||||
|         <test name="family"> | ||||
|             <string>sans-serif</string> | ||||
|         </test> | ||||
|         <edit name="family" mode="prepend" binding="weak"> | ||||
|             <string>Noto Sans</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|     <match> | ||||
|         <test name="family"> | ||||
|             <string>serif</string> | ||||
|         </test> | ||||
|         <edit name="family" mode="prepend" binding="weak"> | ||||
|             <string>Noto Serif</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|     <match> | ||||
|         <test name="family"> | ||||
|             <string>monospace</string> | ||||
|         </test> | ||||
|         <edit name="family" mode="prepend" binding="weak"> | ||||
|             <string>Sauce Code Pro</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|     <match> | ||||
|         <test name="family"> | ||||
|             <string>Apple Color Emoji</string> | ||||
|         </test> | ||||
|         <edit name="family" mode="prepend" binding="weak"> | ||||
|             <string>Noto Color Emoji</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|     <match target="font"> | ||||
|         <edit name="hintstyle" mode="assign"> | ||||
|             <const>hintfull</const> | ||||
|         </edit> | ||||
|     </match> | ||||
| </fontconfig> | ||||
| @@ -4,31 +4,18 @@ | ||||
| 	signingkey = CFBB6A86 | ||||
| [core] | ||||
| 	autocrlf = input | ||||
| 	excludesfile = /home/frebib/.config/git/gitignore | ||||
| 	pager = diff-highlight | $PAGER | ||||
| [init] | ||||
| 	defaultBranch = master | ||||
| [interactive] | ||||
| 	diffFilter = diff-highlight | ||||
| 	excludesfile = $HOME/.config/git/gitignore | ||||
| 	pager = diff-so-fancy | less | ||||
| [commit] | ||||
| 	gpgsign = true | ||||
| [fetch] | ||||
| 	prune = true | ||||
| [push] | ||||
| 	default = upstream | ||||
| [pull] | ||||
| 	rebase = true | ||||
| 	prune = true | ||||
| [merge] | ||||
| 	ff = only | ||||
| [rebase] | ||||
| 	autoStash = true | ||||
| [remote "origin"] | ||||
| 	fetch = +refs/pull/*/head:refs/remotes/origin/pr/* | ||||
| [remote "upstream"] | ||||
| 	fetch = +refs/pull/*/head:refs/remotes/upstream/pr/* | ||||
| [log] | ||||
| 	date = iso8601-local | ||||
| 	date = relative | ||||
| [format] | ||||
| 	pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset | ||||
| [alias] | ||||
| @@ -36,28 +23,9 @@ | ||||
| 	pushall = !git remote | xargs -L1 git push | ||||
| 	count = !echo $(pwd) && git rev-list HEAD --count | ||||
| 	unpushed = !git log --oneline @{u}..HEAD | ||||
| 	leaders = !git shortlog -s -n --all --no-merges | ||||
| 	defbranch = "!defbranch() { \ | ||||
| 		r=\"${1:-origin}\"; \ | ||||
| 		{ \ | ||||
| 			git symbolic-ref \"refs/remotes/$r/HEAD\" || { \ | ||||
| 				git remote set-head \"$r\" -a >&2 && \ | ||||
| 				git symbolic-ref \"refs/remotes/$r/HEAD\"; \ | ||||
| 			}; \ | ||||
| 		} 2>/dev/null \ | ||||
| 			| sed \"s@^refs/remotes/$r/@@\"; \ | ||||
| 	}; defbranch" | ||||
| 	cleanmerged = "!cleanmerged() { \ | ||||
| 		r=\"${1:-origin}\"; \ | ||||
| 		b=\"${2:-$(git defbranch \"$r\")}\"; \ | ||||
| 		git branch --merged \"$r/$b\" | \ | ||||
| 			grep -ve \"^\\\\*\" -e \"^. $b$\" | \ | ||||
| 			xargs -r git branch -d; \ | ||||
| 	}; cleanmerged" | ||||
| [advice] | ||||
| 	statusHints = false | ||||
| 	pushUpdateRejected = false | ||||
| 	detachedHead = false | ||||
| [sendemail] | ||||
| 	from = Joe Groocock <me@frebib.net> | ||||
| 	smtpserver = smtp.zoho.com | ||||
| @@ -67,6 +35,8 @@ | ||||
| 	suppresscc = self | ||||
| [diff] | ||||
| 	algorithm = patience | ||||
| [interactive] | ||||
| 	diffFilter = diff-so-fancy --patch-mode | ||||
| [color] | ||||
| 	ui = true | ||||
| [color "diff"] | ||||
| @@ -81,5 +51,7 @@ | ||||
| 	oldHighlight = red 88 | ||||
| 	newNormal = green | ||||
| 	newHighlight = green 22 | ||||
| [diff-so-fancy] | ||||
| 	changeHunkIndicators = false | ||||
| 
 | ||||
| # vim: noet | ||||
							
								
								
									
										5
									
								
								.config/gtk-3.0/gtk.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.config/gtk-3.0/gtk.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| VteTerminal, | ||||
| TerminalScreen, | ||||
| vte-terminal { | ||||
|     padding: 6px; | ||||
| } | ||||
| @@ -2,9 +2,9 @@ | ||||
| gtk-theme-name=Arc-Dark | ||||
| gtk-icon-theme-name=Xenlism-Wildfire | ||||
| gtk-application-prefer-dark-theme=true | ||||
| gtk-font-name=sans 9 | ||||
| gtk-font-name=Noto Sans 9 | ||||
| gtk-cursor-theme-name=Breeze_Obsidian | ||||
| gtk-cursor-theme-size=16 | ||||
| gtk-cursor-theme-size=0 | ||||
| gtk-toolbar-style=GTK_TOOLBAR_BOTH | ||||
| gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR | ||||
| gtk-button-images=1 | ||||
							
								
								
									
										19
									
								
								.config/i3/alt-tab.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								.config/i3/alt-tab.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| #!/bin/bash | ||||
| # ================================================================================== # | ||||
| # Focus the next window on the current workspace in i3, e.g. for binding to Alt+Tab  # | ||||
| # Depends: jq, awk, i3wm (obviously)                                                 # | ||||
| # Author: Nervengift <dev@nerven.gift>                                               # | ||||
| # License: Don't think this deserves a license, Public Domain                        # | ||||
| # Known bugs: doesn't work with non-window container focused                         # | ||||
| # ================================================================================== # | ||||
|  | ||||
| ws=$(i3-msg -t get_workspaces|jq "map(select(.focused))[]|.name") | ||||
| echo $ws | ||||
| windows=$(i3-msg -t get_tree|jq ".nodes|map(.nodes[])|map(.nodes[])|map(select(.type==\"workspace\" and .name==$ws))[0].nodes|map(recurse(.nodes[]))|map(.window)|.[]|values") | ||||
| echo $windows | ||||
| current=$(i3-msg -t get_tree|jq "recurse(.nodes[])|select(.focused)|.window") | ||||
| echo $current | ||||
| if [ "x$current" != "xnull" ]; then | ||||
| 	next=$(echo $windows | awk "BEGIN {RS=\" \";FS=\"   \"};NR == 1 {w=\$1};{if (f == 1){w=\$1;f=0}else if (\$1 == \"$current\") f=1};END {print w}") | ||||
| 	i3-msg [id=$next] focus > /dev/null | ||||
| fi | ||||
							
								
								
									
										90
									
								
								.config/i3/blocks/bandwidth
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										90
									
								
								.config/i3/blocks/bandwidth
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| #!/bin/bash | ||||
| # Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de> | ||||
| # Copyright (C) 2014 kaueraal | ||||
| # Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| # Use the provided interface, otherwise the device used for the default route. | ||||
| if [[ -n $BLOCK_INSTANCE ]]; then | ||||
|   INTERFACE=$BLOCK_INSTANCE | ||||
| else | ||||
|   INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }') | ||||
| fi | ||||
|  | ||||
| # Issue #36 compliant. | ||||
| if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ] | ||||
| then | ||||
|     echo "$INTERFACE down" | ||||
|     echo "$INTERFACE down" | ||||
|     echo "#FF0000" | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| # path to store the old results in | ||||
| path="/dev/shm/$(basename $0)-${INTERFACE}" | ||||
|  | ||||
| # grabbing data for each adapter. | ||||
| read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes" | ||||
| read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes" | ||||
|  | ||||
| # get time | ||||
| time=$(date +%s) | ||||
|  | ||||
| # write current data if file does not exist. Do not exit, this will cause | ||||
| # problems if this file is sourced instead of executed as another process. | ||||
| if ! [[ -f "${path}" ]]; then | ||||
|   echo "${time} ${rx} ${tx}" > "${path}" | ||||
|   chmod 0666 "${path}" | ||||
| fi | ||||
|  | ||||
| # read previous state and update data storage | ||||
| read old < "${path}" | ||||
| echo "${time} ${rx} ${tx}" > "${path}" | ||||
|  | ||||
| # parse old data and calc time passed | ||||
| old=(${old//;/ }) | ||||
| time_diff=$(( $time - ${old[0]} )) | ||||
|  | ||||
| # sanity check: has a positive amount of time passed | ||||
| [[ "${time_diff}" -gt 0 ]] || exit | ||||
|  | ||||
| # calc bytes transferred, and their rate in byte/s | ||||
| rx_diff=$(( $rx - ${old[1]} )) | ||||
| tx_diff=$(( $tx - ${old[2]} )) | ||||
| rx_rate=$(( $rx_diff / $time_diff )) | ||||
| tx_rate=$(( $tx_diff / $time_diff )) | ||||
|  | ||||
| # shift by 10 bytes to get KiB/s. If the value is larger than | ||||
| # 1024^2 = 1048576, then display MiB/s instead | ||||
|  | ||||
| # incoming | ||||
| echo -n " " | ||||
| rx_kib=$(( $rx_rate >> 10 )) | ||||
| if [[ "$rx_rate" -gt 1048576 ]]; then | ||||
|   printf '%sk' "`echo "scale=1; $rx_kib / 1024" | bc`" | ||||
| else | ||||
|   echo -n "${rx_kib}k" | ||||
| fi | ||||
|  | ||||
| echo -n " " | ||||
|  | ||||
| # outgoing | ||||
| echo -n " " | ||||
| tx_kib=$(( $tx_rate >> 10 )) | ||||
| if [[ "$tx_rate" -gt 1048576 ]]; then | ||||
|   printf '%sm' "`echo "scale=1; $tx_kib / 1024" | bc`" | ||||
| else | ||||
|   echo -n "${tx_kib}k" | ||||
| fi | ||||
							
								
								
									
										97
									
								
								.config/i3/blocks/battery
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								.config/i3/blocks/battery
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| #!/usr/bin/perl | ||||
| # | ||||
| # Copyright 2014 Pierre Mavro <deimos@deimos.fr> | ||||
| # Copyright 2014 Vivien Didelot <vivien@didelot.org> | ||||
| # | ||||
| # Licensed under the terms of the GNU GPL v3, or any later version. | ||||
| # | ||||
| # This script is meant to use with i3blocks. It parses the output of the "acpi" | ||||
| # command (often provided by a package of the same name) to read the status of | ||||
| # the battery, and eventually its remaining time (to full charge or discharge). | ||||
| # | ||||
| # The color will gradually change for a percentage below 85%, and the urgency | ||||
| # (exit code 33) is set if there is less that 5% remaining. | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Switch; | ||||
|  | ||||
| my $acpi; | ||||
| my $status; | ||||
| my $percent; | ||||
| my $hours = -1; | ||||
| my $mins; | ||||
| my $full_text; | ||||
| my $short_text; | ||||
| my $bat_number = $ENV{BLOCK_INSTANCE} || 0; | ||||
|  | ||||
| # read the first line of the "acpi" command output | ||||
| open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die; | ||||
| $acpi = <ACPI>; | ||||
| close(ACPI); | ||||
|  | ||||
| # fail on unexpected output | ||||
| if ($acpi !~ /: (\w+), (\d+)%/) { | ||||
| 	die "$acpi\n"; | ||||
| } | ||||
| $status = $1; | ||||
| $percent = $2; | ||||
|  | ||||
| if ($acpi =~ /, (\d+):(\d+)/) { | ||||
|     $hours = $1; | ||||
|     $mins = $2; | ||||
| } | ||||
|  | ||||
| if ($status eq 'Discharging') { | ||||
|     if ($percent <= 10) { | ||||
| 		$full_text = ""; | ||||
| 	} elsif ($percent <= 40) { | ||||
| 		$full_text = ""; | ||||
| 	} elsif ($percent <= 75) { | ||||
| 		$full_text = ""; | ||||
| 	} else { | ||||
| 		$full_text = ""; | ||||
| 	} | ||||
|  | ||||
| } elsif ($status eq 'Charging') { | ||||
| 	$full_text = ''; | ||||
| } else { | ||||
| 	$full_text = ''; | ||||
| } | ||||
|  | ||||
| $full_text .= " $percent%"; | ||||
| $short_text = $full_text; | ||||
|  | ||||
| switch($ENV{BLOCK_BUTTON} || 0) { | ||||
|     case "1" { | ||||
|         if ($hours lt 0) { | ||||
|             $full_text .= " Charged"; | ||||
|         } else { | ||||
|             $full_text .= " ($hours:$mins"; | ||||
|             if ($status eq 'Discharging') { | ||||
|                 $full_text .= ")"; | ||||
|             } else { | ||||
|                 $full_text .= " until full)"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     case "4" { system("light -U -l 1") } | ||||
|     case "5" { system("light -A -l 1") } | ||||
| } | ||||
|  | ||||
|  | ||||
| # print text | ||||
| print "$full_text\n"; | ||||
| print "$short_text\n"; | ||||
|  | ||||
| # consider color and urgent flag only on discharge | ||||
| if ($status eq 'Discharging') { | ||||
|  | ||||
| 	if ($percent < 20) { | ||||
| 		print "#FF0000\n"; | ||||
| 	} elsif ($percent < 40) { | ||||
| 		print "#FFCB00\n"; | ||||
| 	}  | ||||
| } | ||||
|  | ||||
| exit(0); | ||||
							
								
								
									
										5
									
								
								.config/i3/blocks/clock
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								.config/i3/blocks/clock
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| case $BLOCK_BUTTON in | ||||
|     1) printf " "$(date '+%d/%m/%y') ; exit ;; | ||||
|     2|3) i3-sensible-terminal -r i3blocks-clock-term --geometry 68x35 -e "$SHELL -c \"cal -y $(date +'%Y');$SHELL\"" &>/dev/null & ;; | ||||
|     *) printf " "$(date '+%H:%M') | ||||
| esac | ||||
							
								
								
									
										100
									
								
								.config/i3/blocks/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								.config/i3/blocks/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,100 @@ | ||||
| # i3blocks config file | ||||
| # | ||||
| # Please see man i3blocks for a complete reference! | ||||
| # The man page is also hosted at http://vivien.github.io/i3blocks | ||||
| # | ||||
| # List of valid properties: | ||||
| # | ||||
| # align | ||||
| # color | ||||
| # command | ||||
| # full_text | ||||
| # instance | ||||
| # interval | ||||
| # label | ||||
| # min_width | ||||
| # name | ||||
| # separator | ||||
| # separator_block_width | ||||
| # short_text | ||||
| # signal | ||||
| # urgent | ||||
|  | ||||
| # Global properties | ||||
| # | ||||
| # The top properties below are applied to every block, but can be overridden. | ||||
| # Each block command defaults to the script name to avoid boilerplate. | ||||
| command=~/.config/i3/blocks/$BLOCK_NAME | ||||
| markup=none | ||||
|  | ||||
| #full_text= | ||||
| align=center | ||||
| color=#F3F4F5 | ||||
| separator=false | ||||
| separator_block_width=12 | ||||
|  | ||||
| #[window title] | ||||
| #command=xtitle -s #| sed 's/^$/ /g'" | ||||
| #color=#A6D1FA | ||||
| #align=center | ||||
| #min_width=700 | ||||
| #interval=persist | ||||
|  | ||||
| [volume] | ||||
| interval=persist | ||||
| signal=10 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [iface] | ||||
| label= | ||||
| interval=60 | ||||
| signal=15 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [updates] | ||||
| label= | ||||
| interval=600 | ||||
| signal=5 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [cpu_usage] | ||||
| label= | ||||
| interval=persist | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [memory] | ||||
| label= | ||||
| interval=10 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [temperature] | ||||
| label= | ||||
| interval=5 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [rotation] | ||||
| interval=once | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [keyboard] | ||||
| label= | ||||
| interval=30 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [battery] | ||||
| interval=30 | ||||
| signal=11 | ||||
|  | ||||
| [separator] | ||||
|  | ||||
| [clock] | ||||
| interval=5 | ||||
| min_width=" 00:00" | ||||
							
								
								
									
										31
									
								
								.config/i3/blocks/cpu_usage
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								.config/i3/blocks/cpu_usage
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
| # by Paul Colby (http://colby.id.au), no rights reserved ;) | ||||
| # https://github.com/Leo-G/DevopsWiki/wiki/How-Linux-CPU-Usage-Time-and-Percentage-is-calculated | ||||
|  | ||||
| PREV_TOTAL=0 | ||||
| PREV_IDLE=0 | ||||
|  | ||||
| while true; do | ||||
|     # Get the total CPU statistics, discarding the 'cpu ' prefix. | ||||
|     CPU=(`sed -n 's/^cpu\s//p' /proc/stat`) | ||||
|     IDLE=${CPU[3]} # Just the idle CPU time. | ||||
|  | ||||
|     # Calculate the total CPU time. | ||||
|     TOTAL=0 | ||||
|     for VALUE in "${CPU[@]}"; do | ||||
|         let "TOTAL=$TOTAL+$VALUE" | ||||
|     done | ||||
|  | ||||
|     # Calculate the CPU usage since we last checked. | ||||
|     let "DIFF_IDLE=$IDLE-$PREV_IDLE" | ||||
|     let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" | ||||
|     let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" | ||||
|     echo -e "$DIFF_USAGE%\n$DIFF_USAGE%" | ||||
|  | ||||
|     # Remember the total and idle CPU times for the next check. | ||||
|     PREV_TOTAL="$TOTAL" | ||||
|     PREV_IDLE="$IDLE" | ||||
|  | ||||
|     # Wait before checking again. | ||||
|     sleep 1 | ||||
| done | ||||
							
								
								
									
										41
									
								
								.config/i3/blocks/disk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								.config/i3/blocks/disk
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| #!/bin/sh | ||||
| # Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| DIR="${BLOCK_INSTANCE:-$HOME}" | ||||
| ALERT_LOW="${1:-10}" # color will turn red under this value (default: 10%) | ||||
|  | ||||
| df -h -P -l "$DIR" | awk -v alert_low=$ALERT_LOW ' | ||||
| /\/.*/ { | ||||
| 	# full text | ||||
| 	print $4 | ||||
|  | ||||
| 	# short text | ||||
| 	print $4 | ||||
|  | ||||
| 	use=$5 | ||||
|  | ||||
| 	# no need to continue parsing | ||||
| 	exit 0 | ||||
| } | ||||
|  | ||||
| END { | ||||
| 	gsub(/%$/,"",use) | ||||
| 	if (100 - use < alert_low) { | ||||
| 		# color | ||||
| 		print "#FF0000" | ||||
| 	} | ||||
| } | ||||
| ' | ||||
							
								
								
									
										62
									
								
								.config/i3/blocks/iface
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								.config/i3/blocks/iface
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| #!/bin/bash | ||||
| # Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> | ||||
| # Copyright (C) 2014 Alexander Keller <github@nycroth.com> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| # Use the provided interface, otherwise the device used for the default route. | ||||
| if [[ -n $BLOCK_INSTANCE ]]; then | ||||
|     IF=$BLOCK_INSTANCE | ||||
| else | ||||
|     IF=$(ip route | awk '/^default/ { print $5 ; exit }') | ||||
| fi | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| # As per #36 -- It is transparent: e.g. if the machine has no battery or wireless | ||||
| # connection (think desktop), the corresponding block should not be displayed. | ||||
| [[ ! -d /sys/class/net/${IF} ]] && exit | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| if [[ -z $IF ]] || [[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]]; then | ||||
|     echo down # full text | ||||
|     echo down # short text | ||||
|     echo \#FF0000 # color | ||||
|     exit | ||||
| fi | ||||
|  | ||||
| case $1 in | ||||
|     -4) AF=inet ;; | ||||
|     -6) AF=inet6 ;; | ||||
|     *) AF=inet6? ;; | ||||
| esac | ||||
|  | ||||
| # if no interface is found, use the first device with a global scope | ||||
| LOCIP=$(ip addr show $IF | perl -n -e "/$AF ([^\/]+).* scope global/ && print \$1 and exit") | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| case $BLOCK_BUTTON in | ||||
|     1)  curl -s https://api.ipify.org; | ||||
|         break;; | ||||
|     2)  curl -s https://api.ipify.org | tee >(xclip -i); | ||||
|         break;; | ||||
|     0|3)  echo "$LOCIP" | tee >(xclip -i); | ||||
|         break;; | ||||
|     *)  echo "$LOCIP" | ||||
|         break;; | ||||
| esac | ||||
							
								
								
									
										10
									
								
								.config/i3/blocks/keyboard
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								.config/i3/blocks/keyboard
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| [[ $BLOCK_BUTTON -eq 1 ]] && `$DOTFILES/scripts/togglekeyboard` | ||||
|  | ||||
| layout=$(setxkbmap -query | grep 'layout:' | awk '{print $2}') | ||||
| variant=$(setxkbmap -query | grep 'variant:' | awk '{print $2}') | ||||
|  | ||||
| short=`([ "$variant" ] && echo $variant || echo $layout) | cut -c1-2` | ||||
|  | ||||
| echo -e "$short\n$short" | awk '{print toupper($0)}' | ||||
							
								
								
									
										70
									
								
								.config/i3/blocks/keyindicator
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										70
									
								
								.config/i3/blocks/keyindicator
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| #!/usr/bin/perl | ||||
| # | ||||
| # Copyright 2014 Marcelo Cerri <mhcerri at gmail dot com> | ||||
| # | ||||
| # 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/>. | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use utf8; | ||||
| use Getopt::Long; | ||||
| use File::Basename; | ||||
|  | ||||
| # Default values | ||||
| my $indicator = $ENV{BLOCK_INSTANCE} || "CAPS"; | ||||
| my $color_on  = "#00FF00"; | ||||
| my $color_off = "#222222"; | ||||
|  | ||||
| sub help { | ||||
|     my $program = basename($0); | ||||
|     printf "Usage: %s [-c <color on>] [-C <color off>]\n", $program; | ||||
|     printf "  -c <color on>: hex color to use when indicator is on\n"; | ||||
|     printf "  -C <color off>: hex color to use when indicator is off\n"; | ||||
|     printf "\n"; | ||||
|     printf "Note: environment variable \$BLOCK_INSTANCE should be one of:\n"; | ||||
|     printf "  CAPS, NUM (default is CAPS).\n"; | ||||
|     exit 0; | ||||
| } | ||||
|  | ||||
| Getopt::Long::config qw(no_ignore_case); | ||||
| GetOptions("help|h" => \&help, | ||||
|            "c=s"    => \$color_on, | ||||
|            "C=s"    => \$color_off) or exit 1; | ||||
|  | ||||
| # Key mapping | ||||
| my %indicators = ( | ||||
|     CAPS => 0x00000001, | ||||
|     NUM  => 0x00000002, | ||||
| ); | ||||
|  | ||||
| # Retrieve key flags | ||||
| my $mask = 0; | ||||
| open(XSET, "xset -q |") or die; | ||||
| while (<XSET>) { | ||||
|     if (/LED mask:\s*([0-9]+)/) { | ||||
|         $mask = $1; | ||||
|         last; | ||||
|     } | ||||
| } | ||||
| close(XSET); | ||||
|  | ||||
| # Output | ||||
| printf "%s\n", $indicator; | ||||
| printf "%s\n", $indicator; | ||||
| if (($indicators{$indicator} || 0) & $mask) { | ||||
|     printf "%s\n", $color_on; | ||||
| } else { | ||||
|     printf "%s\n", $color_off; | ||||
| } | ||||
| exit 0 | ||||
							
								
								
									
										34
									
								
								.config/i3/blocks/load_average
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								.config/i3/blocks/load_average
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| #!/bin/sh | ||||
| # Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| load="$(cut -d ' ' -f1 /proc/loadavg)" | ||||
| cpus="$(nproc)" | ||||
|  | ||||
| # full text | ||||
| echo "$load" | ||||
|  | ||||
| # short text | ||||
| echo "$load" | ||||
|  | ||||
| # color if load is too high | ||||
| awk -v cpus=$cpus -v cpuload=$load ' | ||||
|     BEGIN { | ||||
|         if (cpus <= cpuload) { | ||||
|             print "#FF0000"; | ||||
|             exit 33; | ||||
|         } | ||||
|     } | ||||
| ' | ||||
							
								
								
									
										76
									
								
								.config/i3/blocks/mediaplayer
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										76
									
								
								.config/i3/blocks/mediaplayer
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| #!/usr/bin/perl | ||||
| # Copyright (C) 2014 Tony Crisci <tony@dubstepdish.com> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| # Requires playerctl binary to be in your path (except cmus) | ||||
| # See: https://github.com/acrisci/playerctl | ||||
|  | ||||
| # Set instance=NAME in the i3blocks configuration to specify a music player | ||||
| # (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your | ||||
| # DBus session). | ||||
|  | ||||
| use Env qw(BLOCK_INSTANCE); | ||||
|  | ||||
| my @metadata = (); | ||||
| my $player_arg = ""; | ||||
|  | ||||
| if ($BLOCK_INSTANCE) { | ||||
|     $player_arg = "--player='$BLOCK_INSTANCE'"; | ||||
| } | ||||
|  | ||||
| if ($ENV{'BLOCK_BUTTON'} == 1) { | ||||
|     system("playerctl $player_arg previous"); | ||||
| } elsif ($ENV{'BLOCK_BUTTON'} == 2) { | ||||
|     system("playerctl $player_arg play-pause"); | ||||
| } elsif ($ENV{'BLOCK_BUTTON'} == 3) { | ||||
|     system("playerctl $player_arg next"); | ||||
| } | ||||
|  | ||||
| if ($player_arg eq '' or $player_arg =~ /cmus$/) { | ||||
|     # try cmus first | ||||
|     my @cmus = split /^/, qx(cmus-remote -Q); | ||||
|     if ($? == 0) { | ||||
|         foreach my $line (@cmus) { | ||||
|             my @data = split /\s/, $line; | ||||
|             if (shift @data eq 'tag') { | ||||
|                 my $key = shift @data; | ||||
|                 my $value = join ' ', @data; | ||||
|  | ||||
|                 @metadata[0] = $value if $key eq 'artist'; | ||||
|                 @metadata[1] = $value if $key eq 'title'; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (@metadata) { | ||||
|             # metadata found so we are done | ||||
|             print(join ' - ', @metadata); | ||||
|             exit 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # if cmus was given, we are done | ||||
|     exit 0 unless $player_arg eq ''; | ||||
| } | ||||
|  | ||||
| my $artist = qx(playerctl $player_arg metadata artist); | ||||
| # exit status will be nonzero when playerctl cannot find your player | ||||
| exit(0) if $?; | ||||
| push(@metadata, $artist) if $artist; | ||||
|  | ||||
| my $title = qx(playerctl $player_arg metadata title); | ||||
| exit(0) if $?; | ||||
| push(@metadata, $title) if $title; | ||||
|  | ||||
| print(join(" - ", @metadata)) if @metadata; | ||||
							
								
								
									
										65
									
								
								.config/i3/blocks/memory
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										65
									
								
								.config/i3/blocks/memory
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,65 @@ | ||||
| #!/bin/sh | ||||
| # Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| TYPE="${BLOCK_INSTANCE:-mem}" | ||||
|  | ||||
| if [ $BLOCK_BUTTON -gt 0 ]; then | ||||
|     i3-sensible-terminal -r floating-term --geometry 100x54 -e 'top -d 0.1' | ||||
| fi | ||||
|  | ||||
| awk -v type=$TYPE ' | ||||
| BEGIN { | ||||
|     swap_total=1 | ||||
|     mem_total=1 | ||||
| } | ||||
| /^MemTotal:/ { | ||||
| 	mem_total=$2 | ||||
| } | ||||
| /^MemFree:/ { | ||||
| 	mem_free=$2 | ||||
| } | ||||
| /^Buffers:/ { | ||||
| 	mem_free+=$2 | ||||
| } | ||||
| /^Cached:/ { | ||||
| 	mem_free+=$2 | ||||
| } | ||||
| /^SwapTotal:/ { | ||||
| 	swap_total=$2 | ||||
| } | ||||
| /^SwapFree:/ { | ||||
| 	swap_free=$2 | ||||
| } | ||||
| END { | ||||
| 	if (type == "swap") { | ||||
|         swap_perc = (swap_total - swap_free) / swap_total * 100 | ||||
| 		printf("%.0f%\n", swap_perc) | ||||
| 		printf("%.0f%\n", swap_perc)	 | ||||
| 		perc = swap_perc | ||||
| 	} | ||||
| 	else{ | ||||
|         mem_perc  = (mem_total - mem_free) / mem_total * 100 | ||||
| 		printf("%.0f%\n", mem_perc) | ||||
| 		printf("%.0f%\n", mem_perc) | ||||
| 	    perc = mem_perc | ||||
| 	} | ||||
|  | ||||
|     if (perc > 80) | ||||
|         print "#FFCB00" | ||||
|     else if (perc > 60) | ||||
|         print "#FFCB00" | ||||
| } | ||||
| ' /proc/meminfo | ||||
							
								
								
									
										149
									
								
								.config/i3/blocks/openvpn
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										149
									
								
								.config/i3/blocks/openvpn
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,149 @@ | ||||
| #!/usr/bin/perl | ||||
| # Made by Pierre Mavro/Deimosfr <deimos@deimos.fr> | ||||
| # Licensed under the terms of the GNU GPL v3, or any later version. | ||||
| # Version: 0.2 | ||||
|  | ||||
| # Usage: | ||||
| # 1. The configuration name of OpenVPN should be familiar for you (home,work...) | ||||
| # 2. The device name in your configuration file should be fully named (tun0,tap1...not only tun or tap) | ||||
| # 3. When you launch one or multiple OpenVPN connexion, be sure the PID file is written in the correct folder (ex: --writepid /run/openvpn/home.pid) | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use utf8; | ||||
| use Getopt::Long; | ||||
|  | ||||
| my $openvpn_enabled='/dev/shm/openvpn_i3blocks_enabled'; | ||||
| my $openvpn_disabled='/dev/shm/openvpn_i3blocks_disabled'; | ||||
|  | ||||
| # Print output | ||||
| sub print_output { | ||||
|     my $ref_pid_files = shift; | ||||
|     my @pid_files = @$ref_pid_files; | ||||
|     my $change=0; | ||||
|  | ||||
|     # Total pid files | ||||
|     my $total_pid = @pid_files; | ||||
|     if ($total_pid == 0) { | ||||
|         print "VPN: down\n"x2; | ||||
|         # Delete OpenVPN i3blocks temp files | ||||
|         if (-f $openvpn_enabled) { | ||||
|             unlink $openvpn_enabled or die "Can't delete $openvpn_enabled\n"; | ||||
|             # Colorize if VPN has just went down | ||||
|             print '#FF0000\n'; | ||||
|         } | ||||
|         unless (-f $openvpn_disabled) { | ||||
|             open(my $shm, '>', $openvpn_disabled) or die "Can't write $openvpn_disabled\n"; | ||||
|         } | ||||
|         exit(0); | ||||
|     } | ||||
|  | ||||
|     # Check if interface device is present | ||||
|     my $vpn_found=0; | ||||
|     my $pid; | ||||
|     my $cmd_line; | ||||
|     my @config_name; | ||||
|     my @config_path; | ||||
|     my $interface; | ||||
|     my $current_config_path; | ||||
|     my $current_config_name; | ||||
|     foreach (@pid_files) { | ||||
|         # Get current PID | ||||
|         $pid=0; | ||||
|         open(PID, '<', $_); | ||||
|         while(<PID>) { | ||||
|             chomp $_; | ||||
|             $pid = $_; | ||||
|         } | ||||
|         close(PID); | ||||
|         # Check if PID has been found | ||||
|         if ($pid ==0) { | ||||
|             print "Can't get PID $_: $!\n"; | ||||
|         } | ||||
|  | ||||
|         # Check if PID is still alive | ||||
|         $cmd_line='/proc/'.$pid.'/cmdline'; | ||||
|         if (-f $cmd_line) { | ||||
|             # Get config name | ||||
|             open(CMD_LINE, '<', $cmd_line); | ||||
|             while(<CMD_LINE>) { | ||||
|                 chomp $_; | ||||
|                 if ($_ =~ /--config\s*(.*\.conf)/) { | ||||
|                     # Get interface from config file | ||||
|                     $current_config_path = $1; | ||||
|                     # Remove unwanted escape chars | ||||
|                     $current_config_path =~ s/\x{00}//g; | ||||
|                     $interface = 'null'; | ||||
|                     # Get configuration name | ||||
|                     if ($current_config_path =~ /(\w+).conf/) { | ||||
|                         $current_config_name=$1; | ||||
|                     } else { | ||||
|                         $current_config_name='unknow'; | ||||
|                     } | ||||
|                     # Get OpenVPN interface device name | ||||
|                     open(CONFIG, '<', $current_config_path) or die "Can't read config file '$current_config_path': $!\n"; | ||||
|                     while(<CONFIG>) { | ||||
|                         chomp $_; | ||||
|                         if ($_ =~ /dev\s+(\w+)/) { | ||||
|                             $interface=$1; | ||||
|                             last; | ||||
|                         } | ||||
|                     } | ||||
|                     close(CONFIG); | ||||
|                     # check if interface exist | ||||
|                     unless ($interface eq 'null') { | ||||
|                         if (-d "/sys/class/net/$interface") { | ||||
|                             push @config_name, $current_config_name; | ||||
|                             $vpn_found=1; | ||||
|                             # Write enabled file | ||||
|                             unless (-f $openvpn_enabled) { | ||||
|                                 open(my $shm, '>', $openvpn_enabled) or die "Can't write $openvpn_enabled\n"; | ||||
|                                 $change=1; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             close(CMD_LINE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # Check if PID found | ||||
|     my $names; | ||||
|     my $short_status; | ||||
|     if ($vpn_found == 1) { | ||||
|         $names = join('/', @config_name); | ||||
|         $short_status='up'; | ||||
|     } else { | ||||
|         $short_status='down'; | ||||
|         $names = $short_status; | ||||
|     } | ||||
|  | ||||
|     print "VPN: $names\n"; | ||||
|     print "VPN: $short_status\n"; | ||||
|  | ||||
|     # Print color if there were changes | ||||
|     print "#00FF00\n" if ($change == 1); | ||||
|  | ||||
|     exit(0); | ||||
| } | ||||
|  | ||||
| sub check_opts { | ||||
|     # Vars | ||||
|     my @pid_file=glob '/run/openvpn/*.pid'; | ||||
|  | ||||
|     # Set options | ||||
|     GetOptions( "help|h" => \&help, | ||||
|         "p=s"    => \@pid_file); | ||||
|  | ||||
|     print_output(\@pid_file); | ||||
| } | ||||
|  | ||||
| sub help { | ||||
|     print "Usage: openvpn [-d pid folder files]\n"; | ||||
|     print "-d : pid folder files (default /run/openvpn/*.pid)\n"; | ||||
|     print "Note: devices in configuration file should be named with their number (ex: tun0, tap1)\n"; | ||||
|     exit(1); | ||||
| } | ||||
|  | ||||
| &check_opts; | ||||
							
								
								
									
										20
									
								
								.config/i3/blocks/rotation
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								.config/i3/blocks/rotation
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| lock="/tmp/rotlock" | ||||
|  | ||||
| [[ -e $lock ]] || echo "unlocked" > "$lock" | ||||
|  | ||||
| status=$(<$lock) | ||||
|  | ||||
| if [ $BLOCK_BUTTON -gt 0 ]; then | ||||
|     case $status in | ||||
|         "unlocked") status="locked" ;; | ||||
|         "locked") status="unlocked";; | ||||
|     esac | ||||
|     echo $status > "$lock" | ||||
| fi | ||||
|  | ||||
| case $status in | ||||
|     "locked") echo "";; | ||||
|     "unlocked") echo "";; | ||||
| esac | ||||
							
								
								
									
										69
									
								
								.config/i3/blocks/temperature
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										69
									
								
								.config/i3/blocks/temperature
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| #!/usr/bin/perl | ||||
| # Copyright 2014 Pierre Mavro <deimos@deimos.fr> | ||||
| # Copyright 2014 Vivien Didelot <vivien@didelot.org> | ||||
| # Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com> | ||||
| # Copyright 2014 Benjamin Chretien <chretien at lirmm dot fr> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use utf8; | ||||
| use Getopt::Long; | ||||
|  | ||||
| binmode(STDOUT, ":utf8"); | ||||
|  | ||||
| # default values | ||||
| my $t_warn = 70; | ||||
| my $t_crit = 90; | ||||
| my $chip = "coretemp-isa-0000"; | ||||
| my $temperature = -9999; | ||||
|  | ||||
| sub help { | ||||
|     print "Usage: temperature [-w <warning>] [-c <critical>] [--chip <chip>]\n"; | ||||
|     print "-w <percent>: warning threshold to become yellow\n"; | ||||
|     print "-c <percent>: critical threshold to become red\n"; | ||||
|     print "--chip <chip>: sensor chip\n"; | ||||
|     exit 0; | ||||
| } | ||||
|  | ||||
| GetOptions("help|h" => \&help, | ||||
|            "w=i"    => \$t_warn, | ||||
|            "c=i"    => \$t_crit, | ||||
|            "chip=s" => \$chip); | ||||
|  | ||||
| # Get chip temperature | ||||
| open (SENSORS, "sensors -u $chip |") or die; | ||||
| while (<SENSORS>) { | ||||
|     if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) { | ||||
|         $temperature = $1; | ||||
|         last; | ||||
|     } | ||||
| } | ||||
| close(SENSORS); | ||||
|  | ||||
| $temperature eq -9999 and die 'Cannot find temperature'; | ||||
|  | ||||
| # Print short_text, full_text | ||||
| print int($temperature)."°c\n" x2; | ||||
|  | ||||
| # Print color, if needed | ||||
| if ($temperature >= $t_crit) { | ||||
|     print "#FF0000\n"; | ||||
|     exit 33; | ||||
| } elsif ($temperature >= $t_warn) { | ||||
|     print "#FFFC00\n"; | ||||
| } | ||||
|  | ||||
| exit 0; | ||||
							
								
								
									
										27
									
								
								.config/i3/blocks/toggleoutput.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								.config/i3/blocks/toggleoutput.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| #!/bin/bash | ||||
|   | ||||
| CARDS=$(pacmd list-cards | grep -e index: -e alsa.card_name  | xargs -n5 | awk '{print $2}') | ||||
|  | ||||
| if [[ ${#CARDS} != 3 ]];  # there is a space  | ||||
| then | ||||
|     echo "This script works only with 2 outputs, and you have ..." | ||||
|     pacmd list-cards | grep -e index: -e alsa.card_name  | xargs -n5  | ||||
|     exit | ||||
| fi | ||||
|   | ||||
| i=1 | ||||
| for card_index in $CARDS ;  | ||||
| do  | ||||
|     eval CARD$i=$card_index  | ||||
|     let i+=1 | ||||
|          | ||||
| done | ||||
|   | ||||
| LAST_SINK_LINE=$(pacmd list-sink-inputs | grep -e index: -e sink: | xargs -n5 | tail -n1) | ||||
| last_sink_app_index=$( echo $LAST_SINK_LINE | awk '{print $2}' ) | ||||
| last_sink_out_index=$( echo $LAST_SINK_LINE | awk '{print $4}' ) | ||||
| [[ ${last_sink_out_index} == ${CARD1} ]] && new_sink_out=$CARD2 || new_sink_out=$CARD1 | ||||
|   | ||||
| #echo "$last_sink_app_index > $last_sink_out_index > ${new_sink_out}" | ||||
|   | ||||
| pacmd move-sink-input ${last_sink_app_index} ${new_sink_out} | ||||
							
								
								
									
										31
									
								
								.config/i3/blocks/updates
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								.config/i3/blocks/updates
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
|  | ||||
| for p in trizen pacaur yaourt pacman; do | ||||
|     if $p --version &>/dev/null; then | ||||
|         PAC="$p" | ||||
|         break; | ||||
|     fi | ||||
| done | ||||
|  | ||||
| if [ -z "$PAC" ]; then | ||||
|     >&2 echo "Error: No Arch package manager found?" | ||||
| fi | ||||
|  | ||||
| if [ "$BLOCK_BUTTON" == 1 ]; then | ||||
|     nohup i3-sensible-terminal -r i3blocks-update-term -e "sh -c '$PAC -Syu || exec zsh; pkill -RTMIN+5 i3blocks'" &>/dev/null & | ||||
|     disown | ||||
| fi | ||||
|  | ||||
| if [ $p = "pacman" ]; then | ||||
|     exec 3< <(checkupdates) | ||||
| else | ||||
|     exec 3< <({ checkupdates & cower -u & }) | ||||
| fi | ||||
|  | ||||
| count="$(wc -l <&3)" | ||||
|  | ||||
| if [ -n "$count" -a "$count" -gt 0 ]; then | ||||
|     echo $count | ||||
|     echo $count | ||||
| fi | ||||
							
								
								
									
										182
									
								
								.config/i3/blocks/volume
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										182
									
								
								.config/i3/blocks/volume
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,182 @@ | ||||
| #!/bin/bash | ||||
| # Displays the default device, volume, and mute status for i3blocks | ||||
|  | ||||
| AUDIO_HIGH_SYMBOL=' ' | ||||
|  | ||||
| AUDIO_MED_THRESH=59 | ||||
| AUDIO_MED_SYMBOL=' ' | ||||
|  | ||||
| AUDIO_LOW_THRESH=0 | ||||
| AUDIO_LOW_SYMBOL=' ' | ||||
|  | ||||
| AUDIO_MUTED_SYMBOL='X' | ||||
|  | ||||
| AUDIO_INTERVAL=5 | ||||
|  | ||||
| DEFAULT_COLOR="#ffffff" | ||||
| MUTED_COLOR="#a0a0a0" | ||||
|  | ||||
| LONG_FORMAT=0 | ||||
| SHORT_FORMAT=3 | ||||
| USE_PERCENT=0 | ||||
| USE_ALSA_NAME=0 | ||||
| USE_DESCRIPTION=0 | ||||
|  | ||||
| SUBSCRIBE=1 | ||||
|  | ||||
| while getopts F:Sf:padH:M:L:X:T:t:C:c:i:m:s:h opt; do | ||||
|     case "$opt" in | ||||
|         S) SUBSCRIBE=1 ;; | ||||
|         F) LONG_FORMAT="$OPTARG" ;; | ||||
|         f) SHORT_FORMAT="$OPTARG" ;; | ||||
|         p) USE_PERCENT=0 ;; | ||||
|         a) USE_ALSA_NAME=1 ;; | ||||
|         d) USE_DESCRIPTION=1 ;; | ||||
|         H) AUDIO_HIGH_SYMBOL="$OPTARG" ;; | ||||
|         M) AUDIO_MED_SYMBOL="$OPTARG" ;; | ||||
|         L) AUDIO_LOW_SYMBOL="$OPTARG" ;; | ||||
|         X) AUDIO_MUTED_SYMBOL="$OPTARG" ;; | ||||
|         T) AUDIO_MED_THRESH="$OPTARG" ;; | ||||
|         t) AUDIO_LOW_THRESH="$OPTARG" ;; | ||||
|         C) DEFAULT_COLOR="$OPTARG" ;; | ||||
|         c) MUTED_COLOR="$OPTARG" ;; | ||||
|         i) AUDIO_INTERVAL="$OPTARG" ;; | ||||
|         m) MIXER="$OPTARG" ;; | ||||
|         s) SCONTROL="$OPTARG" ;; | ||||
|         h) printf \ | ||||
| "Usage: volume-pulseaudio [-S] [-F format] [-f format] [-p] [-a|-d] [-H symb] [-M symb] | ||||
|         [-L symb] [-X symb] [-T thresh] [-t thresh] [-C color] [-c color] [-i inter]  | ||||
|         [-m mixer] [-s scontrol] [-h] | ||||
| Options: | ||||
| -F, -f\tOutput format (-F long format, -f short format) to use, amongst: | ||||
| \t0\t symb vol [index:name]\t (default long) | ||||
| \t1\t symb vol [name] | ||||
| \t2\t symb vol [index]\t (default short) | ||||
| \t3\t symb vol | ||||
| -S\tSubscribe to volume events (requires persistent block, always uses long format) | ||||
| -p\tOmit the percent sign (%%) in volume | ||||
| -a\tUse ALSA name if possible | ||||
| -d\tUse device description instead of name if possible | ||||
| -H\tSymbol to use when audio level is high. Default: '$AUDIO_HIGH_SYMBOL' | ||||
| -M\tSymbol to use when audio level is medium. Default: '$AUDIO_MED_SYMBOL' | ||||
| -L\tSymbol to use when audio level is low. Default: '$AUDIO_LOW_SYMBOL' | ||||
| -X\tSymbol to use when audio is muted. Default: '$AUDIO_MUTED_SYMBOL' | ||||
| -T\tThreshold for medium audio level. Default: $AUDIO_MED_THRESH | ||||
| -t\tThreshold for low audio level. Default: $AUDIO_LOW_THRESH | ||||
| -C\tColor for non-muted audio. Default: $DEFAULT_COLOR | ||||
| -c\tColor for muted audio. Default: $MUTED_COLOR | ||||
| -i\tInterval size of volume increase/decrease. Default: $AUDIO_INTERVAL | ||||
| -m\tUse the given mixer. | ||||
| -s\tUse the given scontrol. | ||||
| -h\tShow this help text | ||||
| " && exit 0;; | ||||
|     esac | ||||
| done | ||||
|  | ||||
| if [[ -z "$MIXER" ]] ; then | ||||
|     MIXER="default" | ||||
|     if amixer -D pulse info >/dev/null 2>&1 ; then | ||||
|         MIXER="pulse" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| if [[ -z "$SCONTROL" ]] ; then | ||||
|     SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1) | ||||
| fi | ||||
|  | ||||
| CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/  Capabilities:.*cvolume.*/Capture/p") | ||||
|  | ||||
|  | ||||
| function move_sinks_to_new_default { | ||||
|     DEFAULT_SINK=$1 | ||||
|     pacmd list-sink-inputs | grep index: | grep -o '[0-9]\+' | while read SINK | ||||
|     do | ||||
|         pacmd move-sink-input $SINK $DEFAULT_SINK | ||||
|     done | ||||
| } | ||||
|  | ||||
| function set_default_playback_device_next { | ||||
|     inc=${1:-1} | ||||
|     num_devices=$(pacmd list-sinks | grep -c index:) | ||||
|     sink_arr=($(pacmd list-sinks | grep index: | grep -o '[0-9]\+')) | ||||
|     default_sink_index=$(( $(pacmd list-sinks | grep index: | grep -no '*' | grep -o '^[0-9]\+') - 1 )) | ||||
|     default_sink_index=$(( ($default_sink_index + $num_devices + $inc) % $num_devices )) | ||||
|     default_sink=${sink_arr[$default_sink_index]} | ||||
|     pacmd set-default-sink $default_sink | ||||
|     move_sinks_to_new_default $default_sink | ||||
| } | ||||
|  | ||||
| case "$BLOCK_BUTTON" in | ||||
|     1) set_default_playback_device_next ;; | ||||
|     2) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY toggle ;; | ||||
|     3) set_default_playback_device_next -1 ;; | ||||
|     4) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%+ ;; | ||||
|     5) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%- ;; | ||||
| esac | ||||
|  | ||||
| function print_format { | ||||
|     PERCENT="%" | ||||
|     [[ $USE_PERCENT == 0 ]] && PERCENT="" | ||||
|     case "$1" in | ||||
|         1) echo "$SYMBOL$VOL$PERCENT [$NAME]" ;; | ||||
|         2) echo "$SYMBOL$VOL$PERCENT [$INDEX]";; | ||||
|         3) echo "$SYMBOL$VOL$PERCENT" ;; | ||||
|         *) echo "$SYMBOL$VOL$PERCENT [$INDEX:$NAME]" ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
| function print_block { | ||||
|     for name in INDEX NAME VOL MUTED; do | ||||
|         read $name | ||||
|     done < <(pacmd list-sinks | grep "index:\|name:\|volume: front\|muted:" | grep -A3 '*') | ||||
|     INDEX=$(echo "$INDEX" | grep -o '[0-9]\+') | ||||
|     VOL=$(echo "$VOL" | grep -o "[0-9]*%" | head -1 ) | ||||
|     VOL="${VOL%?}" | ||||
|  | ||||
|     NAME=$(echo "$NAME" | sed \ | ||||
| 's/.*<.*\.\(.*\)>.*/\1/; t;'\ | ||||
| 's/.*<\(.*\)>.*/\1/; t;'\ | ||||
| 's/.*/unknown/') | ||||
|  | ||||
|     if [[ $USE_ALSA_NAME == 1 ]] ; then | ||||
|         ALSA_NAME=$(pacmd list-sinks |\ | ||||
| awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\ | ||||
| grep "alsa.name\|alsa.mixer_name" |\ | ||||
| head -n1 |\ | ||||
| sed 's/.*= "\(.*\)".*/\1/') | ||||
|         NAME=${ALSA_NAME:-$NAME} | ||||
|     elif [[ $USE_DESCRIPTION == 1 ]] ; then | ||||
|         DESCRIPTION=$(pacmd list-sinks |\ | ||||
| awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\ | ||||
| grep "device.description" |\ | ||||
| head -n1 |\ | ||||
| sed 's/.*= "\(.*\)".*/\1/') | ||||
|         NAME=${DESCRIPTION:-$NAME} | ||||
|     fi | ||||
|  | ||||
|     if [[ $MUTED =~ "no" ]] ; then | ||||
|         SYMBOL=$AUDIO_HIGH_SYMBOL | ||||
|         [[ $VOL -le $AUDIO_MED_THRESH ]] && SYMBOL=$AUDIO_MED_SYMBOL | ||||
|         [[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMBOL=$AUDIO_LOW_SYMBOL | ||||
|         COLOR=$DEFAULT_COLOR | ||||
|     else | ||||
|         SYMBOL=$AUDIO_MUTED_SYMBOL | ||||
|         COLOR=$MUTED_COLOR | ||||
|         VOL="" | ||||
|     fi | ||||
|  | ||||
| #    if [[ $SUBSCRIBE == 1 ]] ; then | ||||
| #        print_format "$LONG_FORMAT" | ||||
| #    else | ||||
| #        print_format "$LONG_FORMAT" | ||||
|         print_format "$SHORT_FORMAT" | ||||
| #        echo "$COLOR" | ||||
| #    fi | ||||
| } | ||||
|  | ||||
| print_block | ||||
| if [[ $SUBSCRIBE == 1 ]] ; then | ||||
|     while read -r EVENT; do | ||||
|         print_block | ||||
|     done < <(pactl subscribe | stdbuf -oL grep change) | ||||
| fi | ||||
							
								
								
									
										46
									
								
								.config/i3/blocks/wifi
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								.config/i3/blocks/wifi
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| #!/bin/bash | ||||
| # Copyright (C) 2014 Alexander Keller <github@nycroth.com> | ||||
|  | ||||
| # 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/>. | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| INTERFACE="${BLOCK_INSTANCE:-wlan0}" | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| # As per #36 -- It is transparent: e.g. if the machine has no battery or wireless | ||||
| # connection (think desktop), the corresponding block should not be displayed. | ||||
| [[ ! -d /sys/class/net/${INTERFACE}/wireless ]] || | ||||
|     [[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }') | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|  | ||||
| echo $QUALITY% # full text | ||||
| echo $QUALITY% # short text | ||||
|  | ||||
| # color | ||||
| if [[ $QUALITY -ge 80 ]]; then | ||||
|     echo "#00FF00" | ||||
| elif [[ $QUALITY -lt 80 ]]; then | ||||
|     echo "#FFF600" | ||||
| elif [[ $QUALITY -lt 60 ]]; then | ||||
|     echo "#FFAE00" | ||||
| elif [[ $QUALITY -lt 40 ]]; then | ||||
|     echo "#FF0000" | ||||
| fi | ||||
							
								
								
									
										193
									
								
								.config/i3/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								.config/i3/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,193 @@ | ||||
| # i3 config file (v4) | ||||
| # | ||||
| # Please see http://i3wm.org/docs/userguide.html for a complete reference! | ||||
|  | ||||
| set $mod Mod4 | ||||
| floating_modifier $mod | ||||
|  | ||||
| font pango:Noto Sans 9 | ||||
|  | ||||
| # kill focused window | ||||
| bindsym $mod+apostrophe kill | ||||
| bindsym Mod1+F4 kill | ||||
|  | ||||
| # change window focus | ||||
| bindsym $mod+d focus left | ||||
| bindsym $mod+n focus right | ||||
| bindsym $mod+t focus up | ||||
| bindsym $mod+h focus down | ||||
|  | ||||
| # move focused window | ||||
| bindsym $mod+Shift+d move left | ||||
| bindsym $mod+Shift+n move down | ||||
| bindsym $mod+Shift+t move up | ||||
| bindsym $mod+Shift+h move right | ||||
|  | ||||
| # split in horizontal orientation | ||||
| bindsym $mod+m split h | ||||
| bindsym $mod+w split v | ||||
|  | ||||
| # enter fullscreen mode for the focused container | ||||
| bindsym $mod+Shift+f fullscreen toggle global | ||||
| bindsym $mod+f fullscreen toggle | ||||
|  | ||||
| # change container layout (stacked, tabbed, toggle split) | ||||
| bindsym $mod+p layout stacking | ||||
| bindsym $mod+comma layout tabbed | ||||
| bindsym $mod+period layout toggle split | ||||
|  | ||||
| # toggle tiling / floating | ||||
| bindsym $mod+u floating toggle | ||||
| bindsym $mod+e sticky toggle | ||||
|  | ||||
| # focus the parent container | ||||
| bindsym $mod+a focus parent | ||||
| bindsym $mod+o focus child | ||||
|  | ||||
| set $surf eDP1 | ||||
| set $hdmi HDMI1 | ||||
|  | ||||
| # Workspace -> Screen | ||||
| workspace 1 output $hdmi | ||||
| workspace 5 output $surf | ||||
|  | ||||
| # switch to workspace | ||||
| bindsym $mod+1 workspace 1 | ||||
| bindsym $mod+2 workspace 2 | ||||
| bindsym $mod+3 workspace 3 | ||||
| bindsym $mod+4 workspace 4 | ||||
| bindsym $mod+5 workspace 5 | ||||
| bindsym $mod+6 workspace 6 | ||||
| bindsym $mod+7 workspace 7 | ||||
| bindsym $mod+8 workspace 8 | ||||
| bindsym $mod+9 workspace 9 | ||||
| bindsym $mod+0 workspace 10 | ||||
|  | ||||
| # move workspaces across screens | ||||
| bindsym $mod+Mod1+d move workspace to output left | ||||
| bindsym $mod+Mod1+n move workspace to output right | ||||
| bindsym $mod+Mod1+t move workspace to output up | ||||
| bindsym $mod+Mod1+h move workspace to output down | ||||
|  | ||||
| # move focused container to workspace | ||||
| bindsym $mod+Shift+1 move container to workspace 1 | ||||
| bindsym $mod+Shift+2 move container to workspace 2 | ||||
| bindsym $mod+Shift+3 move container to workspace 3 | ||||
| bindsym $mod+Shift+4 move container to workspace 4 | ||||
| bindsym $mod+Shift+5 move container to workspace 5 | ||||
| bindsym $mod+Shift+6 move container to workspace 6 | ||||
| bindsym $mod+Shift+7 move container to workspace 7 | ||||
| bindsym $mod+Shift+8 move container to workspace 8 | ||||
| bindsym $mod+Shift+9 move container to workspace 9 | ||||
| bindsym $mod+Shift+0 move container to workspace 10 | ||||
|  | ||||
| # opens logout/shutdown menu | ||||
| bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh | ||||
|  | ||||
| set $bg-color            #2f343f | ||||
| set $inactive-bg-color   #2f343f | ||||
| set $text-color          #f3f4f5 | ||||
| set $inactive-text-color #676E7D | ||||
| set $urgent-bg-color     #E53935 | ||||
|  | ||||
| # window colors | ||||
| #                       border              background         text                 indicator | ||||
| client.focused          $bg-color           $bg-color          $text-color          $bg-color | ||||
| client.unfocused        $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color | ||||
| client.focused_inactive $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color | ||||
| client.urgent           $urgent-bg-color    $urgent-bg-color   $text-color          $bg-color | ||||
|  | ||||
| bar { | ||||
|     status_command i3blocks -c ~/.config/i3/blocks/config | ||||
|  | ||||
|     workspace_buttons yes | ||||
|     strip_workspace_numbers yes | ||||
|     tray_output $hdmi | ||||
|     tray_padding 2 | ||||
|     position top | ||||
|     height 20 | ||||
|  | ||||
|     colors { | ||||
|         separator #757575 | ||||
|         background #2f343f | ||||
|         #                  border             background         text | ||||
|         focused_workspace  $bg-color          $bg-color          $text-color | ||||
|         inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color | ||||
|         urgent_workspace   $urgent-bg-color   $urgent-bg-color   $text-color | ||||
|     } | ||||
| } | ||||
|  | ||||
| # Window rules | ||||
| for_window [class="Pinentry"] floating enable | ||||
| for_window [class="Pavucontrol"] floating enable | ||||
| for_window [class="Blueman-manager"] floating enable | ||||
| for_window [window_role="floating-term"] floating enable | ||||
| for_window [window_role="pop-up"] floating enable | ||||
| for_window [window_role="i3blocks-update-term"] floating enable | ||||
| for_window [window_role="i3blocks-clock-term"] floating enable | ||||
| for_window [title="^rofi$"] floating enable | ||||
|  | ||||
| new_window pixel 5 | ||||
| new_float none | ||||
|  | ||||
| gaps inner 7 | ||||
| gaps outer 2 | ||||
| #smart_gaps on | ||||
|  | ||||
| focus_follows_mouse yes | ||||
|  | ||||
| # keybindings | ||||
| bindsym $mod+Shift+j reload | ||||
| #bindsym $mod+Shift+p restart | ||||
| bindsym $mod+c       exec chromium | ||||
| bindsym $mod+v       exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\" | ||||
| bindsym $mod+Ctrl+v  exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\" | ||||
| bindsym Mod1+Tab     exec ~/.config/i3/alt-tab.sh | ||||
| bindsym $mod+Return  exec i3-sensible-terminal | ||||
| bindsym $mod+Ctrl+Return  exec i3-sensible-terminal -r floating-term  --geometry 96x30 | ||||
| bindsym $mod+Shift+Return  exec i3-sensible-terminal -d "`xcwd`" | ||||
| bindsym $mod+Ctrl+Shift+Return  exec i3-sensible-terminal -r floating-term  --geometry 96x30 -d "`xcwd`" | ||||
| bindsym $mod+l       exec ~/.config/i3/lock.sh | ||||
| # -fg "#CCD3DAE3" -bg "#CC383C4A" -hlbg "#CC5294E2"  | ||||
| bindsym $mod+space   exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window" | ||||
| bindsym $mod+Shift+p exec rofi-pass | ||||
| bindsym $mod+Shift+e exec rofi-emoji | ||||
| bindsym --release Print        exec imgur-screenshot | ||||
| bindsym --release $mod+Print   exec imgur-screenshot -f | ||||
| bindsym $mod+Mod1+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks | ||||
| bindsym $mod+numbersign exec "termite -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'" | ||||
| bindsym $mod+r       exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'" | ||||
| bindsym $mod+g       exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\"" | ||||
|  | ||||
| # Media player controls | ||||
| bindsym XF86AudioPlay  exec --no-startup-id mpc toggle | ||||
| bindsym XF86AudioPause exec --no-startup-id mpc pause | ||||
| bindsym XF86AudioStop  exec --no-startup-id mpc stop | ||||
| bindsym XF86AudioNext  exec --no-startup-id mpc next | ||||
| bindsym XF86AudioPrev  exec --no-startup-id mpc previous | ||||
| bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  +1000 | ||||
| bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  -1000 | ||||
| bindsym XF86AudioMute        exec --no-startup-id pactl set-sink-mute   @DEFAULT_SINK@ toggle | ||||
| bindsym XF86MonBrightnessUp  exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks | ||||
| bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks | ||||
| exec --no-startup-id "ip monitor | while read; do pkill -RTMIN+15 i3blocks; done" | ||||
|  | ||||
| # app launch shortcuts | ||||
| exec --no-startup-id ~/.fehbg | ||||
| exec --no-startup-id ~/.config/i3/disable-standby-fs.py | ||||
| exec --no-startup-id xautolock -time 5 -locker ~/.config/i3/lock.sh -nocloseout -nocloseerr | ||||
|  | ||||
| # startup programs | ||||
| exec --no-startup-id pulseaudio | ||||
| exec --no-startup-id nextcloud | ||||
| exec --no-startup-id blueman-applet | ||||
| exec --no-startup-id redshift | ||||
| exec --no-startup-id xbindkeys | ||||
| exec --no-startup-id onboard | ||||
| exec --no-startup-id compton -b --config ~/.config/compton.conf | ||||
| exec --no-startup-id chromium --no-startup-window | ||||
|  | ||||
| exec i3-msg 'workspace 1; exec sleep 2 && chromium' | ||||
| exec i3-msg 'workspace 2; exec i3-sensible-terminal' | ||||
|  | ||||
| # vim:ft=i3 | ||||
							
								
								
									
										
											BIN
										
									
								
								.config/i3/lock.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.config/i3/lock.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 7.8 KiB | 
							
								
								
									
										40
									
								
								.config/i3/lock.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								.config/i3/lock.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| icon="$HOME/.config/i3/lock.png" | ||||
| tmpbg='/tmp/screen.png' | ||||
|  | ||||
| (( $# )) && { icon=$1; } | ||||
|  | ||||
| PX=0 | ||||
| PY=0 | ||||
| # lockscreen image info | ||||
| R=$(file $icon | grep -o '[0-9]* x [0-9]*') | ||||
| RX=$(echo $R | cut -d' ' -f 1) | ||||
| RY=$(echo $R | cut -d' ' -f 3) | ||||
|  | ||||
| RES=$(xrandr --query | grep ' connected primary' | cut -f4 -d' ') | ||||
|  | ||||
| # monitor position/offset | ||||
| SRX=$(echo $RES | cut -d'x' -f 1)                   # x pos | ||||
| SRY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 1)  # y pos | ||||
| SROX=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 2) # x offset | ||||
| SROY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 3) # y offset | ||||
| PX=$(($SROX + $SRX/2 - $RX/2)) | ||||
| PY=$(($SROY + $SRY/2 - $RY/2)) | ||||
|  | ||||
| # screenshot, pixelise and overlay | ||||
| maim | convert - -scale 5% -scale 2000% $icon -geometry +$PX+$PY -composite -matte $tmpbg | ||||
|  | ||||
| if command mpc 2>&1 1>/dev/null; then | ||||
|     playing=$(mpc status | grep playing | wc -l) | ||||
|     [[ $playing == 1 ]] && mpc pause | ||||
| fi | ||||
|  | ||||
| i3lock -i "$tmpbg" -n -e | ||||
|  | ||||
| if command mpc 2>&1 1>/dev/null; then | ||||
|     [[ $playing == 1 ]] && mpc play | ||||
| fi | ||||
|  | ||||
|  | ||||
| rm "$tmpbg" | ||||
							
								
								
									
										18
									
								
								.config/i3/powermenu.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								.config/i3/powermenu.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| #!/bin/bash | ||||
|   | ||||
| option=$(echo "        lock|      logout|       sleep|   hibernate|   power off|      reboot|    windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 8 -lines 6 -location 3 -tokenize false -matching normal | xargs) | ||||
|  | ||||
| case $option in | ||||
|     lock) ./lock.sh;; | ||||
|     logout) i3-msg exit;; | ||||
|     sleep) systemctl suspend;; | ||||
|     hibernate) systemctl hibernate;; | ||||
|     power\ off) systemctl poweroff;; | ||||
|     reboot) systemctl reboot;; | ||||
|     windows) | ||||
|         windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4` | ||||
|         sudo efibootmgr -n $windows | ||||
|         sudo hibereboot;; | ||||
| esac | ||||
|  | ||||
| exit 0 | ||||
							
								
								
									
										
											BIN
										
									
								
								.config/imgur-screenshot/imgur.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.config/imgur-screenshot/imgur.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.1 KiB | 
							
								
								
									
										20
									
								
								.config/imgur-screenshot/settings.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.config/imgur-screenshot/settings.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| imgur_icon_path="$HOME/.config/imgur-screenshot/imgur.ico" | ||||
| imgur_acct_key="" | ||||
| imgur_secret="" | ||||
| login="false" | ||||
| log_file="$HOME/.config/imgur-screenshot/imgur-screenshot.log" | ||||
| credentials_file="$HOME/.config/imgur-screenshot/credentials.conf" | ||||
| file_name_format="screenshot-%Y-%m-%d-%H%M%S.png" # when using scrot, must end with .png! | ||||
| file_dir="$HOME/pictures/screenshots" | ||||
| screenshot_select_command="maim -m 10 -us %img" | ||||
| screenshot_window_command="maim -m 10 -uw %img" | ||||
| edit_command="gimp %img" | ||||
| edit="false" | ||||
| exit_on_selection_fail="true" | ||||
| edit_on_selection_fail="false" | ||||
| exit_on_album_creation_fail="true" | ||||
| open_command="xdg-open %url" | ||||
| open="false" | ||||
| copy_url="true" | ||||
| keep_file="true" | ||||
| check_update="true" | ||||
							
								
								
									
										26
									
								
								.config/rofi/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.config/rofi/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| !----------------------------- | ||||
| ! Rofi config | ||||
| !----------------------------- | ||||
|  | ||||
| ! State:            'bg',       'fg',     'bgalt'     'hlbg',   'hlfg' | ||||
| rofi.color-window:  #F2383C4A,  #2F343F | ||||
| rofi.color-normal:  #00383C4A,  #D3DAE3,  #00383C4A,  #5294E2,  #ECEFF1 | ||||
| rofi.bc:            #CC383C4A | ||||
| rofi.bw:            5 | ||||
| rofi.padding:       8 | ||||
| rofi.lines:         12 | ||||
| rofi.width:         40 | ||||
| rofi.font:          Noto Sans 14 | ||||
| rofi.line-margin:   6 | ||||
| rofi.sep:           | | ||||
| rofi.prompt:        > | ||||
| rofi.ssh-command:   {terminal} -e "{ssh-client} {host}" | ||||
| rofi.separator-style: solid | ||||
| rofi.kb-row-tab:    Shift+Tab | ||||
| rofi.kb-row-select: Tab | ||||
|  | ||||
| rofi.matching:      glob | ||||
| rofi.tokenize:      true | ||||
| rofi.normal-window: true | ||||
|  | ||||
| ! vim: ft=xdefaults | ||||
							
								
								
									
										10
									
								
								.config/systemd/user/sleep-i3lock@.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.config/systemd/user/sleep-i3lock@.service
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| [Unit] | ||||
| Description=Lock X session using i3lock | ||||
|  | ||||
| [Service] | ||||
| User=%i | ||||
| Environment=DISPLAY=:0 | ||||
| ExecStart=sh -c '~/.config/i3/lock.sh' | ||||
|  | ||||
| [Install] | ||||
| WantedBy=sleep.target | ||||
| @@ -1,5 +1,5 @@ | ||||
| [options] | ||||
| font = monospace 9 | ||||
| font = SauceCodePro 9 | ||||
| scrollback_lines = 1000000 | ||||
| cursor_blink = off | ||||
| size_hints = true | ||||
| @@ -7,7 +7,7 @@ size_hints = true | ||||
| [colors] | ||||
| cursor     = #5294E2 | ||||
| foreground = #ECEFF1 | ||||
| background = rgba(56, 60, 74, 0.85) | ||||
| background = rgba(56, 60, 74, 0.95) | ||||
| highlight  = #5294E2 | ||||
| 
 | ||||
| # Colour order: | ||||
| @@ -5,7 +5,7 @@ | ||||
| # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an | ||||
| # absolute path. No other format is supported. | ||||
| #  | ||||
| XDG_DESKTOP_DIR="$HOME" | ||||
| XDG_DESKTOP_DIR="$HOME/documents" | ||||
| XDG_DOCUMENTS_DIR="$HOME/documents" | ||||
| XDG_DOWNLOAD_DIR="$HOME/downloads" | ||||
| XDG_MUSIC_DIR="$HOME/music" | ||||
							
								
								
									
										9
									
								
								vim/.gitignore → .config/vim/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vim/.gitignore → .config/vim/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,7 @@ | ||||
| /.netrwhist | ||||
| /autoload/plug.vim | ||||
| /plug/ | ||||
| /bundle/ | ||||
| /spell/ | ||||
| /swapfiles/ | ||||
| /vim-latex | ||||
| /viminf*.tmp | ||||
| /viminfo | ||||
| /viminf*.tmp | ||||
| /vim-latex | ||||
| /.netrwhist | ||||
| @@ -1,15 +1,13 @@ | ||||
| set nocompatible              " be iMproved, required | ||||
| 
 | ||||
| " Reconfigure Vim to be clean! | ||||
| set undodir=$XDG_CACHE_HOME/vim/undo// | ||||
| set directory=$XDG_CACHE_HOME/vim/swap// | ||||
| set backupdir=$XDG_CACHE_HOME/vim/backup// | ||||
| set viminfo+='1000,n$XDG_CACHE_HOME/vim/viminfo | ||||
| set runtimepath-=$HOME/.vim | ||||
| set runtimepath^=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after | ||||
| let g:netrw_home=$XDG_CACHE_HOME.'/vim' | ||||
| set rtp+=~/.config/vim | ||||
| set directory=.,~/.config/vim | ||||
| set viminfo+=n~/.config/vim/viminfo | ||||
| set directory=$HOME/.config/vim/swapfiles// | ||||
| 
 | ||||
| silent !mkdir -p $XDG_CACHE_HOME/vim/swap $XDG_CACHE_HOME/vim/undo $XDG_CACHE_HOME/vim/backup | ||||
| syntax enable | ||||
| filetype plugin on | ||||
| 
 | ||||
| set tabstop=4 | ||||
| set shiftwidth=0   " Use tabstop | ||||
| @@ -39,14 +37,6 @@ set updatetime=500  " reduce delay from 4s default | ||||
| 
 | ||||
| let mapleader="\<space>" | ||||
| 
 | ||||
| " ALE config | ||||
| let g:ale_completion_enabled = 1 | ||||
| let g:ale_open_list = 1 | ||||
| augroup CloseLoclistWindowGroup | ||||
|     autocmd! | ||||
|     autocmd QuitPre * if empty(&buftype) | lclose | endif | ||||
| augroup END | ||||
| 
 | ||||
| " Autosave settings | ||||
| function! SaveIfExist() | ||||
|     if @% != "" && filereadable(@%) && !&readonly && &modified | ||||
| @@ -62,87 +52,80 @@ set ignorecase | ||||
| set smartcase | ||||
| set magic | ||||
| 
 | ||||
| " Auto-resize split on window resize | ||||
| autocmd VimResized * wincmd = | ||||
| " More natural splits | ||||
| set splitbelow          " Horizontal split below current. | ||||
| set splitright          " Vertical split to right of current. | ||||
| 
 | ||||
| " GVim settings | ||||
| set guifont=Sauce\ Code\ Pro\ 9 | ||||
| set guioptions= | ||||
| 
 | ||||
| " Whitespace highlight settings | ||||
| set list | ||||
| set listchars=space:·,tab:>-,trail:◦,extends:▶,precedes:◀ | ||||
| set listchars=eol:$,space:·,tab:>-,trail:◦,extends:▶,precedes:◀ | ||||
| highlight SpecialKey ctermfg=8 | ||||
| 
 | ||||
| set cc=+1 | ||||
| highlight ColorColumn ctermbg=8 | ||||
| if exists('+colorcolumn') | ||||
|     highlight ColorColumn ctermbg=8 | ||||
|     autocmd filetype c,h,cpp,hpp set colorcolumn=81 | ||||
|     autocmd filetype c,h,cpp,hpp match ErrorMsg '\%>80v.\+' | ||||
| endif | ||||
| 
 | ||||
| " Highlight line and column of cursor | ||||
| set cul cuc | ||||
| highlight CursorLine   cterm=NONE ctermbg=8 | ||||
| highlight CursorColumn cterm=NONE ctermbg=8 | ||||
| 
 | ||||
| if empty(glob('$XDG_CONFIG_HOME/vim/autoload/plug.vim')) | ||||
|   silent !curl -fsSLo $XDG_CONFIG_HOME/vim/autoload/plug.vim --create-dirs | ||||
|     \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | ||||
|   autocmd VimEnter * PlugInstall --sync | source $VIMRC | ||||
| endif | ||||
| " set the runtime path to include Vundle and initialize | ||||
| set rtp+=~/.config/vim/bundle/Vundle.vim | ||||
| call vundle#begin() | ||||
| call vundle#rc('~/.config/vim/bundle') | ||||
| 
 | ||||
| call plug#begin('$XDG_CONFIG_HOME/vim/plug') | ||||
| Plugin 'VundleVim/Vundle.vim' | ||||
| Plugin 'Valloric/YouCompleteMe' | ||||
| Plugin 'scrooloose/syntastic' | ||||
| Plugin 'scrooloose/nerdtree' | ||||
| Plugin 'tpope/vim-sensible' | ||||
| Plugin 'tpope/vim-fugitive' | ||||
| Plugin 'tpope/vim-rhubarb' | ||||
| Plugin 'tpope/vim-abolish' | ||||
| Plugin 'tpope/vim-surround' | ||||
| Plugin 'tpope/vim-repeat' | ||||
| Plugin 'tpope/vim-commentary' | ||||
| Plugin 'majutsushi/tagbar' | ||||
| Plugin 'airblade/vim-gitgutter' | ||||
| Plugin 'ryanoasis/vim-devicons' | ||||
| Plugin 'vim-airline/vim-airline' | ||||
| Plugin 'vim-airline/vim-airline-themes' | ||||
| Plugin 'chr4/nginx.vim' | ||||
| Plugin 'PotatoesMaster/i3-vim-syntax' | ||||
| Plugin 'lervag/vimtex' | ||||
| Plugin 'JamshedVesuna/vim-markdown-preview' | ||||
| Plugin 'junegunn/fzf.vim' | ||||
| 
 | ||||
| Plug 'scrooloose/nerdtree', { 'on':  'NERTreeToggle' } | ||||
| Plug 'tpope/vim-sensible' | ||||
| Plug 'tpope/vim-fugitive' | ||||
| Plug 'tpope/vim-rhubarb' | ||||
| Plug 'tpope/vim-abolish' | ||||
| Plug 'tpope/vim-surround' | ||||
| Plug 'tpope/vim-repeat' | ||||
| Plug 'tpope/vim-commentary' | ||||
| Plug 'majutsushi/tagbar' | ||||
| Plug 'airblade/vim-gitgutter' | ||||
| Plug 'ryanoasis/vim-devicons' | ||||
| Plug 'vim-airline/vim-airline' | ||||
| Plug 'vim-airline/vim-airline-themes' | ||||
| Plug 'lervag/vimtex' | ||||
| Plug 'JamshedVesuna/vim-markdown-preview' | ||||
| Plug 'junegunn/fzf.vim' | ||||
| 
 | ||||
| " Completion and linting | ||||
| Plug 'dense-analysis/ale' | ||||
| Plug 'Shougo/deoplete.nvim' | ||||
| Plug 'roxma/nvim-yarp' | ||||
| Plug 'roxma/vim-hug-neovim-rpc' | ||||
| 
 | ||||
| Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } | ||||
| 
 | ||||
| " Syntax Highlighting | ||||
| Plug 'chr4/nginx.vim' | ||||
| Plug 'PotatoesMaster/i3-vim-syntax' | ||||
| Plug 'puppetlabs/puppet-syntax-vim' | ||||
| Plug 'saltstack/salt-vim' | ||||
| Plug 'arrufat/vala.vim' | ||||
| Plug 'Glench/Vim-Jinja2-Syntax' | ||||
| Plug 'pearofducks/ansible-vim' | ||||
| Plug 'jvirtanen/vim-hcl' | ||||
| Plug 'hashivim/vim-terraform' | ||||
| 
 | ||||
| call plug#end() | ||||
| call vundle#end() | ||||
| 
 | ||||
| " Change to dvorak-mapped keys | ||||
| let g:use_dvorak = 1 | ||||
| 
 | ||||
| " Deoplete config | ||||
| call deoplete#custom#option({ | ||||
| \ 'camel_case': v:true, | ||||
| \ }) | ||||
| call deoplete#enable() | ||||
| " YouCompleteMe config | ||||
| let g:ycm_confirm_extra_conf = 0 | ||||
| if !exists('g:ycm_semantic_triggers') | ||||
|     let g:ycm_semantic_triggers = {} | ||||
| endif | ||||
| let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme | ||||
| "let g:vimtex_view_method='zathura' | ||||
| let g:tex_flavor='latex' | ||||
| let g:vimtex_indent_enabled = 0     " auto-indentation is wrong and annoying | ||||
| autocmd FileType tex silent VimtexCompile | ||||
| autocmd FileType tex setlocal spell | ||||
| autocmd FileType tex TagbarOpen | ||||
| 
 | ||||
| " Vim-Airline config | ||||
| let g:Powerline_symbols = 'fancy' | ||||
| let g:airline_powerline_fonts = 1 | ||||
| let g:airline_theme='solarized' | ||||
| let g:airline#extensions#tabline#enabled = 1 | ||||
| " ALE integration | ||||
| let g:airline#extensions#ale#enabled = 1 | ||||
| 
 | ||||
| " vim-markdown plugin | ||||
| let vim_markdown_preview_toggle=0 | ||||
| @@ -150,17 +133,13 @@ let vim_markdown_preview_browser='Chromium' | ||||
| let vim_markdown_preview_use_xdg_open=1 | ||||
| let vim_markdown_preview_github=1 | ||||
| 
 | ||||
| " LaTeX config | ||||
| let g:tex_flavor='xelatex' | ||||
| let g:vimtex_indent_enabled = 0     " auto-indentation is wrong and annoying | ||||
| autocmd FileType tex silent VimtexCompile | ||||
| autocmd FileType tex setlocal spell | ||||
| augroup vimtex | ||||
|     autocmd! | ||||
|     autocmd BufWritePost tex call vimtex#toc#refresh() | ||||
|     autocmd BufWritePost tex call vimtex#labels#refresh() | ||||
|     autocmd BufWritePost tex silent VimtexCompile | ||||
| augroup END | ||||
| " Syntastic configuration | ||||
| let g:syntastic_enable_highlighting = 1 | ||||
| let g:syntastic_enable_signs=1 | ||||
| let g:syntastic_always_populate_loc_list = 1 | ||||
| let g:syntastic_auto_loc_list = 1 | ||||
| let g:syntastic_check_on_open = 1 | ||||
| let g:syntastic_check_on_wq = 0 | ||||
| 
 | ||||
| " Tagbar configuration | ||||
| let g:tagbar_width = 50 | ||||
| @@ -170,12 +149,10 @@ let g:tagbar_singleclick = 1 | ||||
| let g:tagbar_autopreview = 1 | ||||
| 
 | ||||
| " NERDTree configuration | ||||
| map  <leader><tab> :NERDTreeToggle<CR> | ||||
| map  <leader><space> :NERDTreeToggle<CR> | ||||
| 
 | ||||
| " FZF configurationn | ||||
| map  <leader><space> :Files<CR> | ||||
| map  <leader>b     :Buffers<CR> | ||||
| map  <leader>l     :Lines<CR> | ||||
| map  <leader><tab> :Files<CR> | ||||
| 
 | ||||
| " Disable mouse | ||||
| set mouse=nicr | ||||
| @@ -215,6 +192,10 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1) | ||||
| 	noremap h j | ||||
| 	noremap t k | ||||
| 	noremap n l | ||||
| 	noremap D H | ||||
| 	noremap H J | ||||
| 	noremap T K | ||||
| 	noremap N L | ||||
| 
 | ||||
| 	noremap gh gj | ||||
| 	noremap gt gk | ||||
| @@ -269,20 +250,7 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1) | ||||
|         \ 'x': ['tsd', 'tsD'], | ||||
|         \} | ||||
| 
 | ||||
|     " NERDTree configuration | ||||
|     let NERDTreeMapOpenInTab='\t'   " prevent t opening file | ||||
| 
 | ||||
|     " Also remap keys in :Explore | ||||
|     augroup netrw_dvorak_fix | ||||
|         autocmd! | ||||
|         autocmd filetype netrw call Fix_netrw_maps_for_dvorak() | ||||
|     augroup END | ||||
|     function! Fix_netrw_maps_for_dvorak() | ||||
|         noremap <buffer> d h | ||||
|         noremap <buffer> h j | ||||
|         noremap <buffer> t k | ||||
|         noremap <buffer> n l | ||||
|     endfunction | ||||
|     let NERDTreeMapOpenInTab='\t' | ||||
| 
 | ||||
| endif | ||||
| 
 | ||||
| @@ -297,15 +265,5 @@ com! WQA wqa | ||||
| " Write with sudo | ||||
| cmap w!! w !sudo tee > /dev/null % | ||||
| 
 | ||||
| " Unmap ex-mode | ||||
| map Q <nop> | ||||
| 
 | ||||
| 
 | ||||
| autocmd FileType c setlocal noet | ||||
| autocmd filetype c,h,cpp,hpp set colorcolumn=81 | ||||
| autocmd filetype c,h,cpp,hpp match ErrorMsg '\%>80v.\+' | ||||
| 
 | ||||
| autocmd FileType jinja setlocal sts=2 sw=2 et | ||||
| autocmd FileType markdown setlocal sts=2 sw=2 et | ||||
| autocmd FileType yaml setlocal sts=2 sw=2 et indentkeys-=<:> | ||||
| autocmd FileType gitcommit setlocal tw=72 et sw=4 | ||||
| autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et | ||||
| autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et | ||||
							
								
								
									
										83
									
								
								.config/zsh/plugins/fish-theme.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								.config/zsh/plugins/fish-theme.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,83 @@ | ||||
| # ZSH Theme emulating the Fish shell's default prompt. | ||||
|  | ||||
| _fishy_collapsed_wd() { | ||||
|   echo $(pwd | perl -pe ' | ||||
|    BEGIN { | ||||
|       binmode STDIN,  ":encoding(UTF-8)"; | ||||
|       binmode STDOUT, ":encoding(UTF-8)"; | ||||
|    }; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g | ||||
| ') | ||||
| } | ||||
|  | ||||
| git_prompt_info() { | ||||
|   ref=$(git symbolic-ref HEAD 2> /dev/null) || return | ||||
|   echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX" | ||||
| } | ||||
| git_prompt_status() { | ||||
|     # Get the status of the working tree | ||||
|     INDEX=$(command git status --porcelain -b 2> /dev/null) | ||||
|     STATUS="" | ||||
|     if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^A  ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS" | ||||
|     elif $(echo "$INDEX" | grep '^M  ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | ||||
|     elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | ||||
|     elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" | ||||
|     elif $(echo "$INDEX" | grep '^D  ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" | ||||
|     elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" | ||||
|     fi | ||||
|     if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS" | ||||
|     fi | ||||
|     if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then | ||||
|       STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS" | ||||
|     fi | ||||
|     echo $STATUS | ||||
| } | ||||
|  | ||||
| # Required for dynamic prompt | ||||
| setopt prompt_subst | ||||
|  | ||||
| local user_color='green'; [ $UID -eq 0 ] && user_color='red' | ||||
| PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) " | ||||
| PROMPT2='%F{red}\ %f' | ||||
|  | ||||
| local return_status="%F{red}%(?..%?)%f" | ||||
| RPROMPT='${return_status}$(git_prompt_info)$(git_prompt_status)%{$reset_color%}' | ||||
|  | ||||
| ZSH_THEME_GIT_PROMPT_PREFIX=" " | ||||
| ZSH_THEME_GIT_PROMPT_SUFFIX="" | ||||
| ZSH_THEME_GIT_PROMPT_DIRTY="" | ||||
| ZSH_THEME_GIT_PROMPT_CLEAN="" | ||||
|  | ||||
| ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+" | ||||
| ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!" | ||||
| ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-" | ||||
| ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>" | ||||
| ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#" | ||||
| ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?" | ||||
| @@ -4,11 +4,14 @@ sudo-command-line() { | ||||
|     [[ -z $BUFFER ]] && zle up-history | ||||
|     if [[ $BUFFER == sudo\ * ]]; then | ||||
|         LBUFFER="${LBUFFER#sudo }" | ||||
|     elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]] || [[ $BUFFER == vim\ * ]]; then | ||||
|         LBUFFER="s$LBUFFER" | ||||
|     elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]|| [[ $BUFFER == svim\ * ]]; then | ||||
|     elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]]; then | ||||
|         LBUFFER="${LBUFFER#$EDITOR }" | ||||
|         LBUFFER="${LBUFFER#vi }" | ||||
|         LBUFFER="svi $LBUFFER" | ||||
|     elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]; then | ||||
|         LBUFFER="${LBUFFER#sudoedit }" | ||||
|         LBUFFER="${LBUFFER#s}" | ||||
|         LBUFFER="${LBUFFER#svi }" | ||||
|         LBUFFER="$EDITOR $LBUFFER" | ||||
|     else | ||||
|         LBUFFER="sudo $LBUFFER" | ||||
|     fi | ||||
							
								
								
									
										2
									
								
								.fehbg
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								.fehbg
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| #!/bin/sh | ||||
| 'feh' '--no-xinerama' '--bg-fill' '/home/frebib/pictures/lakesidesunrise.jpg'  | ||||
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +1,8 @@ | ||||
| bookmarks | ||||
| .config/secrets | ||||
|  | ||||
| .config/gopass/gopass-logo-small.png | ||||
| .config/gtk-2.0/gtkfilechooser.ini | ||||
| .config/imgur-screenshot/credentials.conf | ||||
| .config/mailnag/mailnag.dat | ||||
| .config/zsh/.zshrc.zwc | ||||
|  | ||||
| *.log | ||||
| .xournal/recent-files | ||||
| .vim/bundle | ||||
| .vim/swapfiles | ||||
|   | ||||
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| [submodule "surface-scripts"] | ||||
| 	path = surface-scripts | ||||
| 	url = https://github.com/frebib/surface-scripts.git | ||||
| @@ -1,8 +1,12 @@ | ||||
| # DO NOT EDIT! This file will be overwritten by LXAppearance. | ||||
| # Any customization should be done in ~/.gtkrc-2.0.mine instead. | ||||
| 
 | ||||
| include "/home/frebib/.gtkrc-2.0.mine" | ||||
| gtk-theme-name="Arc-Dark" | ||||
| gtk-icon-theme-name="Xenlism-Wildfire" | ||||
| gtk-font-name="sans 9" | ||||
| gtk-font-name="Noto Sans 9" | ||||
| gtk-cursor-theme-name="Breeze_Obsidian" | ||||
| gtk-cursor-theme-size=16 | ||||
| gtk-cursor-theme-size=0 | ||||
| gtk-toolbar-style=GTK_TOOLBAR_BOTH | ||||
| gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR | ||||
| gtk-button-images=1 | ||||
							
								
								
									
										71
									
								
								.profile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.profile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| export LC_ALL=en_GB.UTF-8 | ||||
| export LANG=en_GB.UTF-8 | ||||
| export LC_NUMERIC=en_GB | ||||
|  | ||||
| export CONFIG_DIR="$HOME/.config" | ||||
| export XDG_CONFIG_HOME="$CONFIG_DIR" | ||||
| case "$(basename "$(readlink -f /proc/$$/exe)")" in | ||||
|     zsh)  thisfile="$(readlink -f "${(%):-%N}")";; | ||||
|     bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";; | ||||
|     *)   thisfile="$(find /proc/$$/fd/ | xargs readlink -f | grep .profile | head -n1)";; | ||||
| esac | ||||
| export DOTFILES="$(dirname "${thisfile:-$CONFIG_DIR/dotfiles}")" | ||||
| export PATH="${PATH}:$DOTFILES/scripts" | ||||
| export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open | ||||
|  | ||||
| # Allow Vim to load from ~/.config/vim | ||||
| export VIMDIR="$CONFIG_DIR/vim" | ||||
| export MYVIMRC="$VIMDIR/vimrc" | ||||
| export VIMINIT=":so $MYVIMRC" | ||||
|  | ||||
| export EDITOR="vim" | ||||
| export VISUAL="vim" | ||||
| export MANPAGER="less -+N" | ||||
| export TERMINAL="termite" | ||||
| export BROWSER="chromium" | ||||
| export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" | ||||
| export QT_QPA_PLATFORMTHEME=gtk2 | ||||
| export GOPATH="$HOME/.cache/go" | ||||
|  | ||||
| exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; } | ||||
|  | ||||
| export LESS="-RI" | ||||
| export PAGER="less $LESS" | ||||
| if exists tput; then | ||||
|     export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green | ||||
|     export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan | ||||
|     export LESS_TERMCAP_me=$(tput sgr0) | ||||
|     export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue | ||||
|     export LESS_TERMCAP_se=$(tput rmso; tput sgr0) | ||||
|     export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white | ||||
|     export LESS_TERMCAP_ue=$(tput rmul; tput sgr0) | ||||
|     export LESS_TERMCAP_mr=$(tput rev) | ||||
|     export LESS_TERMCAP_mh=$(tput dim) | ||||
|     export LESS_TERMCAP_ZN=$(tput ssubm) | ||||
|     export LESS_TERMCAP_ZV=$(tput rsubm) | ||||
|     export LESS_TERMCAP_ZO=$(tput ssupm) | ||||
|     export LESS_TERMCAP_ZW=$(tput rsupm) | ||||
| fi | ||||
|  | ||||
| # Source secret keys and values into environment | ||||
| if [ -f "$CONFIG_DIR/secrets" ]; then | ||||
|     set -o allexport | ||||
|     source $CONFIG_DIR/secrets | ||||
|     set +o allexport | ||||
| fi | ||||
|  | ||||
| # Merge system clipboards | ||||
| if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then | ||||
|     autocutsel -fork | ||||
|     autocutsel -selection PRIMARY -fork | ||||
| fi | ||||
|  | ||||
| if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then | ||||
|     eval $(dbus-launch --sh-syntax --exit-with-session) | ||||
|     dbus-update-activation-environment --systemd DISPLAY | ||||
| fi | ||||
|  | ||||
| # Start the gnome-keyring if it's installed | ||||
| if exists gnome-keyring-daemon; then | ||||
|     export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg) | ||||
| fi | ||||
| @@ -1,4 +1,4 @@ | ||||
| #!/bin/bash | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Run all system xinitrc shell scripts | ||||
| xinitdir="/etc/X11/xinit/xinitrc.d" | ||||
| @@ -11,12 +11,8 @@ if [ -d "$xinitdir" ]; then | ||||
|     done | ||||
| fi | ||||
| 
 | ||||
| # Source generic xprofile stuff | ||||
| source "$(dirname "${BASH_SOURCE[0]}")/xprofile" | ||||
| 
 | ||||
| # Start the gnome-keyring if it's installed | ||||
| if exists gnome-keyring-daemon; then | ||||
|     export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg) | ||||
| fi | ||||
| source ~/.profile | ||||
| source ~/.xsession | ||||
| xrdb -merge ~/.Xresources | ||||
| 
 | ||||
| exec i3 | ||||
							
								
								
									
										171
									
								
								.xournal/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								.xournal/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | ||||
| # Xournal configuration file. | ||||
| # This file is generated automatically upon saving preferences. | ||||
| # Use caution when editing this file manually. | ||||
| # | ||||
|  | ||||
| [general] | ||||
| # the display resolution, in pixels per inch | ||||
| display_dpi=96.00 | ||||
| # the initial zoom level, in percent | ||||
| initial_zoom=169.98 | ||||
| # maximize the window at startup (true/false) | ||||
| window_maximize=false | ||||
| # start in full screen mode (true/false) | ||||
| window_fullscreen=false | ||||
| # the window width in pixels (when not maximized) | ||||
| window_width=2120 | ||||
| # the window height in pixels | ||||
| window_height=1374 | ||||
| # scrollbar step increment (in pixels) | ||||
| scrollbar_speed=30 | ||||
| # the step increment in the zoom dialog box | ||||
| zoom_dialog_increment=1 | ||||
| # the multiplicative factor for zoom in/out | ||||
| zoom_step_factor=1.500 | ||||
| # continuous view (false = one page, true = continuous, horiz = horizontal) | ||||
| view_continuous=true | ||||
| # use XInput extensions (true/false) | ||||
| use_xinput=true | ||||
| # discard Core Pointer events in XInput mode (true/false) | ||||
| discard_corepointer=false | ||||
| # ignore events from other devices while drawing (true/false) | ||||
| ignore_other_devices=true | ||||
| # do not worry if device reports button isn't pressed while drawing (true/false) | ||||
| ignore_btn_reported_up=true | ||||
| # always map eraser tip to eraser (true/false) | ||||
| use_erasertip=true | ||||
| # always map touchscreen device to hand tool (true/false) (requires separate pen and touch devices) | ||||
| touchscreen_as_hand_tool=true | ||||
| # disable touchscreen device when pen is in proximity (true/false) (requires separate pen and touch devices) | ||||
| pen_disables_touch=true | ||||
| # name of touchscreen device for touchscreen_as_hand_tool | ||||
| touchscreen_device_name=NTRG0001:01 1B96:1B05 | ||||
| # buttons 2 and 3 switch mappings instead of drawing (useful for some tablets) (true/false) | ||||
| buttons_switch_mappings=false | ||||
| # automatically load filename.pdf.xoj instead of filename.pdf (true/false) | ||||
| autoload_pdf_xoj=false | ||||
| # enable periodic autosaves (true/false) | ||||
| autosave_enabled=true | ||||
| # delay for periodic autosaves (in seconds) | ||||
| autosave_delay=5 | ||||
| # default path for open/save (leave blank for current directory) | ||||
| default_path= | ||||
| # use pressure sensitivity to control pen stroke width (true/false) | ||||
| pressure_sensitivity=true | ||||
| # minimum width multiplier | ||||
| width_minimum_multiplier=0.00 | ||||
| # maximum width multiplier | ||||
| width_maximum_multiplier=1.25 | ||||
| # interface components from top to bottom | ||||
| # valid values: drawarea menu main_toolbar pen_toolbar statusbar | ||||
| interface_order=menu main_toolbar pen_toolbar drawarea statusbar | ||||
| # interface components in fullscreen mode, from top to bottom | ||||
| interface_fullscreen=main_toolbar pen_toolbar drawarea | ||||
| # interface has left-handed scrollbar (true/false) | ||||
| interface_lefthanded=false | ||||
| # hide some unwanted menu or toolbar items (true/false) | ||||
| shorten_menus=false | ||||
| # interface items to hide (customize at your own risk!) | ||||
| # see source file xo-interface.c for a list of item names | ||||
| shorten_menu_items=optionsProgressiveBG optionsLeftHanded optionsButtonSwitchMapping | ||||
| # highlighter opacity (0 to 1, default 0.5) | ||||
| # warning: opacity level is not saved in xoj files! | ||||
| highlighter_opacity=0.50 | ||||
| # auto-save preferences on exit (true/false) | ||||
| autosave_prefs=true | ||||
| # force PDF rendering through cairo (slower but nicer) (true/false) | ||||
| poppler_force_cairo=false | ||||
| # prefer xournal's own PDF code for exporting PDFs (true/false) | ||||
| exportpdf_prefer_legacy=false | ||||
| # export successive layers on separate pages in PDFs (true/false) | ||||
| exportpdf_layers=false | ||||
| # when attempting to open a non-existent file, treat it as a new file (true/false) | ||||
| autocreate_new_xoj=false | ||||
|  | ||||
| [paper] | ||||
| # the default page width, in points (1/72 in) | ||||
| width=595.27 | ||||
| # the default page height, in points (1/72 in) | ||||
| height=841.89 | ||||
| # the default paper color | ||||
| color=white | ||||
| # the default paper style (plain, lined, ruled, or graph) | ||||
| style=lined | ||||
| # apply paper style changes to all pages (true/false) | ||||
| apply_all=false | ||||
| # preferred unit (cm, in, px, pt) | ||||
| default_unit=cm | ||||
| # include paper ruling when printing or exporting to PDF (true/false) | ||||
| print_ruling=true | ||||
| # when creating a new page, duplicate a PDF or image background instead of using default paper (true/false) | ||||
| new_page_duplicates_bg=true | ||||
| # just-in-time update of page backgrounds (true/false) | ||||
| progressive_bg=true | ||||
| # bitmap resolution of PS/PDF backgrounds rendered using ghostscript (dpi) | ||||
| gs_bitmap_dpi=144 | ||||
| # bitmap resolution of PDF backgrounds when printing with libgnomeprint (dpi) | ||||
| pdftoppm_printing_dpi=150 | ||||
|  | ||||
| [tools] | ||||
| # selected tool at startup (pen, eraser, highlighter, selectregion, selectrect, vertspace, hand, image) | ||||
| startup_tool=pen | ||||
| # Use the pencil from cursor theme instead of a color dot (true/false) | ||||
| pen_cursor=false | ||||
| # default pen color | ||||
| pen_color=black | ||||
| # default pen thickness (fine = 1, medium = 2, thick = 3) | ||||
| pen_thickness=2 | ||||
| # default pen is in ruler mode (true/false) | ||||
| pen_ruler=false | ||||
| # default pen is in shape recognizer mode (true/false) | ||||
| pen_recognizer=false | ||||
| # default eraser thickness (fine = 1, medium = 2, thick = 3) | ||||
| eraser_thickness=2 | ||||
| # default eraser mode (standard = 0, whiteout = 1, strokes = 2) | ||||
| eraser_mode=2 | ||||
| # default highlighter color | ||||
| highlighter_color=yellow | ||||
| # default highlighter thickness (fine = 1, medium = 2, thick = 3) | ||||
| highlighter_thickness=2 | ||||
| # default highlighter is in ruler mode (true/false) | ||||
| highlighter_ruler=false | ||||
| # default highlighter is in shape recognizer mode (true/false) | ||||
| highlighter_recognizer=false | ||||
| # button 2 tool (pen, eraser, highlighter, text, selectregion, selectrect, vertspace, hand, image) | ||||
| btn2_tool=eraser | ||||
| # button 2 brush linked to primary brush (true/false) (overrides all other settings) | ||||
| btn2_linked=true | ||||
| # button 2 brush color (for pen or highlighter only) | ||||
| btn2_color=white | ||||
| # button 2 brush thickness (pen, eraser, or highlighter only) | ||||
| btn2_thickness=2 | ||||
| # button 2 ruler mode (true/false) (for pen or highlighter only) | ||||
| btn2_ruler=false | ||||
| # button 2 shape recognizer mode (true/false) (pen or highlighter only) | ||||
| btn2_recognizer=false | ||||
| # button 2 eraser mode (eraser only) | ||||
| btn2_erasermode=2 | ||||
| # button 3 tool (pen, eraser, highlighter, text, selectregion, selectrect, vertspace, hand, image) | ||||
| btn3_tool=selectregion | ||||
| # button 3 brush linked to primary brush (true/false) (overrides all other settings) | ||||
| btn3_linked=true | ||||
| # button 3 brush color (for pen or highlighter only) | ||||
| btn3_color=white | ||||
| # button 3 brush thickness (pen, eraser, or highlighter only) | ||||
| btn3_thickness=0 | ||||
| # button 3 ruler mode (true/false) (for pen or highlighter only) | ||||
| btn3_ruler=false | ||||
| # button 3 shape recognizer mode (true/false) (pen or highlighter only) | ||||
| btn3_recognizer=false | ||||
| # button 3 eraser mode (eraser only) | ||||
| btn3_erasermode=2 | ||||
| # thickness of the various pens (in points, 1 pt = 1/72 in) | ||||
| pen_thicknesses=0.42;0.85;1.41;2.26;5.67 | ||||
| # thickness of the various erasers (in points, 1 pt = 1/72 in) | ||||
| eraser_thicknesses=2.83;8.50;19.84 | ||||
| # thickness of the various highlighters (in points, 1 pt = 1/72 in) | ||||
| highlighter_thicknesses=2.83;8.50;19.84 | ||||
| # name of the default font | ||||
| default_font=Sans | ||||
| # default font size | ||||
| default_font_size=12.0 | ||||
							
								
								
									
										5
									
								
								.xsession
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								.xsession
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| setxkbmap -option caps:none | ||||
| xset r rate 200 18 | ||||
| xrandr --dpi 96 | ||||
|  | ||||
| ~/.local/share/surface-scripts/pend & | ||||
							
								
								
									
										124
									
								
								.zshrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								.zshrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,124 @@ | ||||
| unsetopt MULTIBYTE | ||||
|  | ||||
| # Config and cache directory paths | ||||
| CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}" | ||||
| ZSH_DIR="$CONFIG_DIR/zsh" | ||||
| ZSH_CACHE_DIR="$CONFIG_DIR/oh-my-zsh/cache" | ||||
| ADOTDIR="$ZSH_DIR/antigen" # Antigen directory | ||||
| LOG_DIR="$ZSH_DIR/log" | ||||
| ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log" | ||||
|  | ||||
| mkdir -p "$ZSH_CACHE_DIR" "$ZSH_DIR" "$LOG_DIR" | ||||
|  | ||||
| HISTFILE="$ZSH_DIR/histfile" | ||||
| HISTSIZE=999999 | ||||
| SAVEHIST=999999 | ||||
|  | ||||
| exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; } | ||||
|  | ||||
| # Only set tty if running interactively | ||||
| if exists tty && tty -s; then | ||||
|     # Resolve at shell runtime | ||||
|     export GPG_TTY="$(tty)" | ||||
| fi | ||||
|  | ||||
| # Set some useful ZSH/Bash options | ||||
| setopt sharehistory histignorealldups histignorespace histreduceblanks | ||||
| setopt pathdirs autocd autopushd extendedglob alwaystoend dvorak | ||||
|  | ||||
| # Completion initialisation | ||||
| autoload -U compinit ; compinit | ||||
| autoload -U bashcompinit ; bashcompinit | ||||
|  | ||||
| # gopass completion | ||||
| if exists gopass; then | ||||
|     source <(gopass completion bash) | ||||
| fi | ||||
|  | ||||
| zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root" | ||||
| zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' | ||||
| zstyle ':completion:*' rehash true | ||||
| zstyle ':completion:*' menu select | ||||
| zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}" | ||||
| zstyle ':compinstall'  filename "$HOME/.zshrc" | ||||
|  | ||||
|  | ||||
| # Load antigen & plugins | ||||
| antigen_src="$ADOTDIR/antigen.zsh" | ||||
| if [ ! -f "$antigen_src" ]; then | ||||
|     git clone https://github.com/zsh-users/antigen.git "$ADOTDIR" | ||||
| fi | ||||
| source "$antigen_src" | ||||
|  | ||||
| antigen bundle zsh-users/zsh-completions | ||||
| antigen bundle zsh-users/zsh-autosuggestions | ||||
| antigen bundle Tarrasch/zsh-syntax-highlighting | ||||
| antigen bundle zsh-users/zsh-history-substring-search | ||||
|  | ||||
| antigen apply | ||||
|  | ||||
|  | ||||
| # Set some key-binds | ||||
| bindkey -e | ||||
| bindkey "^[[1;3C" forward-word | ||||
| bindkey "^[[1;5C" forward-word | ||||
| bindkey "^[[1;3D" backward-word | ||||
| bindkey "^[[1;5D" backward-word | ||||
| bindkey "^[[7~" beginning-of-line | ||||
| bindkey "^[[8~" end-of-line | ||||
| bindkey "^[[3~" delete-char | ||||
| bindkey "^[[3;3~" delete-word | ||||
|  | ||||
| export WORDCHARS='*?_[]~=&;!#$%^(){}' | ||||
| x-bash-backward-kill-word(){ | ||||
|     WORDCHARS='' zle kill-word | ||||
| } | ||||
| zle -N x-bash-backward-kill-word | ||||
| bindkey '^[^[[3~' x-bash-backward-kill-word | ||||
| bindkey '^[^[[3^' x-bash-backward-kill-word | ||||
|  | ||||
| bindkey '^[[A' history-substring-search-up | ||||
| bindkey '^[[B' history-substring-search-down | ||||
|  | ||||
|  | ||||
| ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}") | ||||
| ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-substring-search-up history-substring-search-down) | ||||
|  | ||||
| HISTORY_SUBSTRING_SEARCH_FUZZY=true | ||||
| HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true | ||||
| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline' | ||||
|  | ||||
| typeset -A ZSH_HIGHLIGHT_STYLES | ||||
| ZSH_HIGHLIGHT_STYLES[default]='fg=12' | ||||
| ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold' | ||||
| ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow' | ||||
| ZSH_HIGHLIGHT_STYLES[alias]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,underline' | ||||
| ZSH_HIGHLIGHT_STYLES[builtin]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[function]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[command]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan' | ||||
| ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green' | ||||
| ZSH_HIGHLIGHT_STYLES[path]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=yellow,bold' | ||||
| ZSH_HIGHLIGHT_STYLES[globbing]='fg=red' | ||||
| ZSH_HIGHLIGHT_STYLES[comment]='fg=7' | ||||
| ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue' | ||||
| ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=12' | ||||
| ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=12' | ||||
| ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta' | ||||
| ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow' | ||||
| ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow' | ||||
| ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=yellow' | ||||
| ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan' | ||||
| ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan' | ||||
| ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan' | ||||
| ZSH_HIGHLIGHT_STYLES[assign]='fg=green' | ||||
| ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan' | ||||
|  | ||||
| source "$DOTFILES/aliases" | ||||
|  | ||||
| # Load some manual plugins | ||||
| source "$ZSH_DIR/plugins/sudo.zsh" | ||||
| source "$ZSH_DIR/plugins/fish-theme.zsh" | ||||
							
								
								
									
										3
									
								
								Element/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								Element/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| * | ||||
| !.gitignore | ||||
| !config.json | ||||
| @@ -1,88 +0,0 @@ | ||||
| { | ||||
|     "default_server_config": { | ||||
|         "m.homeserver": { | ||||
|             "base_url": "https://chat.nerdhouse.io/", | ||||
|             "server_name": "chat.nerdhouse.io" | ||||
|         }, | ||||
|         "m.identity_server": { | ||||
|             "base_url": "https://chat.nerdhouse.io/" | ||||
|         } | ||||
|     }, | ||||
|     "disable_custom_urls": false, | ||||
|     "disable_guests": false, | ||||
|     "disable_login_language_selector": false, | ||||
|     "disable_3pid_login": false, | ||||
|     "brand": "NerdChat", | ||||
|     "integrations_ui_url": "https://scalar.vector.im/", | ||||
|     "integrations_rest_url": "https://scalar.vector.im/api", | ||||
|     "integrations_widgets_urls": [ | ||||
|         "https://scalar.vector.im/_matrix/integrations/v1", | ||||
|         "https://scalar.vector.im/api", | ||||
|         "https://scalar-staging.vector.im/_matrix/integrations/v1", | ||||
|         "https://scalar-staging.vector.im/api", | ||||
|         "https://scalar-staging.riot.im/scalar/api" | ||||
|     ], | ||||
|     "bug_report_endpoint_url": "https://riot.im/bugreports/submit", | ||||
|     "defaultCountryCode": "GB", | ||||
|     "showLabsSettings": true, | ||||
|     "features": { | ||||
|         "feature_font_scaling": "labs", | ||||
|         "feature_pinning": "labs", | ||||
|         "feature_custom_status": "labs", | ||||
|         "feature_custom_tags": "labs", | ||||
|         "feature_state_counters": "labs", | ||||
|         "feature_irc_ui": "labs" | ||||
|     }, | ||||
|     "default_federate": true, | ||||
|     "default_theme": "dark", | ||||
|     "roomDirectory": { | ||||
|         "servers": [ | ||||
|             "matrix.org" | ||||
|         ] | ||||
|     }, | ||||
|     "welcomeUserId": "@riot-bot:matrix.org", | ||||
|     "piwik": { | ||||
|         "url": "https://piwik.riot.im/", | ||||
|         "whitelistedHSUrls": ["https://matrix.org"], | ||||
|         "whitelistedISUrls": ["https://vector.im", "https://matrix.org"], | ||||
|         "siteId": 1 | ||||
|     }, | ||||
|     "enable_presence_by_hs_url": { | ||||
|         "https://matrix.org": false, | ||||
|         "https://matrix-client.matrix.org": false | ||||
|     }, | ||||
|     "settingDefaults": { | ||||
|         "breadcrumbs": true, | ||||
|         "custom_themes": [ | ||||
|             { | ||||
|                 "name": "Arc Dark", | ||||
|                 "is_dark": true, | ||||
|                 "fonts": { | ||||
|                     "general": "sans", | ||||
|                     "monospace": "monospace" | ||||
|                 }, | ||||
|                 "colors": { | ||||
|                     "accent-color": "#5294e2", | ||||
|                     "primary-color": "#d3dae3", | ||||
|                     "warning-color": "#bf616a", | ||||
|  | ||||
|                     "sidebar-color": "#313742", | ||||
|                     "roomlist-background-color": "#383c4a", | ||||
|                     "roomlist-text-color": "#afb8c5", | ||||
|                     "roomlist-text-secondary-color": "#7c818c", | ||||
|                     "roomlist-highlights-color": "#404552", | ||||
|                     "roomlist-separator-color": "#2F343F", | ||||
|  | ||||
|                     "timeline-background-color": "#404552", | ||||
|                     "timeline-text-color": "#afb8c5", | ||||
|                     "timeline-text-secondary-color": "#7c818c", | ||||
|                     "timeline-highlights-color": "#404552", | ||||
|                     "reaction-row-button-selected-bg-color": "#bf616a" | ||||
|                 } | ||||
|             } | ||||
|         ] | ||||
|     }, | ||||
|     "jitsi": { | ||||
|         "preferredDomain": "jitsi.riot.im" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,11 +1,17 @@ | ||||
| # frebib/dotfiles | ||||
| These are the configs I use on my Arch Linux installation at home. They can be use and changed as much or as little as you please | ||||
|  | ||||
| ## Usage | ||||
| To get started, clone this repo and link the relevant files/directories | ||||
| To quickly get started, clone this repo and run the setup scripts. | ||||
|  | ||||
| ```shell | ||||
| git clone https://github.com/frebib/dotfiles.git ~/.config | ||||
| ln -sfv .config/zsh/.zshenv ~ | ||||
| # if it is not already "enabled", make sure the systemd-environment.d generator is active | ||||
| sudo ln -sfv /lib/systemd/user-environment-generators/30-systemd-environment-d-generator /lib/systemd/user-generators/ | ||||
| ``` | ||||
|     git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles | ||||
|     cd ~/.config/dotfiles | ||||
|  | ||||
| You can put the `dotfiles` directory anywhere, just be sure to update the `$DOTFILES` envvar in `.profile` | ||||
|  | ||||
| To link all the configuration files, run the init-dotfiles script: | ||||
|  | ||||
| **Be warned that this will destroy your current configs without warning** | ||||
|  | ||||
|     scripts/init-dotfiles.sh | ||||
|  | ||||
| To install all of my packages & programs, check out my other repo <https://github.com/frebib/arch-install/> and the [`userinstall`](https://github.com/frebib/arch-install/blob/master/userinstall) script | ||||
|   | ||||
							
								
								
									
										26
									
								
								X11/xprofile
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								X11/xprofile
									
									
									
									
									
								
							| @@ -1,26 +0,0 @@ | ||||
| #!/bin/sh -u | ||||
|  | ||||
| # Graphical-specific environment variables | ||||
| export TERMINAL="alacritty" | ||||
| export BROWSER="firefox" | ||||
|  | ||||
| export GTK_THEME="$(grep gtk-theme-name "${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini" | sed 's/.*\s*=\s*//')" | ||||
| export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini" | ||||
| export QT_QPA_PLATFORMTHEME=qt5ct | ||||
| export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open | ||||
|  | ||||
| export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" | ||||
|  | ||||
| # https://www.reddit.com/r/linux/comments/72mfv8/psa_for_firefox_users_set_moz_use_xinput21_to/ | ||||
| export MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox | ||||
|  | ||||
|  | ||||
| # Load Xorg resources and set the DPI | ||||
| xrdb -merge "$XDG_CONFIG_HOME/X11/xresources" | ||||
| "$XDG_CONFIG_HOME/scripts/dpi" "$(xrdb -query | grep -i xft.dpi | cut -d: -f2 | xargs)" | ||||
|  | ||||
| setxkbmap -option caps:none | ||||
| xset r rate 200 18 | ||||
|  | ||||
| test -f "$XDG_CONFIG_HOME"/X11/xmodmap && \ | ||||
|     xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap | ||||
| @@ -1,40 +0,0 @@ | ||||
| ! Colour order: | ||||
| !   black | ||||
| !   red | ||||
| !   green | ||||
| !   yellow | ||||
| !   blue | ||||
| !   magenta | ||||
| !   cyan | ||||
| !   white/gray | ||||
|  | ||||
| ! Normal colours | ||||
| *.color0:       #333638 | ||||
| *.color1:       #f41f1c | ||||
| *.color2:       #8bc34a | ||||
| *.color3:       #ffc107 | ||||
| *.color4:       #0266f4 | ||||
| *.color5:       #cc17cc | ||||
| *.color6:       #10aeba | ||||
| *.color7:       #8b9396 | ||||
|  | ||||
| ! Bright colours | ||||
| *.color8:       #475760 | ||||
| *.color9:       #e53727 | ||||
| *.color10:      #9ccc65 | ||||
| *.color11:      #ffa000 | ||||
| *.color12:      #81b3f9 | ||||
| *.color13:      #a56ecc | ||||
| *.color14:      #5ddae2 | ||||
| *.color15:      #eceff1 | ||||
|  | ||||
|  | ||||
| Xft.dpi:        96 | ||||
| Xft.antialias:  true | ||||
| Xft.rgba:       rgb | ||||
| Xft.hinting:    true | ||||
| Xft.hintstyle:  hintfull | ||||
| Xft.lcdfilter:  lcddefault | ||||
|  | ||||
| Xcursor.size: 16 | ||||
| Xcursor.theme: Breeze_Obsidian | ||||
| @@ -1,617 +0,0 @@ | ||||
| # Configuration for Alacritty, the GPU enhanced terminal emulator. | ||||
|  | ||||
| # Any items in the `env` entry below will be added as | ||||
| # environment variables. Some entries may override variables | ||||
| # set by alacritty itself. | ||||
| env: | ||||
|   # TERM variable | ||||
|   # | ||||
|   # This value is used to set the `$TERM` environment variable for | ||||
|   # each instance of Alacritty. If it is not present, alacritty will | ||||
|   # check the local terminfo database and use `alacritty` if it is | ||||
|   # available, otherwise `xterm-256color` is used. | ||||
|   TERM: xterm-256color | ||||
|  | ||||
| window: | ||||
|   # Window dimensions (changes require restart) | ||||
|   # | ||||
|   # Specified in number of columns/lines, not pixels. | ||||
|   # If both are `0`, this setting is ignored. | ||||
|   dimensions: | ||||
|     columns: 120 | ||||
|     lines: 40 | ||||
|  | ||||
|   # Window position (changes require restart) | ||||
|   # | ||||
|   # Specified in number of pixels. | ||||
|   # If the position is not set, the window manager will handle the placement. | ||||
|   #position: | ||||
|   #  x: 0 | ||||
|   #  y: 0 | ||||
|  | ||||
|   # Window padding (changes require restart) | ||||
|   # | ||||
|   # Blank space added around the window in pixels. This padding is scaled | ||||
|   # by DPI and the specified value is always added at both opposing sides. | ||||
|   padding: | ||||
|     x: 22 | ||||
|     y: 22 | ||||
|  | ||||
|   # Spread additional padding evenly around the terminal content. | ||||
|   dynamic_padding: false | ||||
|  | ||||
|   # Window decorations | ||||
|   # | ||||
|   # Values for `decorations`: | ||||
|   #     - full: Borders and title bar | ||||
|   #     - none: Neither borders nor title bar | ||||
|   # | ||||
|   # Values for `decorations` (macOS only): | ||||
|   #     - transparent: Title bar, transparent background and title bar buttons | ||||
|   #     - buttonless: Title bar, transparent background, but no title bar buttons | ||||
|   decorations: full | ||||
|  | ||||
|   # Background opacity | ||||
|   # | ||||
|   # Window opacity as a floating point number from `0.0` to `1.0`. | ||||
|   # The value `0.0` is completely transparent and `1.0` is opaque. | ||||
|   opacity: 0.8 | ||||
|  | ||||
|   # Startup Mode (changes require restart) | ||||
|   # | ||||
|   # Values for `startup_mode`: | ||||
|   #   - Windowed | ||||
|   #   - Maximized | ||||
|   #   - Fullscreen | ||||
|   # | ||||
|   # Values for `startup_mode` (macOS only): | ||||
|   #   - SimpleFullscreen | ||||
|   startup_mode: Windowed | ||||
|  | ||||
|   # Window title | ||||
|   #title: Alacritty | ||||
|  | ||||
|   # Allow terminal applications to change Alacritty's window title. | ||||
|   dynamic_title: true | ||||
|  | ||||
|   # Window class (Linux/BSD only): | ||||
|   #class: | ||||
|     # Application instance name | ||||
|     #instance: Alacritty | ||||
|     # General application class | ||||
|     #general: Alacritty | ||||
|  | ||||
|   # GTK theme variant (Linux/BSD only) | ||||
|   # | ||||
|   # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. | ||||
|   # Set this to `None` to use the default theme variant. | ||||
|   #gtk_theme_variant: None | ||||
|  | ||||
| scrolling: | ||||
|   # Maximum number of lines in the scrollback buffer. | ||||
|   # Specifying '0' will disable scrolling. | ||||
|   history: 100000 | ||||
|  | ||||
|   # Number of lines the viewport will move for every line scrolled when | ||||
|   # scrollback is enabled (history > 0). | ||||
|   multiplier: 3 | ||||
|  | ||||
| # Font configuration | ||||
| font: | ||||
|   # Normal (roman) font face | ||||
|   #normal: | ||||
|     # Font family | ||||
|     # | ||||
|     # Default: | ||||
|     #   - (macOS) Menlo | ||||
|     #   - (Linux/BSD) monospace | ||||
|     #   - (Windows) Consolas | ||||
|     #family: monospace | ||||
|  | ||||
|     # The `style` can be specified to pick a specific face. | ||||
|     #style: Regular | ||||
|  | ||||
|   # Bold font face | ||||
|   #bold: | ||||
|     # Font family | ||||
|     # | ||||
|     # If the bold family is not specified, it will fall back to the | ||||
|     # value specified for the normal font. | ||||
|     #family: monospace | ||||
|  | ||||
|     # The `style` can be specified to pick a specific face. | ||||
|     #style: Bold | ||||
|  | ||||
|   # Italic font face | ||||
|   #italic: | ||||
|     # Font family | ||||
|     # | ||||
|     # If the italic family is not specified, it will fall back to the | ||||
|     # value specified for the normal font. | ||||
|     #family: monospace | ||||
|  | ||||
|     # The `style` can be specified to pick a specific face. | ||||
|     #style: Italic | ||||
|  | ||||
|   # Bold italic font face | ||||
|   #bold_italic: | ||||
|     # Font family | ||||
|     # | ||||
|     # If the bold italic family is not specified, it will fall back to the | ||||
|     # value specified for the normal font. | ||||
|     #family: monospace | ||||
|  | ||||
|     # The `style` can be specified to pick a specific face. | ||||
|     #style: Bold Italic | ||||
|  | ||||
|   # Point size | ||||
|   size: 9.0 | ||||
|  | ||||
|   # Offset is the extra space around each character. `offset.y` can be thought of | ||||
|   # as modifying the line spacing, and `offset.x` as modifying the letter spacing. | ||||
|   #offset: | ||||
|   #  x: 0 | ||||
|   #  y: 0 | ||||
|  | ||||
|   # Glyph offset determines the locations of the glyphs within their cells with | ||||
|   # the default being at the bottom. Increasing `x` moves the glyph to the right, | ||||
|   # increasing `y` moves the glyph upwards. | ||||
|   #glyph_offset: | ||||
|   #  x: 0 | ||||
|   #  y: 0 | ||||
|  | ||||
|   # Thin stroke font rendering (macOS only) | ||||
|   # | ||||
|   # Thin strokes are suitable for retina displays, but for non-retina screens | ||||
|   # it is recommended to set `use_thin_strokes` to `false` | ||||
|   # | ||||
|   # macOS >= 10.14.x: | ||||
|   # | ||||
|   # If the font quality on non-retina display looks bad then set | ||||
|   # `use_thin_strokes` to `true` and enable font smoothing by running the | ||||
|   # following command: | ||||
|   #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` | ||||
|   # | ||||
|   # This is a global setting and will require a log out or restart to take | ||||
|   # effect. | ||||
|   #use_thin_strokes: true | ||||
|  | ||||
| # If `true`, bold text is drawn using the bright color variants. | ||||
| draw_bold_text_with_bright_colors: true | ||||
|  | ||||
| # Colors (Tomorrow Night Bright) | ||||
| colors: | ||||
|   # Default colors | ||||
|   primary: | ||||
|     foreground: '#eceff1' | ||||
|     background: '#383c4a' | ||||
|  | ||||
|     # Bright and dim foreground colors | ||||
|     # | ||||
|     # The dimmed foreground color is calculated automatically if it is not present. | ||||
|     # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` | ||||
|     # is `false`, the normal foreground color will be used. | ||||
|     #dim_foreground: '#9a9a9a' | ||||
|     #bright_foreground: '#ffffff' | ||||
|  | ||||
|   # Cursor colors | ||||
|   # | ||||
|   # Colors which should be used to draw the terminal cursor. If these are | ||||
|   # unset, the cursor color will be the inverse of the cell color. | ||||
|   cursor: | ||||
|     text:       '#eceff1' | ||||
|     cursor:     '#5294e2' | ||||
|  | ||||
|   # Vi mode cursor colors | ||||
|   # | ||||
|   # Colors for the cursor when the vi mode is active. If these are unset, the | ||||
|   # cursor color will be the inverse of the cell color. | ||||
|   #vi_mode_cursor: | ||||
|   #  text: '#000000' | ||||
|   #  cursor: '#ffffff' | ||||
|  | ||||
|   # Selection colors | ||||
|   # | ||||
|   # Colors which should be used to draw the selection area. If selection | ||||
|   # background is unset, selection color will be the inverse of the cell colors. | ||||
|   # If only text is unset the cell text color will remain the same. | ||||
|   selection: | ||||
|     text: CellForeground | ||||
|     background: '#5294e2' | ||||
|  | ||||
|   # Normal colors | ||||
|   normal: | ||||
|     black:      '#333638' | ||||
|     red:        '#f41f1c' | ||||
|     green:      '#8bc34a' | ||||
|     yellow:     '#ffc107' | ||||
|     blue:       '#0266f4' | ||||
|     magenta:    '#cc17cc' | ||||
|     cyan:       '#10aeba' | ||||
|     white:      '#8b9396' | ||||
|  | ||||
|   # Bright colors | ||||
|   bright: | ||||
|     black:      '#475760' | ||||
|     red:        '#e53727' | ||||
|     green:      '#9ccc65' | ||||
|     yellow:     '#ffa000' | ||||
|     blue:       '#81b3f9' | ||||
|     magenta:    '#a56ecc' | ||||
|     cyan:       '#5ddae2' | ||||
|     white:      '#eceff1' | ||||
|  | ||||
|   # Dim colors | ||||
|   # | ||||
|   # If the dim colors are not set, they will be calculated automatically based | ||||
|   # on the `normal` colors. | ||||
|   #dim: | ||||
|   #  black:   '#000000' | ||||
|   #  red:     '#8c3336' | ||||
|   #  green:   '#7a8530' | ||||
|   #  yellow:  '#97822e' | ||||
|   #  blue:    '#506d8f' | ||||
|   #  magenta: '#80638e' | ||||
|   #  cyan:    '#497e7a' | ||||
|   #  white:   '#9a9a9a' | ||||
|  | ||||
|   # Indexed Colors | ||||
|   # | ||||
|   # The indexed colors include all colors from 16 to 256. | ||||
|   # When these are not set, they're filled with sensible defaults. | ||||
|   # | ||||
|   # Example: | ||||
|   #   `- { index: 16, color: '#ff00ff' }` | ||||
|   # | ||||
|   #indexed_colors: [] | ||||
|  | ||||
|   # Transparent cell backgrounds | ||||
|   # | ||||
|   # Whether or not `window.opacity` applies to all cell backgrounds or only to | ||||
|   # the default background. When set to `true` all cells will be transparent | ||||
|   # regardless of their background color. | ||||
|   transparent_background_colors: false | ||||
|  | ||||
| # Visual Bell | ||||
| # | ||||
| # Any time the BEL code is received, Alacritty "rings" the visual bell. Once | ||||
| # rung, the terminal background will be set to white and transition back to the | ||||
| # default background color. You can control the rate of this transition by | ||||
| # setting the `duration` property (represented in milliseconds). You can also | ||||
| # configure the transition function by setting the `animation` property. | ||||
| # | ||||
| # Values for `animation`: | ||||
| #   - Ease | ||||
| #   - EaseOut | ||||
| #   - EaseOutSine | ||||
| #   - EaseOutQuad | ||||
| #   - EaseOutCubic | ||||
| #   - EaseOutQuart | ||||
| #   - EaseOutQuint | ||||
| #   - EaseOutExpo | ||||
| #   - EaseOutCirc | ||||
| #   - Linear | ||||
| # | ||||
| # Specifying a `duration` of `0` will disable the visual bell. | ||||
| #visual_bell: | ||||
| #  animation: EaseOutExpo | ||||
| #  duration: 0 | ||||
| #  color: '#ffffff' | ||||
|  | ||||
| selection: | ||||
|   #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" | ||||
|  | ||||
|   # When set to `true`, selected text will be copied to the primary clipboard. | ||||
|   save_to_clipboard: true | ||||
|  | ||||
| cursor: | ||||
|   # Cursor style | ||||
|   # | ||||
|   # Values for `style`: | ||||
|   #   - ▇ Block | ||||
|   #   - _ Underline | ||||
|   #   - | Beam | ||||
|   style: Block | ||||
|  | ||||
|   # Vi mode cursor style | ||||
|   # | ||||
|   # If the vi mode cursor style is `None` or not specified, it will fall back to | ||||
|   # the style of the active value of the normal cursor. | ||||
|   # | ||||
|   # See `cursor.style` for available options. | ||||
|   #vi_mode_style: None | ||||
|  | ||||
|   # If this is `true`, the cursor will be rendered as a hollow box when the | ||||
|   # window is not focused. | ||||
|   unfocused_hollow: true | ||||
|  | ||||
| # Live config reload (changes require restart) | ||||
| live_config_reload: true | ||||
|  | ||||
| # Shell | ||||
| # | ||||
| # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. | ||||
| # Entries in `shell.args` are passed unmodified as arguments to the shell. | ||||
| # | ||||
| # Default: | ||||
| #   - (macOS) /bin/bash --login | ||||
| #   - (Linux/BSD) user login shell | ||||
| #   - (Windows) powershell | ||||
| #shell: | ||||
| #  program: /bin/bash | ||||
| #  args: | ||||
| #    - --login | ||||
|  | ||||
| # Startup directory | ||||
| # | ||||
| # Directory the shell is started in. If this is unset, or `None`, the working | ||||
| # directory of the parent process will be used. | ||||
| #working_directory: None | ||||
|  | ||||
| # WinPTY backend (Windows only) | ||||
| # | ||||
| # Alacritty defaults to using the newer ConPTY backend if it is available, | ||||
| # since it resolves a lot of bugs and is quite a bit faster. If it is not | ||||
| # available, the the WinPTY backend will be used instead. | ||||
| # | ||||
| # Setting this option to `true` makes Alacritty use the legacy WinPTY backend, | ||||
| # even if the ConPTY backend is available. | ||||
| #winpty_backend: false | ||||
|  | ||||
| # Send ESC (\x1b) before characters when alt is pressed. | ||||
| #alt_send_esc: true | ||||
|  | ||||
| mouse: | ||||
|   # Click settings | ||||
|   # | ||||
|   # The `double_click` and `triple_click` settings control the time | ||||
|   # alacritty should wait for accepting multiple clicks as one double | ||||
|   # or triple click. | ||||
|   #double_click: { threshold: 300 } | ||||
|   #triple_click: { threshold: 300 } | ||||
|  | ||||
|   # If this is `true`, the cursor is temporarily hidden when typing. | ||||
|   hide_when_typing: false | ||||
|  | ||||
| # Mouse bindings | ||||
| # | ||||
| # Mouse bindings are specified as a list of objects, much like the key | ||||
| # bindings further below. | ||||
| # | ||||
| # To trigger mouse bindings when an application running within Alacritty captures the mouse, the | ||||
| # `Shift` modifier is automatically added as a requirement. | ||||
| # | ||||
| # Each mouse binding will specify a: | ||||
| # | ||||
| # - `mouse`: | ||||
| # | ||||
| #   - Middle | ||||
| #   - Left | ||||
| #   - Right | ||||
| #   - Numeric identifier such as `5` | ||||
| # | ||||
| # - `action` (see key bindings) | ||||
| # | ||||
| # And optionally: | ||||
| # | ||||
| # - `mods` (see key bindings) | ||||
| mouse_bindings: | ||||
|   - { mouse: Middle, action: PasteSelection } | ||||
|  | ||||
| # Key bindings | ||||
| # | ||||
| # Key bindings are specified as a list of objects. For example, this is the | ||||
| # default paste binding: | ||||
| # | ||||
| # `- { key: V, mods: Control|Shift, action: Paste }` | ||||
| # | ||||
| # Each key binding will specify a: | ||||
| # | ||||
| # - `key`: Identifier of the key pressed | ||||
| # | ||||
| #    - A-Z | ||||
| #    - F1-F24 | ||||
| #    - Key0-Key9 | ||||
| # | ||||
| #    A full list with available key codes can be found here: | ||||
| #    https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants | ||||
| # | ||||
| #    Instead of using the name of the keys, the `key` field also supports using | ||||
| #    the scancode of the desired key. Scancodes have to be specified as a | ||||
| #    decimal number. This command will allow you to display the hex scancodes | ||||
| #    for certain keys: | ||||
| # | ||||
| #       `showkey --scancodes`. | ||||
| # | ||||
| # Then exactly one of: | ||||
| # | ||||
| # - `chars`: Send a byte sequence to the running application | ||||
| # | ||||
| #    The `chars` field writes the specified string to the terminal. This makes | ||||
| #    it possible to pass escape sequences. To find escape codes for bindings | ||||
| #    like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside | ||||
| #    of tmux. Note that applications use terminfo to map escape sequences back | ||||
| #    to keys. It is therefore required to update the terminfo when changing an | ||||
| #    escape sequence. | ||||
| # | ||||
| # - `action`: Execute a predefined action | ||||
| # | ||||
| #   - ToggleViMode | ||||
| #   - Copy | ||||
| #   - Paste | ||||
| #   - PasteSelection | ||||
| #   - IncreaseFontSize | ||||
| #   - DecreaseFontSize | ||||
| #   - ResetFontSize | ||||
| #   - ScrollPageUp | ||||
| #   - ScrollPageDown | ||||
| #   - ScrollLineUp | ||||
| #   - ScrollLineDown | ||||
| #   - ScrollToTop | ||||
| #   - ScrollToBottom | ||||
| #   - ClearHistory | ||||
| #   - Hide | ||||
| #   - Minimize | ||||
| #   - Quit | ||||
| #   - ToggleFullscreen | ||||
| #   - SpawnNewInstance | ||||
| #   - ClearLogNotice | ||||
| #   - ClearSelection | ||||
| #   - ReceiveChar | ||||
| #   - None | ||||
| # | ||||
| #   (`mode: Vi` only): | ||||
| #   - Open | ||||
| #   - Up | ||||
| #   - Down | ||||
| #   - Left | ||||
| #   - Right | ||||
| #   - First | ||||
| #   - Last | ||||
| #   - FirstOccupied | ||||
| #   - High | ||||
| #   - Middle | ||||
| #   - Low | ||||
| #   - SemanticLeft | ||||
| #   - SemanticRight | ||||
| #   - SemanticLeftEnd | ||||
| #   - SemanticRightEnd | ||||
| #   - WordRight | ||||
| #   - WordLeft | ||||
| #   - WordRightEnd | ||||
| #   - WordLeftEnd | ||||
| #   - Bracket | ||||
| #   - ToggleNormalSelection | ||||
| #   - ToggleLineSelection | ||||
| #   - ToggleBlockSelection | ||||
| #   - ToggleSemanticSelection | ||||
| # | ||||
| #   (macOS only): | ||||
| #   - ToggleSimpleFullscreen: Enters fullscreen without occupying another space | ||||
| # | ||||
| # - `command`: Fork and execute a specified command plus arguments | ||||
| # | ||||
| #    The `command` field must be a map containing a `program` string and an | ||||
| #    `args` array of command line parameter strings. For example: | ||||
| #       `{ program: "alacritty", args: ["-e", "vttest"] }` | ||||
| # | ||||
| # And optionally: | ||||
| # | ||||
| # - `mods`: Key modifiers to filter binding actions | ||||
| # | ||||
| #    - Command | ||||
| #    - Control | ||||
| #    - Option | ||||
| #    - Super | ||||
| #    - Shift | ||||
| #    - Alt | ||||
| # | ||||
| #    Multiple `mods` can be combined using `|` like this: | ||||
| #       `mods: Control|Shift`. | ||||
| #    Whitespace and capitalization are relevant and must match the example. | ||||
| # | ||||
| # - `mode`: Indicate a binding for only specific terminal reported modes | ||||
| # | ||||
| #    This is mainly used to send applications the correct escape sequences | ||||
| #    when in different modes. | ||||
| # | ||||
| #    - AppCursor | ||||
| #    - AppKeypad | ||||
| #    - Alt | ||||
| # | ||||
| #    A `~` operator can be used before a mode to apply the binding whenever | ||||
| #    the mode is *not* active, e.g. `~Alt`. | ||||
| # | ||||
| # Bindings are always filled by default, but will be replaced when a new | ||||
| # binding with the same triggers is defined. To unset a default binding, it can | ||||
| # be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for | ||||
| # a no-op if you do not wish to receive input characters for that binding. | ||||
| # | ||||
| # If the same trigger is assigned to multiple actions, all of them are executed | ||||
| # at once. | ||||
| key_bindings: | ||||
|   - { key: Paste,                                action: Paste          } | ||||
|   - { key: Copy,                                 action: Copy           } | ||||
|   #- { key: L,         mods: Control,             action: ClearLogNotice } | ||||
|   #- { key: L,         mods: Control, mode: ~Vi,  chars: "\x0c"          } | ||||
|   #- { key: PageUp,    mods: Shift,   mode: ~Alt, action: ScrollPageUp,  } | ||||
|   #- { key: PageDown,  mods: Shift,   mode: ~Alt, action: ScrollPageDown } | ||||
|   #- { key: Home,      mods: Shift,   mode: ~Alt, action: ScrollToTop,   } | ||||
|   #- { key: End,       mods: Shift,   mode: ~Alt, action: ScrollToBottom } | ||||
|  | ||||
|   # Vi Mode | ||||
|   #- { key: Space,  mods: Shift|Control, mode: Vi, action: ScrollToBottom          } | ||||
|   #- { key: Space,  mods: Shift|Control,           action: ToggleViMode            } | ||||
|   #- { key: Escape,                      mode: Vi, action: ClearSelection          } | ||||
|   #- { key: I,                           mode: Vi, action: ScrollToBottom          } | ||||
|   #- { key: I,                           mode: Vi, action: ToggleViMode            } | ||||
|   #- { key: Y,      mods: Control,       mode: Vi, action: ScrollLineUp            } | ||||
|   #- { key: E,      mods: Control,       mode: Vi, action: ScrollLineDown          } | ||||
|   #- { key: G,                           mode: Vi, action: ScrollToTop             } | ||||
|   #- { key: G,      mods: Shift,         mode: Vi, action: ScrollToBottom          } | ||||
|   #- { key: B,      mods: Control,       mode: Vi, action: ScrollPageUp            } | ||||
|   #- { key: F,      mods: Control,       mode: Vi, action: ScrollPageDown          } | ||||
|   #- { key: U,      mods: Control,       mode: Vi, action: ScrollHalfPageUp        } | ||||
|   #- { key: D,      mods: Control,       mode: Vi, action: ScrollHalfPageDown      } | ||||
|   #- { key: Y,                           mode: Vi, action: Copy                    } | ||||
|   #- { key: V,                           mode: Vi, action: ToggleNormalSelection   } | ||||
|   #- { key: V,      mods: Shift,         mode: Vi, action: ToggleLineSelection     } | ||||
|   #- { key: V,      mods: Control,       mode: Vi, action: ToggleBlockSelection    } | ||||
|   #- { key: V,      mods: Alt,           mode: Vi, action: ToggleSemanticSelection } | ||||
|   #- { key: Return,                      mode: Vi, action: Open                    } | ||||
|   #- { key: K,                           mode: Vi, action: Up                      } | ||||
|   #- { key: J,                           mode: Vi, action: Down                    } | ||||
|   #- { key: H,                           mode: Vi, action: Left                    } | ||||
|   #- { key: L,                           mode: Vi, action: Right                   } | ||||
|   #- { key: Up,                          mode: Vi, action: Up                      } | ||||
|   #- { key: Down,                        mode: Vi, action: Down                    } | ||||
|   #- { key: Left,                        mode: Vi, action: Left                    } | ||||
|   #- { key: Right,                       mode: Vi, action: Right                   } | ||||
|   #- { key: Key0,                        mode: Vi, action: First                   } | ||||
|   #- { key: Key4,   mods: Shift,         mode: Vi, action: Last                    } | ||||
|   #- { key: Key6,   mods: Shift,         mode: Vi, action: FirstOccupied           } | ||||
|   #- { key: H,      mods: Shift,         mode: Vi, action: High                    } | ||||
|   #- { key: M,      mods: Shift,         mode: Vi, action: Middle                  } | ||||
|   #- { key: L,      mods: Shift,         mode: Vi, action: Low                     } | ||||
|   #- { key: B,                           mode: Vi, action: SemanticLeft            } | ||||
|   #- { key: W,                           mode: Vi, action: SemanticRight           } | ||||
|   #- { key: E,                           mode: Vi, action: SemanticRightEnd        } | ||||
|   #- { key: B,      mods: Shift,         mode: Vi, action: WordLeft                } | ||||
|   #- { key: W,      mods: Shift,         mode: Vi, action: WordRight               } | ||||
|   #- { key: E,      mods: Shift,         mode: Vi, action: WordRightEnd            } | ||||
|   #- { key: Key5,   mods: Shift,         mode: Vi, action: Bracket                 } | ||||
|  | ||||
|   # (Windows, Linux, and BSD only) | ||||
|   - { key: V,              mods: Control|Shift,           action: Paste            } | ||||
|   - { key: C,              mods: Control|Shift,           action: Copy             } | ||||
|   - { key: F,              mods: Control|Shift,           action: SearchForward    } | ||||
|   - { key: B,              mods: Control|Shift,           action: SearchBackward   } | ||||
|   - { key: C,              mods: Control|Shift, mode: Vi, action: ClearSelection   } | ||||
|   - { key: Insert,         mods: Shift,                   action: PasteSelection   } | ||||
|   - { key: Key0,           mods: Control,                 action: ResetFontSize    } | ||||
|   - { key: Equals,         mods: Control,                 action: IncreaseFontSize } | ||||
|   - { key: Plus,           mods: Control,                 action: IncreaseFontSize } | ||||
|   - { key: NumpadAdd,      mods: Control,                 action: IncreaseFontSize } | ||||
|   - { key: Minus,          mods: Control,                 action: DecreaseFontSize } | ||||
|   - { key: NumpadSubtract, mods: Control,                 action: DecreaseFontSize } | ||||
|  | ||||
| debug: | ||||
|   # Display the time it takes to redraw each frame. | ||||
|   #render_timer: false | ||||
|  | ||||
|   # Keep the log file after quitting Alacritty. | ||||
|   #persistent_logging: false | ||||
|  | ||||
|   # Log level | ||||
|   # | ||||
|   # Values for `log_level`: | ||||
|   #   - None | ||||
|   #   - Error | ||||
|   #   - Warn | ||||
|   #   - Info | ||||
|   #   - Debug | ||||
|   #   - Trace | ||||
|   log_level: Warn | ||||
|  | ||||
|   # Print all received window events. | ||||
|   #print_events: false | ||||
							
								
								
									
										346
									
								
								aliases
									
									
									
									
									
								
							
							
						
						
									
										346
									
								
								aliases
									
									
									
									
									
								
							| @@ -1,197 +1,152 @@ | ||||
| case "$(basename "$(readlink -f /proc/$$/exe)")" in | ||||
|     zsh)  thisfile="$(readlink -f "${(%):-%N}")";; | ||||
|     bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";; | ||||
|     *)   thisfile="$(find /proc/$$/fd/ -print0 | xargs -0 -n1 -r readlink -f | grep aliases | head -n1)";; | ||||
| esac | ||||
| #!/usr/bin/zsh | ||||
|  | ||||
| # Global aliases for ZSH | ||||
| if alias -g 2>/dev/null; then | ||||
|     alias -g ...=../.. | ||||
|     alias -g ....=../../.. | ||||
|     alias -g .....=../../../.. | ||||
|     alias -g ......=../../../../.. | ||||
|     alias -g NO="1> /dev/null" | ||||
|     alias -g NE="2> /dev/null" | ||||
|     alias -g NUL="&> /dev/null" | ||||
|     alias -g BG="&;disown" | ||||
| fi | ||||
| # Common Aliases | ||||
| alias -g ...=../.. | ||||
| alias -g ....=../../.. | ||||
| alias -g .....=../../../.. | ||||
| alias -g ......=../../../../.. | ||||
|  | ||||
| # File default aliases | ||||
| if alias -s 2>/dev/null; then | ||||
|     alias -s pdf="open" | ||||
|     alias -s jar="java -jar" | ||||
|     alias -s git="git clone --recursive" | ||||
| fi | ||||
| alias ..la="cd ..;la" | ||||
| alias ..ll="cd..;ll" | ||||
| alias ..l="..ll" | ||||
|  | ||||
| alias l=ll | ||||
| alias ls='ls --color=auto' | ||||
| alias ll='ls -lFh  --group-directories-first' | ||||
| alias la='ls -lAFh --group-directories-first' | ||||
| alias lt='ls -lFh  --sort=time' | ||||
| alias lat='ls -lAFh --sort=time' | ||||
| alias ll="ls -lFh  --group-directories-first" | ||||
| alias la="ls -lAFh --group-directories-first" | ||||
| alias lt='ls -lAFh --sort=time' | ||||
| alias lsz='ls -lAFh --sort=size' | ||||
| alias al=la # No, I don't need the Mono Assembly Linker | ||||
|  | ||||
| alias md='mkdir -p' | ||||
| alias rd='rmdir -p' | ||||
| alias md="mkdir -p" | ||||
| alias rd="rmdir -p" | ||||
| mcd(){ mkdir -p $@ && cd $@; } | ||||
| alias -- -='cd -' | ||||
| cdt() { cd "$(mktemp -d -t "${1:-tmp}.XXXXXXXX")"; } | ||||
| alias cdt='cd `mktemp -d`' | ||||
| alias grep='grep --color' | ||||
| alias -g H='| head' | ||||
| alias -g T='| tail' | ||||
| alias -g G='| grep' | ||||
| alias -g L="| less" | ||||
| alias -g C="| wc -l" | ||||
| alias -g S="| sort" | ||||
| alias -g U="| uniq" | ||||
| alias -g count="| wc -l" | ||||
| alias -g NO="1> /dev/null" | ||||
| alias -g NE="2> /dev/null" | ||||
| alias -g NUL="&> /dev/null" | ||||
| alias -g BG="&;disown" | ||||
| alias -g COL="| column -t" | ||||
| alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard" | ||||
| calc() { bc -l <<< "$@"; } | ||||
|  | ||||
| alias svi=sudoedit | ||||
| alias svim=sudoedit | ||||
| # This will enable us to use aliases in sudo. | ||||
| # (If alias finishes with a space or tab, the shell will check if the next command is also aliased.) | ||||
| # Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh | ||||
| alias sudo='sudo ' | ||||
| alias sudo='sudo -E ' | ||||
| alias open=xdg-open | ||||
|  | ||||
| # Command rewrites | ||||
| alias rm='rm -iv' | ||||
| alias ls='ls --color=always' | ||||
| alias rm='rm -i' | ||||
| alias mv='mv -i' | ||||
| alias cp='cp -ir' | ||||
| alias scp='scp -r' | ||||
| alias pacman='pacman --color=always' | ||||
| alias pacaur='pacaur --color=always' | ||||
| alias tree='tree --dirsfirst -C -F' | ||||
| alias make="make -j$(nproc)" | ||||
| alias dd='dd status=progress' | ||||
| alias wget='wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file' | ||||
| alias env='env | sort' | ||||
| alias ssh="ssh -tt" | ||||
| alias vim="vim --servername vim -p" | ||||
| alias vi=vim | ||||
| alias grip='grip --user=frebib --pass=$GRIP_API_KEY' | ||||
| alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log' | ||||
| alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log' | ||||
| alias alpine-sdk="docker run -ti --rm \ | ||||
| exists gopass && alias pass='gopass' | ||||
| alias abuild='docker run -ti --rm \ | ||||
|     -e USER \ | ||||
|     -e UID=\"\$(id -u)\" \ | ||||
|     -e PWD \ | ||||
|     -e HOME \ | ||||
|     -w \$PWD \ | ||||
|     -v \$PWD:\$PWD \ | ||||
|     -v ~/.abuild:\$HOME/.abuild \ | ||||
|     -v ~/.abuild/distfiles:/var/cache/distfiles \ | ||||
|     frebib/alpine-sdk:edge" | ||||
| alias abuild='alpine-sdk abuild' | ||||
| alias abuild-sign='alpine-sdk abuild-sign' | ||||
| alias apk='alpine-sdk apk' | ||||
| alias hddtemps='find /sys/block/ -name sd\* | sed "s|sys/block|dev|g" | sudo xargs hddtemp | sort -t: -k3' | ||||
| alias stripansi='sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g"' | ||||
| alias calc="noglob bc -l <<<" # noglob allows * without quoting | ||||
|  | ||||
| exists pacman && \ | ||||
|     alias pacman='pacman --color=always' | ||||
| exists yay && \ | ||||
|     alias p='yay' | ||||
| exists tree && \ | ||||
|     alias tree='tree --dirsfirst -C -F' | ||||
| exists make && \ | ||||
|     alias make="make -j$(nproc)" | ||||
| exists gopass && \ | ||||
|     alias pass='gopass' | ||||
| echo | busybox grep --color '' >/dev/null 2>&1 && \ | ||||
|     alias grep='grep --color' | ||||
| vim --version 2>/dev/null | command grep -q +clientserver && \ | ||||
|     alias vim="vim --servername vim -p" | ||||
|  | ||||
| # Function aliases | ||||
| env() { command env "$@" | stripansi | sort; } | ||||
| mcd(){ mkdir -p -- "$@" && cd -- "$@"; } | ||||
| randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "$1" | head -n 1; } | ||||
|     -w $PWD \ | ||||
|     -v $PWD:$PWD \ | ||||
|     -v ~/.abuild:$HOME/.abuild \ | ||||
|     frebib/alpine-sdk:edge abuild' | ||||
|  | ||||
| # System aliases | ||||
| alias sc="systemctl" | ||||
| alias ssc="sudo systemctl" | ||||
| alias scu="systemctl --user" | ||||
| alias s="sudo systemctl" | ||||
| alias j=journalctl | ||||
| alias p=pacaur | ||||
| alias ps='ps aux' | ||||
| alias catn='tail -n +1 --' | ||||
| alias kl='killall -s 9' | ||||
| alias chx='chmod +x' | ||||
|  | ||||
| # File default aliases | ||||
| pdf() { | ||||
|     evince $@ NE BG | ||||
| } | ||||
| alias -s pdf=pdf | ||||
| alias -s zip="unzip -l" | ||||
| alias -s rar="unrar l" | ||||
| alias -s tar="tar tf" | ||||
| alias -s gz="tar tf" | ||||
| alias -s jar="java -jar" | ||||
| alias -s git="git clone --recursive" | ||||
|  | ||||
| # Git Aliases | ||||
| alias git='TZ=UTC git' | ||||
| alias g=git | ||||
| alias ginit='git init' | ||||
| alias gignore='$EDITOR .gitignore' | ||||
| alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config' | ||||
| alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore' | ||||
|  | ||||
| alias gco="git checkout" | ||||
| alias gcom="git checkout \"\$(git defbranch)\"" | ||||
| alias gsw="git switch" | ||||
| alias gswm="git switch \"\$(git defbranch)\"" | ||||
| alias gbr="git branch" | ||||
| alias gtg="git tag" | ||||
| alias gbl="git blame" | ||||
| alias gt="git tag" | ||||
| alias gst="git status" | ||||
| alias grl="git reflog" | ||||
| alias gfp="git format-patch" | ||||
| alias gitc='$EDITOR ~/.config/git/config' | ||||
| alias ggignore='$EDITOR ~/.config/git/gitignore' | ||||
| alias gcl="git clone --recursive" | ||||
|  | ||||
| alias gco="git checkout" | ||||
| alias gcom="git checkout master" | ||||
| alias ga="git add" | ||||
| alias gap="git add -p" | ||||
| alias gau="git add -u" | ||||
| alias gaN="git add -N" | ||||
| alias gaa="ga -A" | ||||
| alias grm="git rm" | ||||
| alias gmv="git mv" | ||||
|  | ||||
| alias gc="git commit -sv" | ||||
| alias gcm="git commit -sv -em" | ||||
| alias gca="git commit -sv --amend --date=\"\$(date -R)\"" | ||||
| alias gcn="git commit -sv --no-edit" | ||||
| alias gcan="gca --no-edit" | ||||
| alias gcam="gca -m" | ||||
| alias gc="git commit" | ||||
| alias gcm="gc -m" | ||||
| gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; } | ||||
| alias gca="git commit --amend" | ||||
| alias gcan="git commit --amend --no-edit" | ||||
| alias gcam="git commit --amend -m" | ||||
| alias gst="git status" | ||||
|  | ||||
| alias gm="git merge" | ||||
| alias gma="git merge --abort" | ||||
| alias gmc="git merge --continue" | ||||
|  | ||||
| alias grb="git rebase" | ||||
| alias grbi="grb -i" | ||||
| alias grba="grb --abort" | ||||
| alias grbc="grb --continue" | ||||
| alias grbsk="grb --skip" | ||||
| alias grbsh="grb --show-current" | ||||
| alias grbom="git rebase \"origin/\$(git defbranch origin)\"" | ||||
| gfrb() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase "$ref" "${@:2}"; } | ||||
| gfrbi() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase -i "$ref" "${@:2}"; } | ||||
|  | ||||
| alias gam="git am" | ||||
| alias gama="git am --abort" | ||||
| alias gamc="git am --continue" | ||||
| alias gamsk="git am --skip" | ||||
|  | ||||
| alias gcp="git cherry-pick" | ||||
| alias gcpa="git cherry-pick --abort" | ||||
| alias gcpc="git cherry-pick --continue" | ||||
| alias gcpsk="git cherry-pick --skip" | ||||
|  | ||||
| alias grv="git revert" | ||||
| alias grva="git revert --abort" | ||||
| alias grvc="git revert --continue" | ||||
| alias grvsk="git revert --skip" | ||||
|  | ||||
| alias gf="git fetch" | ||||
| alias gp="git push" | ||||
| alias gpf="gp --force" | ||||
| alias gpsu="git push --set-upstream" | ||||
| alias gpoH="git push origin HEAD" | ||||
| alias gpsuom="git push --set-upstream origin \"\$(git defbranch)\"" | ||||
| alias gpsuom="git push --set-upstream origin master" | ||||
| alias gpall="git remote | xargs -L1 git push" | ||||
| alias gl="git pull --rebase" | ||||
| alias glp="gl && gp" | ||||
| alias gd="git diff --patch-with-stat --no-prefix" | ||||
| alias gdni="gd --no-index --no-prefix" | ||||
| alias gds="gd --staged --no-prefix" | ||||
| alias gsh="git show --format=fuller --patch-with-stat --no-prefix" | ||||
| alias glg="git log --color --format=fuller --stat --no-merges --graph" | ||||
| alias glgp="git log --color --format=fuller --patch-with-stat --no-merges --graph" | ||||
| alias glog="git log --color --oneline --decorate --graph" | ||||
| gd() { | ||||
|     local commit=$1 | ||||
|     if [ -z "$commit" ] || [ ${commit:0:1} != '@' ]; then | ||||
|         git diff $@ | ||||
|     else | ||||
|         git diff "@~${commit:1}^!" | ||||
|     fi | ||||
| } | ||||
| alias gds="git diff --staged" | ||||
| alias gsh="git show" | ||||
| alias glg="git log --stat --color" | ||||
| alias glog="git log --oneline --decorate --color --graph" | ||||
|  | ||||
| alias grst="git reset" | ||||
| alias gundo="git reset --keep @~1" | ||||
| alias gundo="git reset @~1" | ||||
| alias gclean="git clean" | ||||
| alias gclm="git cleanmerged" | ||||
| alias gbrl="git for-each-ref --sort=committerdate refs/heads/ --format=\"%(refname:short)\" | fzf -x --ansi --multi --preview-window=right:70% --preview=\"git log --format=fuller --stat --color=always {} | head -n\$((\$(tput lines)*10))\"" | ||||
|  | ||||
| alias gbr="git branch" | ||||
| alias gr="git remote" | ||||
| alias grv="git remote -v" | ||||
| alias gra="gr add" | ||||
| alias grr="gr rm" | ||||
| alias grao="gra origin" | ||||
| @@ -201,15 +156,12 @@ alias gsta='git stash' | ||||
| alias gstd='gsta drop' | ||||
| alias gstl='gsta list --stat --color' | ||||
| alias gstp='gsta pop' | ||||
| alias gstv="gsta show --patch-with-stat stash@{0}" | ||||
| alias gstv="gsta show -p stash@{0}" | ||||
|  | ||||
| # Docker aliases | ||||
| alias d=docker | ||||
| alias dps="docker ps --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'" | ||||
| alias dpsa="docker ps -a --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.opencontainers.image.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'" | ||||
| alias dnets="docker network ls -q | xargs docker inspect | jq '.[] | select(.Name != \"host\" and .Name != \"none\") | [.] | map(.Name + \"\t\" + (.IPAM.Config | map(.Subnet) | join(\"\t\")))[]' -r | sort -V -k2,3 | column -t" | ||||
| daddrs() { docker inspect "${1:-bridge}" | jq '.[0].Containers | map(.Name + "\t" + .IPv4Address + "\t" + .IPv6Address)[]' -r | sort -V -k2,3 | column -t; } | ||||
| alias din='docker inspect' | ||||
| alias dps='docker ps' | ||||
| alias dpsa='docker ps -a' | ||||
| alias drm='docker rm' | ||||
| alias drmi='docker rmi' | ||||
| alias dim='docker images' | ||||
| @@ -217,32 +169,26 @@ alias dbl='docker build --pull' | ||||
| alias dbl.='docker build --pull .' | ||||
| alias drun='docker run -ti' | ||||
| alias dkl='docker kill' | ||||
| alias drmf='docker rm -f' | ||||
| dklrm() { docker kill $@ ; docker rm $@ } | ||||
| alias dst='docker stop' | ||||
| alias drst='docker restart' | ||||
| alias dnet='docker network' | ||||
| alias dvol='docker volume' | ||||
| alias dc='docker compose' | ||||
| alias dlg='docker logs --tail=1000 -f' | ||||
| alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh' | ||||
| alias dlg='docker logs -f' | ||||
| alias dalpine='docker run -ti --rm alpine /bin/sh' | ||||
| alias drm-stopped='docker container prune' | ||||
| alias drmi-untag='docker image prune' | ||||
| alias dprune='docker system prune -f' | ||||
| dsh() { do_dsh 2 exec "$@"; return $?; } | ||||
| _dsh() { __docker_complete_running_containers "$@"; } | ||||
| drsh() { do_dsh 4 run --rm --entrypoint= "$@"; return $?; } | ||||
| _drsh() { __docker_container_subcommand "$@"; } | ||||
| do_dsh() { | ||||
|     local minargs=$1 | ||||
|     shift | ||||
|     if [ $# -lt "$minargs" ]; then | ||||
|         # shellcheck disable=SC2154 | ||||
|         echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2 | ||||
| alias dsh='_CMD=dsh _dsh exec' | ||||
| alias drsh='_CMD=drsh _dsh run --rm --entrypoint=' | ||||
| _dsh() { | ||||
|     if [ $# -lt 2 ]; then | ||||
|         echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2 | ||||
|         return 64 | ||||
|     fi | ||||
|  | ||||
|     local dowhat="$1" | ||||
|     local docker_args=("$dowhat" -ti) | ||||
|     local docker_args=() | ||||
|     shift | ||||
|  | ||||
|     while [ "${1:0:1}" = '-' ]; do | ||||
| @@ -254,84 +200,78 @@ do_dsh() { | ||||
|         shift | ||||
|     done | ||||
|  | ||||
|     local user | ||||
|     user="$(echo "$1" | cut -d@ -f1 -s)" | ||||
|  | ||||
|     declare -a prog | ||||
|     prog=("${@:2:$#}") | ||||
|     local user="$(echo "$1" | cut -d'@' -f1 -s)" | ||||
|     local prog="${@:2:$#}" | ||||
|     local usercmd="" | ||||
|     if [ -z "$user" ]; then | ||||
|         host="$1" | ||||
|     else | ||||
|         host="$(cut -d@ -f2 -s <<< "$1")" | ||||
|         docker_args+=("--user=$user") | ||||
|         host=`echo $1 | cut -d'@' -f2 -s` | ||||
|         usercmd="--user=$user" | ||||
|     fi | ||||
|  | ||||
|     if [ "$dowhat" = exec ] && [ -z "$(docker ps -q -f name="$host" <&-)" ]; then | ||||
|     if [ "$dowhat" = 'exec' -a -z "$(docker ps -q -f name="$host")" <&- ]; then | ||||
|         echo "No such container $host" >&2 | ||||
|         return 5 | ||||
|     fi | ||||
|     if [ "$dowhat" = run ]; then | ||||
|         docker image pull "$host" | ||||
|     fi | ||||
|  | ||||
|     if [ ${#prog[@]} = 0 ]; then | ||||
|         shell_args=("$dowhat") | ||||
|     if [ -z "$prog" ]; then | ||||
|         set -o pipefail | ||||
|         local rm= | ||||
|         if [ "$dowhat" = 'run' ]; then | ||||
|             shell_args+=(--rm --entrypoint=) | ||||
|             rm='--rm --entrypoint=' | ||||
|         fi | ||||
|         for shell in bash sh; do | ||||
|             shell_path="$(set -o pipefail; docker "${shell_args[@]}" "$host" which "$shell" <&- | sed 's|[\r\n]||g')" | ||||
|             retval=$? | ||||
|             if [ $retval -eq 0 ]; then | ||||
|                 prog=("$shell_path") | ||||
|             if shell_path="$(eval "docker $dowhat $rm $host which $shell" <&- | sed 's|[\r\n]||g')"; then | ||||
|                 prog="$shell_path" | ||||
|                 break | ||||
|             elif [ $retval -ge 125 ]; then | ||||
|                 return | ||||
|             fi | ||||
|         done | ||||
|         if [ ${#prog[@]} = 0 ]; then | ||||
|         set +o pipefail | ||||
|         if [ -z "$prog" ]; then | ||||
|             echo "Warning: No shell found in path.. trying /bin/sh" >&2 | ||||
|             prog=(/bin/sh) | ||||
|             prog=/bin/sh | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     docker "${docker_args[@]}" "$host" "${prog[@]}" | ||||
|     docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog) | ||||
| } | ||||
|  | ||||
| alias dm='docker-machine' | ||||
| dmc() { eval "$(docker-machine env "$1")"; } | ||||
| dm-con() { | ||||
|     eval $(docker-machine env $1) | ||||
| } | ||||
| alias dmc=dm-con | ||||
|  | ||||
| alias dc='docker-compose' | ||||
|  | ||||
| # ZFS aliases | ||||
| alias zfs='sudo zfs' | ||||
| alias zpool='sudo zpool' | ||||
| alias z=zfs | ||||
| alias zp=zpool | ||||
| zl() { (set -o pipefail; command zfs list "$@" | grep -Ev 'docker/[0-9a-f]{64}' | column -t -R 2,3,4); return $?; } | ||||
| _zl() { _zfs "list $*"; } | ||||
|  | ||||
| # General Aliases | ||||
| alias ssha="eval \"\$(ssh-agent)\"; ssh-add" | ||||
| # shellcheck disable=SC2139 | ||||
| alias aliases="\$EDITOR $thisfile ; exec zsh" | ||||
| alias vimrc="\$EDITOR \$VIMRC" | ||||
| alias zshrc="\$EDITOR \${ZDOTDIR:-\$HOME}/.zshrc ; exec zsh" | ||||
| alias gitrc="\$EDITOR \$XDG_CONFIG_HOME/git/config" | ||||
| alias xinitrc="\$EDITOR \$XDG_CONFIG_HOME/X11/xinitrc" | ||||
| alias xresources="\$EDITOR \$XDG_CONFIG_HOME/X11/xresources ; xrdb merge \$XDG_CONFIG_HOME/X11/xresources" | ||||
| alias sshc="\$EDITOR ~/.ssh/config" | ||||
| alias dotfiles="cd \$XDG_CONFIG_HOME" | ||||
| alias i3c="\$EDITOR \$XDG_CONFIG_HOME/i3/config; systemctl --user reload i3" | ||||
| alias polybarc="\$EDITOR \$XDG_CONFIG_HOME/polybar/config.ini; systemctl --user reload polybar@i3bar" | ||||
|  | ||||
| alias ssha='eval `ssh-agent` ; ssh-add' | ||||
| alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh" | ||||
| alias vimrc="$EDITOR $MYVIMRC" | ||||
| alias zshrc="$EDITOR ~/.zshrc ; exec zsh" | ||||
| alias gitrc="$EDITOR ~/.config/git/config" | ||||
| alias xinitrc="$EDITOR ~/.xinitrc" | ||||
| alias xresources="$EDITOR ~/.Xresources ; xrdb merge ~/.Xresources" | ||||
| alias xsession="$EDITOR ~/.xsession" | ||||
| alias sshc="$EDITOR ~/.ssh/config" | ||||
| alias dotfiles="cd $DOTFILES" | ||||
| alias i3c="$EDITOR ~/.config/i3/config ; i3-msg restart" | ||||
| alias i3bc="$EDITOR ~/.config/i3/blocks/config ; i3-msg restart" | ||||
| i3b() { | ||||
|     $EDITOR ~/.config/i3/blocks/$@ | ||||
| } | ||||
| alias sf=screenfetch | ||||
| alias nf=neofetch | ||||
| randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; } | ||||
| alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'" | ||||
|  | ||||
| # Networking aliases | ||||
| alias ipa="ip a" | ||||
| alias addrs="ip a | grep inet | grep -ve fe80 -e '127\\.0\\.0\\.1/8' -e '::1/128' | sort -n | sed 's/^\\s*//'" | ||||
|  | ||||
| # alertmanager | ||||
| alias alert='amtool alert' | ||||
| alias silence='amtool silence' | ||||
| alias expire='amtool silence expire' | ||||
| unsilence() { { for inst in "$@"; do amtool silence query instance=$inst | grep -Po '^([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})' | tee /dev/stderr | xargs -r amtool silence expire & done; wait; } | cat } | ||||
| alias lab="ssh -tt tw '~/ctl' 2>/dev/null" | ||||
|  | ||||
| # vim: ft=sh | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| --enable-features=NativeNotifications,OverlayScrollbar | ||||
| @@ -1,14 +0,0 @@ | ||||
| LC_ALL="en_GB.UTF-8" | ||||
| LANG="en_GB.UTF-8" | ||||
| LC_NUMERIC="en_GB" | ||||
|  | ||||
| XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" | ||||
| XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" | ||||
| XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" | ||||
|  | ||||
| EDITOR="vim" | ||||
| VISUAL="vim" | ||||
|  | ||||
| PATH="${PATH}:/sbin:/usr/sbin:${HOME}/.local/bin:${XDG_CONFIG_HOME}/scripts" | ||||
|  | ||||
| # vim: ft=sh | ||||
| @@ -1,27 +0,0 @@ | ||||
| # Override paths for non-compliant programs | ||||
| # https://wiki.archlinux.org/index.php/XDG_Base_Directory_support | ||||
|  | ||||
| ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl" | ||||
| CARGO_HOME="$XDG_DATA_HOME/cargo" | ||||
| GNUPGHOME="$XDG_CONFIG_HOME/gnupg" | ||||
| GEM_HOME="$XDG_DATA_HOME/gem" | ||||
| GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem" | ||||
| GOPATH="$XDG_DATA_HOME/go" | ||||
| ICEAUTHORITY="$XDG_CACHE_HOME/ICEauthority" | ||||
| NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc" | ||||
| PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass" | ||||
| PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup" | ||||
| RUSTUP_HOME="$XDG_DATA_HOME/rustup" | ||||
| TERMINFO="$XDG_DATA_HOME/terminfo" | ||||
| TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo" | ||||
| TS3_CONFIG_DIR="$XDG_CONFIG_HOME/teamspeak3" | ||||
| VIMDIR="$XDG_CONFIG_HOME/vim" | ||||
| VIMRC="$VIMDIR/vimrc" | ||||
| VIMINIT=":so $VIMRC" | ||||
| WEECHAT_HOME="$XDG_CONFIG_HOME/weechat" | ||||
| XINITRC="$XDG_CONFIG_HOME/X11/xinitrc" | ||||
| ZDOTDIR="$XDG_CONFIG_HOME/zsh" | ||||
|  | ||||
| PATH="${PATH}:${GOPATH}/bin:${GEM_HOME}/bin" | ||||
|  | ||||
| # vim: ft=sh | ||||
| @@ -1,59 +0,0 @@ | ||||
| <?xml version="1.0"?> | ||||
| <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | ||||
| <fontconfig> | ||||
|     <match> | ||||
|         <test qual="any" name="family"><string>sans-serif</string></test> | ||||
|         <edit name="family" mode="prepend" binding="strong"> | ||||
|             <string>Noto Sans</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|             <string>FontAwesome 6 Pro Light</string> | ||||
|         </edit> | ||||
|  | ||||
|         <edit name="hintstyle" mode="assign"><const>hintnone</const></edit> | ||||
|         <edit mode="assign" name="hinting"><bool>false</bool></edit> | ||||
|     </match> | ||||
|  | ||||
|     <match> | ||||
|         <test qual="any" name="family"><string>serif</string></test> | ||||
|         <edit name="family" mode="prepend" binding="strong"> | ||||
|             <string>Noto Serif</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|             <string>FontAwesome 6 Pro Light</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|  | ||||
|     <match> | ||||
|         <test qual="any" name="family"><string>monospace</string></test> | ||||
|         <edit name="family" mode="prepend" binding="strong"> | ||||
|             <string>Source Code Pro</string> | ||||
|             <string>Noto Color Emoji</string> | ||||
|             <string>FontAwesome 6 Pro Light</string> | ||||
|         </edit> | ||||
|     </match> | ||||
|  | ||||
|     <match> | ||||
|         <test qual="all" name="family" compare="eq"><string>Noto Sans</string></test> | ||||
|         <edit name="hintstyle" mode="assign"><const>hintnone</const></edit> | ||||
|     </match> | ||||
|  | ||||
|     <match> | ||||
|         <test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test> | ||||
|         <edit name="antialias" mode="assign_replace"><bool>false</bool></edit> | ||||
|         <edit name="hintstyle" mode="assign_replace"><const>hintfull</const></edit> | ||||
|         <edit name="lcdfilter" mode="assign_replace"><const>lcddefault</const></edit> | ||||
|         <edit name="rgba" mode="assign_replace"><const>rgb</const></edit> | ||||
|     </match> | ||||
|  | ||||
|     <alias> | ||||
|         <family>SF Mono</family> | ||||
|         <accept> | ||||
|             <family>monospace</family> | ||||
|         </accept> | ||||
|     </alias> | ||||
|  | ||||
|     <match> | ||||
|         <edit name="antialias" mode="assign"><bool>true</bool></edit> | ||||
|         <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> | ||||
|         <edit name="rgba" mode="assign"><const>rgb</const></edit> | ||||
|     </match> | ||||
| </fontconfig> | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								fonts/SauceCodeProPatched/Sauce Code Pro Nerd Font Complete.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								fonts/SauceCodeProPatched/Sauce Code Pro Nerd Font Complete.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										82
									
								
								fsh/fish.ini
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								fsh/fish.ini
									
									
									
									
									
								
							| @@ -1,82 +0,0 @@ | ||||
| [base] | ||||
| default          = 12 | ||||
| unknown-token    = red,bold | ||||
| commandseparator = cyan | ||||
| redirection      = cyan,bold | ||||
| here-string-tri  = yellow | ||||
| here-string-text = 18 | ||||
| here-string-var  = cyan,bg:18 | ||||
| exec-descriptor  = yellow,bold | ||||
| comment          = 7 | ||||
| correct-subtle   = 12 | ||||
| incorrect-subtle = red | ||||
| subtle-separator = green | ||||
| subtle-bg        = bg:18 | ||||
| secondary        = | ||||
| recursive-base   = | ||||
|  | ||||
| [command-point] | ||||
| reserved-word  = yellow | ||||
| subcommand     = yellow | ||||
| alias          = blue | ||||
| suffix-alias   = green | ||||
| global-alias   = blue,bold | ||||
| builtin        = blue | ||||
| function       = blue | ||||
| command        = blue | ||||
| precommand     = blue | ||||
| hashed-command = green | ||||
| single-sq-bracket = green | ||||
| double-sq-bracket = green | ||||
| double-paren   = yellow | ||||
|  | ||||
| [paths] | ||||
| path          = cyan | ||||
| pathseparator = cyan | ||||
| path-to-dir   = magenta,underline | ||||
| globbing      = red | ||||
| globbing-ext  = 13 | ||||
|  | ||||
| [brackets] | ||||
| paired-bracket = bg:blue | ||||
| bracket-level-1 = green,bold | ||||
| bracket-level-2 = yellow,bold | ||||
| bracket-level-3 = cyan,bold | ||||
|  | ||||
| [arguments] | ||||
| single-hyphen-option   = 12 | ||||
| double-hyphen-option   = 12 | ||||
| back-quoted-argument   = none | ||||
| single-quoted-argument = yellow | ||||
| double-quoted-argument = yellow | ||||
| dollar-quoted-argument = yellow | ||||
|  | ||||
| [in-string] | ||||
| ; backslash in $'...' | ||||
| back-dollar-quoted-argument           = cyan | ||||
| ; backslash or $... in "..." | ||||
| back-or-dollar-double-quoted-argument = cyan | ||||
|  | ||||
| [other] | ||||
| variable             = 113 | ||||
| assign               = green | ||||
| assign-array-bracket = green | ||||
| history-expansion    = blue,bold | ||||
|  | ||||
| [math] | ||||
| mathvar = blue,bold | ||||
| mathnum = magenta | ||||
| matherr = red | ||||
|  | ||||
| [for-loop] | ||||
| forvar = none | ||||
| fornum = magenta | ||||
| ; operator | ||||
| foroper = yellow | ||||
| ; separator | ||||
| forsep = yellow,bold | ||||
|  | ||||
| [case] | ||||
| case-input       = green | ||||
| case-parentheses = yellow | ||||
| case-condition   = bg:blue | ||||
| @@ -1,35 +0,0 @@ | ||||
| root: | ||||
|   askformore: false | ||||
|   autoclip: false | ||||
|   autoimport: true | ||||
|   autosync: true | ||||
|   check_recipient_hash: false | ||||
|   cliptimeout: 45 | ||||
|   concurrency: 1 | ||||
|   editrecipients: false | ||||
|   nocolor: false | ||||
|   noconfirm: true | ||||
|   nopager: false | ||||
|   notifications: false | ||||
|   path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass | ||||
|   recipient_hash: {} | ||||
|   safecontent: false | ||||
|   usesymbols: false | ||||
| mounts: | ||||
|   spritsail: | ||||
|     askformore: false | ||||
|     autoclip: false | ||||
|     autoimport: true | ||||
|     autosync: true | ||||
|     check_recipient_hash: false | ||||
|     cliptimeout: 45 | ||||
|     concurrency: 1 | ||||
|     editrecipients: false | ||||
|     nocolor: false | ||||
|     noconfirm: true | ||||
|     nopager: false | ||||
|     notifications: false | ||||
|     path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass-spritsail | ||||
|     recipient_hash: {} | ||||
|     safecontent: false | ||||
|     usesymbols: false | ||||
| @@ -1,15 +0,0 @@ | ||||
| VteTerminal, | ||||
| TerminalScreen, | ||||
| vte-terminal { | ||||
|     padding: 1.8em; | ||||
| } | ||||
|  | ||||
| .window-frame, .window-frame:backdrop { | ||||
|     margin: 0; | ||||
|     border-style: none; | ||||
|     border-radius: 0; | ||||
| } | ||||
|  | ||||
| .titlebar { | ||||
|     border-radius: 0; | ||||
| } | ||||
| @@ -1 +0,0 @@ | ||||
| ../gtk-3.0/settings.ini | ||||
							
								
								
									
										169
									
								
								i3/config
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								i3/config
									
									
									
									
									
								
							| @@ -1,169 +0,0 @@ | ||||
| # i3 config file (v4) | ||||
| # | ||||
| # Please see http://i3wm.org/docs/userguide.html for a complete reference! | ||||
|  | ||||
| set $mod Mod4 | ||||
| set $alt Mod1 | ||||
| floating_modifier $mod | ||||
|  | ||||
| font pango:sans 9 | ||||
|  | ||||
| # kill focused window | ||||
| bindsym $mod+apostrophe kill | ||||
| bindsym $alt+F4 kill | ||||
|  | ||||
| # change window focus | ||||
| bindsym $mod+d focus left | ||||
| bindsym $mod+h focus down | ||||
| bindsym $mod+t focus up | ||||
| bindsym $mod+n focus right | ||||
|  | ||||
| # move focused window | ||||
| bindsym $mod+Shift+d move left | ||||
| bindsym $mod+Shift+h move down | ||||
| bindsym $mod+Shift+t move up | ||||
| bindsym $mod+Shift+n move right | ||||
|  | ||||
| # split in horizontal orientation | ||||
| bindsym $mod+m split h | ||||
| bindsym $mod+w split v | ||||
|  | ||||
| # enter fullscreen mode for the focused container | ||||
| bindsym $mod+Shift+f fullscreen toggle global | ||||
| bindsym $mod+f fullscreen toggle | ||||
|  | ||||
| # change container layout (stacked, tabbed, toggle split) | ||||
| bindsym $mod+p layout stacking | ||||
| bindsym $mod+comma layout tabbed | ||||
| bindsym $mod+period layout toggle split | ||||
|  | ||||
| # toggle tiling / floating | ||||
| bindsym $mod+u floating toggle | ||||
| bindsym $mod+e sticky toggle | ||||
|  | ||||
| # focus the parent container | ||||
| bindsym $mod+a focus parent | ||||
| bindsym $mod+o focus child | ||||
|  | ||||
| #  Screen configs  # | ||||
| set    $bl  "DP-5" | ||||
| set    $tl  "DP-1" | ||||
| set    $br  "HDMI-0" | ||||
| set    $tr  "DP-3" | ||||
|  | ||||
| # Workspace -> Screen | ||||
| workspace 1 output $bl | ||||
| workspace 2 output $br | ||||
| workspace 3 output $tl | ||||
| workspace 4 output $tr | ||||
| workspace 5 output $bl | ||||
| workspace 6 output $br | ||||
| workspace 7 output $tl | ||||
| workspace 8 output $tr | ||||
|  | ||||
| # switch to workspace | ||||
| bindsym $mod+1 workspace 1 | ||||
| bindsym $mod+2 workspace 2 | ||||
| bindsym $mod+3 workspace 3 | ||||
| bindsym $mod+4 workspace 4 | ||||
| bindsym $mod+5 workspace 5 | ||||
| bindsym $mod+6 workspace 6 | ||||
| bindsym $mod+7 workspace 7 | ||||
| bindsym $mod+8 workspace 8 | ||||
| bindsym $mod+9 workspace 9 | ||||
| bindsym $mod+0 workspace 10 | ||||
|  | ||||
| # move workspaces across screens | ||||
| bindsym $mod+$alt+d move workspace to output left | ||||
| bindsym $mod+$alt+n move workspace to output right | ||||
| bindsym $mod+$alt+t move workspace to output up | ||||
| bindsym $mod+$alt+h move workspace to output down | ||||
|  | ||||
| # move focused container to workspace | ||||
| bindsym $mod+Shift+1 move container to workspace 1 | ||||
| bindsym $mod+Shift+2 move container to workspace 2 | ||||
| bindsym $mod+Shift+3 move container to workspace 3 | ||||
| bindsym $mod+Shift+4 move container to workspace 4 | ||||
| bindsym $mod+Shift+5 move container to workspace 5 | ||||
| bindsym $mod+Shift+6 move container to workspace 6 | ||||
| bindsym $mod+Shift+7 move container to workspace 7 | ||||
| bindsym $mod+Shift+8 move container to workspace 8 | ||||
| bindsym $mod+Shift+9 move container to workspace 9 | ||||
| bindsym $mod+Shift+0 move container to workspace 10 | ||||
|  | ||||
| # opens logout/shutdown menu | ||||
| bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh | ||||
|  | ||||
| set $bg-color            #2f343f | ||||
| set $inactive-bg-color   #2f343f | ||||
| set $text-color          #f3f4f5 | ||||
| set $inactive-text-color #676E7D | ||||
| set $urgent-bg-color     #E53935 | ||||
|  | ||||
| # window colors | ||||
| #                       border              background         text                 indicator | ||||
| client.focused          $bg-color           $bg-color          $text-color          $bg-color | ||||
| client.unfocused        $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color | ||||
| client.focused_inactive $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color | ||||
| client.urgent           $urgent-bg-color    $urgent-bg-color   $text-color          $bg-color | ||||
|  | ||||
| # Window rules | ||||
| for_window [class="Pinentry"] floating enable | ||||
| for_window [class="Pavucontrol"] floating enable | ||||
| for_window [class="Blueman-manager"] floating enable | ||||
| for_window [class="floating-term" instance="termite"] floating enable | ||||
| for_window [class="Alacritty" instance="floating-term"] floating enable | ||||
| for_window [class="^jetbrains-.+$" title="win0"] floating enable | ||||
| for_window [window_role="floating-term"] floating enable | ||||
| for_window [class="^Rofi$"] floating enable | ||||
|  | ||||
| new_window none | ||||
| new_float none | ||||
|  | ||||
| gaps inner 24 | ||||
| gaps outer 4 | ||||
|  | ||||
| focus_follows_mouse yes | ||||
| popup_during_fullscreen smart | ||||
|  | ||||
| # keybindings | ||||
| bindsym $mod+Shift+j            reload | ||||
| bindsym --release $mod+x        exec xkill | ||||
| bindsym $mod+c                  exec notify-send "Try again" "You meant \\\$mod+b" | ||||
| bindsym $mod+b                  exec systemd-run-i3 -n firefox | ||||
| bindsym $mod+Return             exec systemd-run-i3 -n alacritty | ||||
| bindsym $mod+Ctrl+Return        exec systemd-run-i3 -n alacritty --class floating | ||||
| bindsym $mod+Shift+Return       exec systemd-run-i3 -n alacritty --working-directory "$(xcwd)" | ||||
| bindsym $mod+Ctrl+Shift+Return  exec systemd-run-i3 -n alacritty --class floating --working-directory "$(xcwd)" | ||||
| bindsym $mod+v                  exec systemd-run-i3 -n alacritty -e sh -c "($SHELL -c $EDITOR || :) && $SHELL" | ||||
| bindsym $mod+Ctrl+v             exec systemd-run-i3 -n alacritty --class floating -e sh -c "($SHELL -c $EDITOR || : ) && $SHELL" | ||||
| bindsym $mod+l                  exec dm-tool switch-to-greeter | ||||
| bindsym $mod+space              exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window -run-command 'systemd-run-i3 -n {cmd}'" | ||||
| bindsym $mod+Shift+p            exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g' | ||||
| bindsym $mod+Shift+e            exec "pkill rofi; rofi -show emoji -modi emoji -normal-window" | ||||
| bindsym $mod+Shift+i            exec rofi-fontawesome | ||||
| bindsym --release Print         exec screenshot --clip | ||||
| bindsym --release $mod+Print    exec screenshot | ||||
| bindsym --release Shift+Print   exec screenshot --active | ||||
| bindsym --release $mod+Shift+Print exec screenshot --active --clip | ||||
| bindsym $mod+Shift+x            exec systemd-run-i3 -n i3-sensible-terminal --class floating-term --hold -e /bin/echo "$(xprop -id $(xdotool getactivewindow))" | ||||
| bindsym $mod+$alt+space         exec systemd-run-i3 -s background -n ~/.config/i3/cycleaudio.py | ||||
| bindsym $mod+numbersign         exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1' | ||||
| bindsym $mod+r                  exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r' | ||||
| bindsym $mod+g                  exec systemd-run-i3 -n bash -xc 'xclip -o | gh gist create -d Paste - 2>&1 | grep -vE "^[-✓] Creat(ing|ed) gist" | tee >(xclip -i >&2 >/dev/null) | xargs -r notify-send -c transfer' | ||||
| bindsym --release $mod+i        exec systemd-run-i3 -s background -n sh -c 'sleep 0.5 && xdotool getactivewindow type --delay 10 -- "$(xclip -o -selection clipboard)"' | ||||
| bindsym $mod+z                  exec otp | rofi -dmenu -p otp | xargs otp | ||||
|  | ||||
| # Media player controls | ||||
| bindsym XF86AudioPlay           exec --no-startup-id playerctl -a play-pause | ||||
| bindsym XF86AudioPause          exec --no-startup-id playerctl -a pause | ||||
| bindsym XF86AudioStop           exec --no-startup-id playerctl -a stop | ||||
| bindsym XF86AudioNext           exec --no-startup-id playerctl -a next | ||||
| bindsym XF86AudioPrev           exec --no-startup-id playerctl -a previous | ||||
| bindsym XF86AudioRaiseVolume    exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  +1000 | ||||
| bindsym XF86AudioLowerVolume    exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  -1000 | ||||
| bindsym XF86AudioMute           exec --no-startup-id pactl set-sink-mute   @DEFAULT_SINK@ toggle | ||||
| bindsym XF86MonBrightnessUp     exec light -A 5 | ||||
| bindsym XF86MonBrightnessDown   exec light -U 5 | ||||
|  | ||||
| # vim:ft=i3 | ||||
| @@ -1,17 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| option="$(echo "  lock|  logout|  sleep|  hibernate|  power off|  reboot|  windows" | \ | ||||
|     rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 10 -lines 7 -location 3 -tokenize false -matching normal | cut -d' ' -f2- | xargs)" | ||||
|  | ||||
| case $option in | ||||
|     lock) dm-tool switch-to-greeter;; | ||||
|     logout) systemctl --user exit;; | ||||
|     sleep) systemctl suspend;; | ||||
|     hibernate) systemctl hibernate;; | ||||
|     power\ off) systemctl poweroff;; | ||||
|     reboot) systemctl reboot;; | ||||
|     windows) | ||||
|         windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4` | ||||
|         sudo efibootmgr -n $windows | ||||
|         reboot;; | ||||
| esac | ||||
| @@ -1,55 +0,0 @@ | ||||
| noremap d h | ||||
| noremap h j | ||||
| noremap t k | ||||
| noremap n l | ||||
| noremap D H | ||||
| noremap H J | ||||
| noremap T K | ||||
| noremap N L | ||||
|  | ||||
| noremap gh gj | ||||
| noremap gt gk | ||||
|  | ||||
| " I work with tabs every now and then. No, I don't have a mnemonic, so | ||||
| " stfu. | ||||
| noremap gj gt | ||||
| noremap gJ gT | ||||
|  | ||||
| " Window movement, equally important | ||||
| noremap <C-w>d <C-w>h | ||||
| noremap <C-w>h <C-w>j | ||||
| noremap <C-w>t <C-w>k | ||||
| noremap <C-w>n <C-w>l | ||||
|  | ||||
| nnoremap <C-w><C-d> <C-w><C-h> | ||||
| nnoremap <C-w><C-h> <C-w><C-j> | ||||
| nnoremap <C-w><C-t> <C-w><C-k> | ||||
| nnoremap <C-w><C-n> <C-w><C-l> | ||||
|  | ||||
| nnoremap <C-d> <C-w>h | ||||
| nnoremap <C-h> <C-w>j | ||||
| nnoremap <C-t> <C-w>k | ||||
| nnoremap <C-n> <C-w>l | ||||
|  | ||||
| " Account for tag jumping | ||||
| nnoremap <C-j> <C-t> | ||||
|  | ||||
| " Remappings for the D key | ||||
| noremap k d | ||||
| noremap K D | ||||
|  | ||||
| " Remappings for the T key | ||||
| noremap j t | ||||
| "noremap J T | ||||
|  | ||||
| " Remapping for the L key | ||||
| noremap l n | ||||
| noremap L N | ||||
|  | ||||
| " General purpose help; the originals remain for convenience | ||||
| noremap - 0 | ||||
| noremap _ $ | ||||
|  | ||||
| " Fold-related keybindings | ||||
| noremap zh zj | ||||
| noremap zt zk | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.7 MiB | 
| @@ -1,16 +0,0 @@ | ||||
| $clean_ext = "bbl run.xml eps-converted-to.pdf"; | ||||
| $pdf_mode = 1; | ||||
| $pdf_previewer = 'evince'; | ||||
| $latex = 'xetex -shell-escape'; | ||||
| $pdflatex = 'xelatex -shell-escape'; | ||||
|  | ||||
| add_cus_dep('glo', 'gls', 0, 'run_makeglossaries'); | ||||
| add_cus_dep('acn', 'acr', 0, 'run_makeglossaries'); | ||||
| sub run_makeglossaries { | ||||
|   if ( $silent ) { | ||||
|     system "makeglossaries -q '$_[0]'"; | ||||
|   } | ||||
|   else { | ||||
|     system "makeglossaries '$_[0]'"; | ||||
|   }; | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| [Default Applications] | ||||
|  | ||||
| # eog for images | ||||
| image/bmp=org.gnome.eog.desktop | ||||
| image/gif=org.gnome.eog.desktop | ||||
| image/jpeg=org.gnome.eog.desktop | ||||
| image/jpg=org.gnome.eog.desktop | ||||
| image/pjpeg=org.gnome.eog.desktop | ||||
| image/png=org.gnome.eog.desktop | ||||
| image/svg+xml-compressed=org.gnome.eog.desktop | ||||
| image/svg+xml=org.gnome.eog.desktop | ||||
| image/tiff=org.gnome.eog.desktop | ||||
| image/x-bmp=org.gnome.eog.desktop | ||||
| image/x-gray=org.gnome.eog.desktop | ||||
| image/x-icb=org.gnome.eog.desktop | ||||
| image/x-ico=org.gnome.eog.desktop | ||||
| image/x-png=org.gnome.eog.desktop | ||||
| image/x-portable-anymap=org.gnome.eog.desktop | ||||
| image/x-portable-bitmap=org.gnome.eog.desktop | ||||
| image/x-portable-graymap=org.gnome.eog.desktop | ||||
| image/x-portable-pixmap=org.gnome.eog.desktop | ||||
|  | ||||
| # evince for pdfs | ||||
| application/pdf=org.gnome.Evince.desktop | ||||
|  | ||||
| # vim for textual files | ||||
| application/x-shellscript=vim.desktop | ||||
| text/english=vim.desktop | ||||
| text/plain=vim.desktop | ||||
| text/x-makefile=vim.desktop | ||||
|  | ||||
| # Firefox for web/html | ||||
| text/html=firefox.desktop | ||||
| x-scheme-handler/about=firefox.desktop | ||||
| x-scheme-handler/http=firefox.desktop | ||||
| x-scheme-handler/https=firefox.desktop | ||||
| x-scheme-handler/unknown=firefox.desktop | ||||
|  | ||||
| # Various desktop applications | ||||
| inode/directory=nautilus.desktop | ||||
| x-scheme-handler/magnet=deluge.desktop | ||||
| x-scheme-handler/tg=telegramdesktop.desktop | ||||
| @@ -1,3 +0,0 @@ | ||||
| prefix=${XDG_DATA_HOME}/npm | ||||
| cache=${XDG_CACHE_HOME}/npm | ||||
| tmp=${XDG_RUNTIME_DIR}/npm | ||||
| @@ -1,41 +0,0 @@ | ||||
| [rc] | ||||
| RCVersion=1 | ||||
| use_copy=true | ||||
| use_primary=true | ||||
| synchronize=true | ||||
| save_history=true | ||||
| history_pos=false | ||||
| history_x=1 | ||||
| history_y=1 | ||||
| history_limit=25 | ||||
| data_size=0 | ||||
| item_size=5 | ||||
| automatic_paste=true | ||||
| auto_key=false | ||||
| auto_mouse=true | ||||
| key_input=true | ||||
| restore_empty=true | ||||
| rc_edit=false | ||||
| type_search=false | ||||
| case_search=false | ||||
| ignore_whiteonly=false | ||||
| trim_wspace_begend=false | ||||
| trim_newline=false | ||||
| hyperlinks_only=false | ||||
| confirm_clear=true | ||||
| current_on_top=true | ||||
| single_line=true | ||||
| reverse_history=false | ||||
| item_length=50 | ||||
| persistent_history=false | ||||
| persistent_separate=false | ||||
| persistent_on_top=false | ||||
| persistent_delim=\\n | ||||
| nonprint_disp=false | ||||
| ellipsize=2 | ||||
| multi_user=false | ||||
| icon_name=parcellite | ||||
| menu_key=<Ctrl><Alt>P | ||||
| history_key=<Ctrl><Alt>H | ||||
| phistory_key=<Ctrl><Alt>X | ||||
| actions_key=<Ctrl><Alt>A | ||||
							
								
								
									
										134
									
								
								picom/picom.conf
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								picom/picom.conf
									
									
									
									
									
								
							| @@ -1,134 +0,0 @@ | ||||
| # Logging | ||||
| log-level = "info"; | ||||
| #log-file = "/home/frebib/.local/share/picom.log"; | ||||
|  | ||||
| # Shadow | ||||
| shadow = true; | ||||
| shadow-radius = 30; | ||||
| shadow-offset-x = -30; | ||||
| shadow-offset-y = -26; | ||||
| shadow-opacity = 0.35; | ||||
| shadow-color = "#000000"; | ||||
| shadow-exclude = [ | ||||
| 	"class_g = 'slop'", | ||||
| 	"class_g = 'Conky'", | ||||
| 	"class_g ?= 'Notify-osd'", | ||||
| 	"class_g = 'firefox' && argb && (window_type = 'utility' || window_type = 'popup_menu')", | ||||
| 	"name = 'Notification'", | ||||
| 	"name = 'cpt_frame_window'", | ||||
| 	"_GTK_FRAME_EXTENTS@:c" | ||||
| ]; | ||||
| # shadow-exclude = "n:e:Notification"; | ||||
| # shadow-exclude-reg = "x10+0+0"; | ||||
| # shadow-ignore-shaped = true; | ||||
| xinerama-shadow-crop = true; | ||||
|  | ||||
| # Opacity | ||||
| frame-opacity = 1.0; | ||||
| active-opacity = 1.0; | ||||
| inactive-opacity = 0.5; | ||||
| inactive-opacity-override = true; | ||||
| # inactive-dim = 0.2; | ||||
| # inactive-dim-fixed = true; | ||||
| opacity-rule = [ | ||||
| 	"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" | ||||
| ]; | ||||
|  | ||||
| # Blurring | ||||
| blur: | ||||
| { | ||||
| 	method = "dual_kawase"; | ||||
| 	strength = 10; | ||||
| }; | ||||
| blur-background-frame = true; | ||||
| blur-background-fixed = true; | ||||
| blur-background-exclude = [ | ||||
| 	"class_g = 'Peek'", | ||||
| 	"class_g = 'Onboard'", | ||||
| 	"class_g = 'slop'", | ||||
| 	"class_g = 'Polybar'", | ||||
| 	"class_g = 'firefox' && argb && (window_type = 'utility' || window_type = 'popup_menu')", | ||||
| 	"window_type = 'dock'", | ||||
| 	"window_type = 'desktop'", | ||||
| 	"_GTK_FRAME_EXTENTS@:c", | ||||
| 	"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" | ||||
| ]; | ||||
|  | ||||
| # Corners | ||||
| corner-radius = 9; | ||||
|  | ||||
| # Fading | ||||
| fading = true; | ||||
| fade-delta = 10; | ||||
| fade-in-step = 0.035; | ||||
| fade-out-step = 0.06; | ||||
| no-fading-openclose = false; | ||||
| no-fading-destroyed-argb = false; | ||||
| # fade-exclude = [ ]; | ||||
|  | ||||
| # Focus | ||||
| focus-exclude = [ | ||||
| 	"i:ai:chromium", | ||||
| 	"class_g = 'firefox'", | ||||
| 	"class_g = 'zoom'", | ||||
| 	"class_g = 'guvcview'", | ||||
| 	"class_g = 'Entangle'", | ||||
| 	"class_g = 'obs'", | ||||
| 	"class_g = 'parsecd'", | ||||
| 	"class_g = 'discord'", | ||||
| 	"class_g = 'steam_app_271590'" | ||||
| ]; | ||||
|  | ||||
| # Other | ||||
| # https://github.com/yshui/picom/blob/next/picom.sample.conf#L203 | ||||
| backend = "glx"; | ||||
| vsync = true; | ||||
| mark-wmwin-focused = true; | ||||
| mark-ovredir-focused = true; | ||||
| detect-rounded-corners = true; | ||||
| detect-client-opacity = true; | ||||
| use-ewmh-active-win = true; | ||||
| # unredir-if-possible = true; | ||||
| # unredir-if-possible-delay = 5000; | ||||
| # unredir-if-possible-exclude = [ ]; | ||||
| detect-transient = true; | ||||
| detect-client-leader = true; | ||||
| invert-color-include = [ ]; | ||||
| resize-damage = 1; | ||||
|  | ||||
| # GLX backend | ||||
| glx-no-stencil = true; | ||||
| glx-no-rebind-pixmap = true; | ||||
| # xrender-sync-fence = true; | ||||
| # no-use-damage = false; | ||||
| use-damage = true; | ||||
|  | ||||
| # Window type settings | ||||
| wintypes: { | ||||
| 	tooltip = { | ||||
| 		opacity = 0.75; | ||||
| 		full-shadow = false; | ||||
| 		blur-background = false; | ||||
| 	} | ||||
|  | ||||
| 	dock = { | ||||
| 		# Prevents polybar getting a forehead-shadow | ||||
| 		shadow = false; | ||||
| 	} | ||||
|  | ||||
| 	dnd = { | ||||
| 		# Prevents dragged text in a browser getting blur/shadow | ||||
| 		shadow = false; | ||||
| 		blur-background = false; | ||||
| 	} | ||||
|  | ||||
| 	popup_menu = { | ||||
| 		opacity = 0.8; | ||||
| 	} | ||||
|  | ||||
| 	dropdown_menu = { | ||||
| 		opacity = 0.8; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| # vim: ft=conf noet | ||||
| @@ -1,319 +0,0 @@ | ||||
| [colours] | ||||
| background = #0000 | ||||
| text = #eceff1 | ||||
| icon = #147a82 | ||||
| warning = #ffcb00 | ||||
| critical = #bd2c40 | ||||
| urgent = #e53935 | ||||
|  | ||||
| [settings] | ||||
| format-foreground = ${colours.text} | ||||
| format-background = ${colours.background} | ||||
| format-spacing = 0 | ||||
| format-margin  = 3 | ||||
| format-offset  = 0 | ||||
|  | ||||
| screenchange-reload = true | ||||
|  | ||||
| [bar/i3bar] | ||||
| dpi  = ${xrdb:Xft.dpi:96} | ||||
| fixed-center = false | ||||
| enable-ipc = true | ||||
|  | ||||
| width = 100% | ||||
| height = 16pt | ||||
| bottom = true | ||||
| radius = 0 | ||||
|  | ||||
| font-0 = sans:pixelsize=9;2pt | ||||
| font-1 = FontAwesome6ProLight:pixelsize=10;2pt | ||||
|  | ||||
| foreground = ${colours.text} | ||||
| background = ${colours.background} | ||||
|  | ||||
| padding-left = 0 | ||||
| padding-right = 2pt | ||||
|  | ||||
| border-size = 0 | ||||
| border-left-size = 16pt | ||||
| border-right-size = 16pt | ||||
| border-bottom-size = 10pt | ||||
|  | ||||
| line-size = 0 | ||||
| line-colour = #f00 | ||||
|  | ||||
| modules-left = i3 | ||||
| modules-center = | ||||
| modules-right = volume updates weather wifi ethernet memory cpu cputemp backlight battery date | ||||
|  | ||||
| tray-position = right | ||||
| tray-detached = false | ||||
| tray-background = ${colours.background} | ||||
| #tray-offset-x = -20 | ||||
| #tray-offset-y = 0 | ||||
| tray-maxsize = 16pt | ||||
| tray-padding = 8pt | ||||
| tray-scale = 1.0 | ||||
|  | ||||
| cursor-click = pointer | ||||
| cursor-scroll = ns-resize | ||||
|  | ||||
|  | ||||
| [module/updates] | ||||
| type = custom/script | ||||
| exec = $XDG_CONFIG_HOME/polybar/update.sh | ||||
| tail = true | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
| click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -e sh -c "yay; kill -USR1 %pid%; sleep 1" | ||||
|  | ||||
| [module/weather] | ||||
| type = custom/script | ||||
| exec = $XDG_CONFIG_HOME/polybar/weather.sh | ||||
| interval = 120 | ||||
| click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 125 40 --hold -e sh -c "curl wttr.in" | ||||
|  | ||||
| [module/gateway] | ||||
| type = custom/script | ||||
| exec = for v in 4 6; do ip -$v r show default | xargs -rL1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}' | ||||
| interval = 2 | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
|  | ||||
| [module/xkeyboard] | ||||
| type = internal/xkeyboard | ||||
|  | ||||
| format = <label-layout> <label-indicator> | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
| format-prefix-underline = ${colours.background} | ||||
|  | ||||
| label-layout = %name% | ||||
| label-indicator = %name% | ||||
|  | ||||
|  | ||||
| [module/i3] | ||||
| type = internal/i3 | ||||
| format = <label-state> <label-mode> | ||||
| index-sort = true | ||||
| wrapping-scroll = false | ||||
|  | ||||
| ; Only show workspaces on the same output as the bar | ||||
| ; pin-workspaces = true | ||||
|  | ||||
| label-mode-padding = 2 | ||||
| label-mode-foreground = ${colours.text} | ||||
| label-mode-background = ${colours.background} | ||||
|  | ||||
| ; focused = Active workspace on focused monitor | ||||
| label-focused = %index% | ||||
| label-focused-padding = ${self.label-mode-padding} | ||||
| label-focused-foreground = ${colours.text} | ||||
| label-focused-background = ${colours.background} | ||||
| label-focused-underline = ${colours.background} | ||||
|  | ||||
| ; unfocused = Inactive workspace on any monitor | ||||
| label-unfocused = ${self.label-focused} | ||||
| label-unfocused-padding = ${self.label-focused-padding} | ||||
| label-unfocused-foreground= ${colours.icon} | ||||
| label-unfocused-underline = ${self.label-focused-underline} | ||||
|  | ||||
| ; visible = Active workspace on unfocused monitor | ||||
| label-visible = ${self.label-focused} | ||||
| label-visible-foreground= ${colours.icon} | ||||
| label-visible-padding = ${self.label-focused-padding} | ||||
| label-visible-background = ${self.label-focused-background} | ||||
| label-visible-underline = ${self.label-focused-underline} | ||||
|  | ||||
| ; urgent = Workspace with urgency hint set | ||||
| label-urgent = ${self.label-focused} | ||||
| label-urgent-foreground = ${colours.urgent} | ||||
| label-urgent-padding = ${self.label-focused-padding} | ||||
|  | ||||
|  | ||||
| [module/backlight] | ||||
| type = internal/backlight | ||||
| card = intel_backlight | ||||
|  | ||||
| label = %percentage% | ||||
| format = <label> | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
|  | ||||
|  | ||||
| [module/cpu] | ||||
| type = internal/cpu | ||||
| interval = 2 | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
| format-underline = ${colours.background} | ||||
| label = %percentage%% | ||||
|  | ||||
|  | ||||
| [module/memory] | ||||
| type = internal/memory | ||||
| interval = 2 | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
| label = %percentage_used%% | ||||
|  | ||||
|  | ||||
| [module/wifi] | ||||
| type = internal/network | ||||
| interface-type = wireless | ||||
| interval = 3.0 | ||||
|  | ||||
| format-connected = <ramp-signal>  <label-connected> | ||||
| format-connected-underline = ${colours.background} | ||||
| label-connected = %essid% | ||||
|  | ||||
| format-disconnected = | ||||
| ;format-disconnected = <label-disconnected> | ||||
| ;format-disconnected-underline = ${self.format-connected-underline} | ||||
| ;label-disconnected = %ifname% disconnected | ||||
| ;label-disconnected-foreground = ${colours.icon} | ||||
|  | ||||
| ramp-signal-0 =  | ||||
| ramp-signal-1 =  | ||||
| ramp-signal-2 =  | ||||
| ramp-signal-foreground = ${colours.icon} | ||||
|  | ||||
|  | ||||
| [module/ethernet] | ||||
| type = internal/network | ||||
| interface-type = wired | ||||
| interval = 10.0 | ||||
|  | ||||
| label-connected = %local_ip% & %local_ip6% | ||||
| format-connected-prefix = "  " | ||||
| format-connected-prefix-foreground = ${colours.icon} | ||||
| format-connected-underline = ${colours.background} | ||||
|  | ||||
| ;format-disconnected = RIP | ||||
| ;format-disconnected = <label-disconnected> | ||||
| ;format-disconnected-underline = ${self.format-connected-underline} | ||||
| ;label-disconnected = %ifname% disconnected | ||||
| label-disconnected-foreground = ${colours.critical} | ||||
|  | ||||
|  | ||||
| [module/date] | ||||
| type = internal/date | ||||
| interval = 1 | ||||
|  | ||||
| label = %{A3:systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 66 35 -qq --hold -e sh -c "cal -y $(date +%Y)":}%date% %time%%{A} | ||||
|  | ||||
| time = %H:%M | ||||
| time-alt = %a %e %b %Y %H:%M:%S | ||||
|  | ||||
| format-prefix = " " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
|  | ||||
|  | ||||
| [module/volume] | ||||
| type = internal/pulseaudio | ||||
|  | ||||
| label-volume = %percentage% | ||||
| format-volume = %{A3:systemd-run --user --no-block -- pavucontrol:}<ramp-volume>  <label-volume>%{A} | ||||
| format-muted = %{A3:systemd-run --user --no-block -- pavucontrol:}<label-muted>%{A} | ||||
|  | ||||
| label-volume-foreground = ${root.foreground} | ||||
| format-muted-foreground = ${colours.icon} | ||||
| ramp-volume-foreground  = ${colours.icon} | ||||
|  | ||||
| label-muted = "" | ||||
| ramp-volume-0 = "" | ||||
| ramp-volume-1 = "" | ||||
| ramp-volume-2 = "" | ||||
| ramp-volume-3 = "" | ||||
| ramp-volume-4 = "" | ||||
| ramp-volume-5 = "" | ||||
|  | ||||
|  | ||||
| [module/battery] | ||||
| type = internal/battery | ||||
| battery = BAT0 | ||||
| adapter = AC0 | ||||
| full-at = 98 | ||||
|  | ||||
| format-full = <label-full> | ||||
| format-charging = <label-charging> | ||||
| format-discharging = <ramp-capacity>  <label-discharging> | ||||
|  | ||||
| format-full-underline = ${self.format-charging-underline} | ||||
| format-charging-underline = ${colours.background} | ||||
| format-discharging-underline = ${self.format-charging-underline} | ||||
|  | ||||
| format-full-prefix = "  " | ||||
| format-charging-prefix = "  " | ||||
|  | ||||
| ramp-capacity-0 =  | ||||
| ramp-capacity-1 =  | ||||
| ramp-capacity-2 =  | ||||
| ramp-capacity-3 =  | ||||
| ramp-capacity-4 =  | ||||
|  | ||||
| format-full-prefix-foreground = ${colours.icon} | ||||
| format-charging-prefix-foreground = ${colours.icon} | ||||
| ramp-capacity-foreground = ${colours.icon} | ||||
| ramp-capacity-0-foreground = ${colours.critical} | ||||
| ramp-capacity-1-foreground = ${colours.warning} | ||||
|  | ||||
|  | ||||
| [module/cputemp] | ||||
| type = internal/temperature | ||||
| hwmon-path = /sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input | ||||
| base-temperature = 25 | ||||
|  | ||||
| format = <ramp>  <label> | ||||
| format-warn = <ramp>  <label-warn> | ||||
|  | ||||
| label = %temperature-c% | ||||
| label-warn = %temperature-c% | ||||
| label-warn-foreground = ${colours.background} | ||||
|  | ||||
| ramp-0 =  | ||||
| ramp-1 =  | ||||
| ramp-2 =  | ||||
| ramp-3 =  | ||||
| ramp-4 =  | ||||
| ramp-5 =  | ||||
| ramp-foreground = ${colours.icon} | ||||
|  | ||||
| [module/gputemp] | ||||
| type = custom/script | ||||
| exec = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | ||||
| interval = 10 | ||||
|  | ||||
| label = %output%°C | ||||
| format-prefix = "  " | ||||
| format-prefix-foreground = ${colours.icon} | ||||
|  | ||||
|  | ||||
| [module/powermenu] | ||||
| type = custom/menu | ||||
|  | ||||
| expand-right = true | ||||
|  | ||||
| label-open =  | ||||
| label-close = cancel | ||||
| label-separator = | | ||||
| label-open-foreground = ${colours.icon} | ||||
| label-close-foreground = ${colours.background} | ||||
| label-separator-foreground = ${colours.icon} | ||||
|  | ||||
| menu-0-0 = reboot | ||||
| menu-0-0-exec = menu-open-1 | ||||
| menu-0-1 = power off | ||||
| menu-0-1-exec = menu-open-2 | ||||
|  | ||||
| menu-1-0 = cancel | ||||
| menu-1-0-exec = menu-open-0 | ||||
| menu-1-1 = reboot | ||||
| menu-1-1-exec = sudo reboot | ||||
|  | ||||
| menu-2-0 = power off | ||||
| menu-2-0-exec = sudo poweroff | ||||
| menu-2-1 = cancel | ||||
| menu-2-1-exec = menu-open-0 | ||||
|  | ||||
| ; vim:ft=dosini | ||||
| @@ -1,11 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| dothething() { count=$( (checkupdates & yay -Qum) 2>/dev/null | wc -l); test $count -gt 0 && echo $count || echo; } | ||||
|  | ||||
| trap 'true' HUP USR1 | ||||
|  | ||||
| while true; do | ||||
|     dothething | ||||
|     sleep 120 & | ||||
|     wait | ||||
| done | ||||
| @@ -1,136 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| get_icon_day() { | ||||
|     case $1 in | ||||
|         210) echo  ;;		# light thunderstorm | ||||
|         211) echo  ;;		# thunderstorm | ||||
|         500) echo  ;;		# light rain | ||||
|         721) echo  ;;		# haze | ||||
|         800) echo  ;;		# clear sky | ||||
|         801) echo  ;;		# few clouds | ||||
|         802) echo  ;;		# scattered clouds | ||||
|         803) echo  ;;		# broken clouds | ||||
|         804) echo  ;;		# overcast clouds | ||||
|         *) return 1;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
| get_icon_night() { | ||||
|     case $1 in | ||||
|         210) echo  ;;		# light thunderstorm | ||||
|         211) echo  ;;		# thunderstorm | ||||
|         500) echo  ;;		# light rain | ||||
|         800) echo  ;;		# clear sky | ||||
|         801) echo  ;;		# few clouds | ||||
|         802) echo  ;;		# scattered clouds | ||||
|         803) echo  ;;		# broken clouds | ||||
|         804) echo  ;;		# overcast clouds | ||||
|         *) return 1;; | ||||
|     esac | ||||
|  | ||||
| } | ||||
|  | ||||
| get_icon() { | ||||
|     case $1 in | ||||
|         d) fn=get_icon_day;; | ||||
|         n) fn=get_icon_night;; | ||||
|     esac | ||||
|  | ||||
|     if $fn $2; then | ||||
|         return | ||||
|     fi | ||||
|  | ||||
|     case $2 in | ||||
|         200) echo  ;;		# thunderstorm with light rain | ||||
|         201) echo  ;;		# thunderstorm with rain | ||||
|         202) echo  ;;		# thunderstorm with heavy rain | ||||
|         210) echo  ;;		# light thunderstorm | ||||
|         211) echo  ;;		# thunderstorm | ||||
|         212) echo  ;;		# heavy thunderstorm | ||||
|         221) echo  ;;		# ragged thunderstorm | ||||
|         230) echo  ;;		# thunderstorm with light drizzle | ||||
|         231) echo  ;;		# thunderstorm with drizzle | ||||
|         232) echo  ;;		# thunderstorm with heavy drizzle | ||||
|         300) echo  ;;		# light intensity drizzle | ||||
|         301) echo  ;;		# drizzle | ||||
|         302) echo  ;;		# heavy intensity drizzle | ||||
|         310) echo  ;;		# light intensity drizzle rain | ||||
|         311) echo  ;;		# drizzle rain | ||||
|         312) echo  ;;		# heavy intensity drizzle rain | ||||
|         313) echo  ;;		# shower rain and drizzle | ||||
|         314) echo  ;;		# heavy shower rain and drizzle | ||||
|         321) echo  ;;		# shower drizzle | ||||
|         500) echo   ;; 	# light rain | ||||
|         501) echo  ;;		# moderate rain | ||||
|         502) echo  ;;		# heavy intensity rain | ||||
|         503) echo  ;;		# very heavy rain | ||||
|         504) echo  ;;		# extreme rain | ||||
|         511) echo  ;;		# freezing rain | ||||
|         520) echo  ;;		# light intensity shower rain | ||||
|         521) echo  ;;		# shower rain | ||||
|         522) echo  ;;		# heavy intensity shower rain | ||||
|         531) echo  ;;		# ragged shower rain | ||||
|         600) echo  ;;		# light snow | ||||
|         601) echo  ;;		# snow | ||||
|         602) echo  ;;		# heavy snow | ||||
|         611) echo  ;;		# sleet | ||||
|         612) echo  ;;		# shower sleet | ||||
|         615) echo  ;;		# light rain and snow | ||||
|         616) echo  ;;		# rain and snow | ||||
|         620) echo  ;;		# light shower snow | ||||
|         621) echo  ;;		# shower snow | ||||
|         622) echo  ;;		# heavy shower snow | ||||
|         701) echo  ;;		# mist | ||||
|         711) echo  ;;		# smoke | ||||
|         721) echo  ;;		# haze | ||||
|         741) echo  ;;		# fog | ||||
|         762) echo  ;;		# volcanic ash | ||||
|         781) echo  ;;		# tornado | ||||
|         # 731) echo  ;;		# sand, dust whirls | ||||
|         # 751) echo  ;;		# sand | ||||
|         # 761) echo  ;;		# dust | ||||
|         # 771) echo  ;;		# squalls | ||||
|         *) echo  ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
| KEY="$OPENWEATHERMAP_API_KEY" | ||||
| CITY="" | ||||
| UNITS="metric" | ||||
|  | ||||
| SYMBOL="°" | ||||
| ICON_COL="147a82" | ||||
|  | ||||
| API="https://api.openweathermap.org/data/2.5" | ||||
|  | ||||
| if [ ! -z $CITY ]; then | ||||
|     if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then | ||||
|         CITY_PARAM="id=$CITY" | ||||
|     else | ||||
|         CITY_PARAM="q=$CITY" | ||||
|     fi | ||||
|  | ||||
|     weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS") | ||||
| else | ||||
|     location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue) | ||||
|  | ||||
|     if [ ! -z "$location" ]; then | ||||
|         location_lat="$(echo "$location" | jq '.location.lat')" | ||||
|         location_lon="$(echo "$location" | jq '.location.lng')" | ||||
|  | ||||
|         weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS") | ||||
|     else | ||||
|         echo "%{F#$ICON_COL}%{F-}" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| if [ ! -z "$weather" ]; then | ||||
|     # weather_desc=$(echo "$weather" | jq -r ".weather[0].description") | ||||
|     weather_temp=$(echo "$weather" | jq '.main.temp' | cut -d "." -f 1) | ||||
|     weather_code=$(echo "$weather" | jq -r '.weather[0].id') | ||||
|     time_of_day=$(echo "$weather" | jq -r '.weather[0].icon | split("") | last') | ||||
|  | ||||
|     icon=$(get_icon "$time_of_day" "$weather_code") | ||||
|  | ||||
|     echo "%{F#$ICON_COL}$icon%{F-}  $weather_temp$SYMBOL" | ||||
| fi | ||||
							
								
								
									
										16
									
								
								procps/toprc
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								procps/toprc
									
									
									
									
									
								
							| @@ -1,16 +0,0 @@ | ||||
| top's Config File (Linux processes with windows) | ||||
| Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.500, Curwin=0 | ||||
| Def	fieldscur=<3D>&K<><4B><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>56<35>F<EFBFBD>')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij | ||||
| 	winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1 | ||||
| 	summclr=1, msgsclr=1, headclr=3, taskclr=1 | ||||
| Job	fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD>(<28><>Ļ<EFBFBD>@<<3C><>)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij | ||||
| 	winflags=163124, sortindx=0, maxtasks=0, graph_cpus=2, graph_mems=0 | ||||
| 	summclr=6, msgsclr=6, headclr=7, taskclr=6 | ||||
| Mem	fieldscur=<3D><><EFBFBD><<3C><><EFBFBD><EFBFBD><EFBFBD>MBN<42>D34<33><34>&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij | ||||
| 	winflags=163124, sortindx=21, maxtasks=0, graph_cpus=2, graph_mems=0 | ||||
| 	summclr=5, msgsclr=5, headclr=4, taskclr=5 | ||||
| Usr	fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij | ||||
| 	winflags=163124, sortindx=3, maxtasks=0, graph_cpus=2, graph_mems=0 | ||||
| 	summclr=3, msgsclr=3, headclr=2, taskclr=3 | ||||
| Fixed_widest=0, Summ_mscale=2, Task_mscale=1, Zero_suppress=0 | ||||
|  | ||||
| @@ -1,24 +0,0 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import atexit | ||||
| import os | ||||
| import readline | ||||
|  | ||||
| xdg_cache_home = os.environ['XDG_CACHE_HOME'] | ||||
|  | ||||
| if xdg_cache_home is None or xdg_cache_home == "": | ||||
|     xdg_cache_home = os.path.join(os.path.expanduser("~"), ".cache") | ||||
|  | ||||
| python_cache_dir = os.path.join(xdg_cache_home, "python") | ||||
| if not os.path.isdir(python_cache_dir): | ||||
|     os.mkdir(python_cache_dir) | ||||
|  | ||||
| histfile = os.path.join(python_cache_dir, "history") | ||||
|  | ||||
| try: | ||||
|     readline.read_history_file(histfile) | ||||
|     readline.set_history_length(10000) | ||||
| except FileNotFoundError: | ||||
|     pass | ||||
|  | ||||
| atexit.register(readline.write_history_file, histfile) | ||||
| @@ -1,27 +0,0 @@ | ||||
| [Appearance] | ||||
| color_scheme_path=/usr/share/qt5ct/colors/airy.conf | ||||
| custom_palette=false | ||||
| standard_dialogs=gtk2 | ||||
| style=gtk2 | ||||
|  | ||||
| [Fonts] | ||||
| fixed=@Variant(\0\0\0@\0\0\0\x12\0M\0o\0n\0o\0s\0p\0\x61\0\x63\0\x65@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) | ||||
| general=@Variant(\0\0\0@\0\0\0\x14\0S\0\x61\0n\0s\0 \0S\0\x65\0r\0i\0\x66@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) | ||||
|  | ||||
| [Interface] | ||||
| activate_item_on_single_click=1 | ||||
| buttonbox_layout=3 | ||||
| cursor_flash_time=1000 | ||||
| dialog_buttons_have_icons=1 | ||||
| double_click_interval=400 | ||||
| gui_effects=@Invalid() | ||||
| keyboard_scheme=2 | ||||
| menus_have_icons=true | ||||
| show_shortcuts_in_context_menus=true | ||||
| stylesheets=@Invalid() | ||||
| toolbutton_style=4 | ||||
| underline_shortcut=1 | ||||
| wheel_scroll_lines=3 | ||||
|  | ||||
| [SettingsWindow] | ||||
| geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\0\x1\0\0\0\0\a\x80\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8) | ||||
| @@ -1,42 +0,0 @@ | ||||
| * { | ||||
|   background-color: transparent; | ||||
|   text-color:       #D3DAE3; | ||||
|   border-color:     @text-color; | ||||
| } | ||||
|  | ||||
| window { | ||||
|   border:           0.3em; | ||||
|   border-color:     #2f343f; | ||||
|   padding:          0.8em; | ||||
|   background-color: rgba(56, 60, 74, 0.9); | ||||
|   transparency:     "real"; | ||||
| } | ||||
|  | ||||
| inputbar { | ||||
|   padding:          0 0 0.3em; | ||||
|   border:           0 0 0.1em; | ||||
| } | ||||
| prompt { | ||||
|   padding:          0 0.4em 0 0.2em; | ||||
| } | ||||
|  | ||||
| listview { | ||||
|   padding:          0.3em 0; | ||||
| } | ||||
| element { | ||||
|   padding:          0.1em 0.2em; | ||||
| } | ||||
|  | ||||
| button { | ||||
|   border:           0 0 0.1em; | ||||
|   border-color:     transparent; | ||||
| } | ||||
| button.selected.normal { | ||||
|   border-color:     @text-color; | ||||
| } | ||||
|  | ||||
| element.selected.normal { | ||||
|   background-color: rgb(64, 132, 214); | ||||
| } | ||||
|  | ||||
| /* vim: ft=css sw=2 */ | ||||
							
								
								
									
										153
									
								
								rofi/config.rasi
									
									
									
									
									
								
							
							
						
						
									
										153
									
								
								rofi/config.rasi
									
									
									
									
									
								
							| @@ -1,153 +0,0 @@ | ||||
| configuration { | ||||
|   font: "sans 14"; | ||||
|   dpi: 0; | ||||
|  | ||||
|   /* show-icons: true; */ | ||||
|   separator-style: "solid"; | ||||
|   modi: "window,run,ssh"; | ||||
|   kb-row-tab: "Shift-Tab"; | ||||
|   kb-row-select: "Tab"; | ||||
|   terminal: "i3-sensible-terminal"; | ||||
|  | ||||
|   matching: "glob"; | ||||
|   tokenize: true; | ||||
|  | ||||
| /*  columns: 1;*/ | ||||
| /*  bw: 1;*/ | ||||
| /*  location: 0;*/ | ||||
| /*  padding: 5;*/ | ||||
| /*  yoffset: 0;*/ | ||||
| /*  xoffset: 0;*/ | ||||
| /*  fixed-num-lines: true;*/ | ||||
| /*  ssh-client: "ssh";*/ | ||||
| /*  ssh-command: "{terminal} -e {ssh-client} {host}";*/ | ||||
| /*  run-command: "{cmd}";*/ | ||||
| /*  run-list-command: "";*/ | ||||
| /*  run-shell-command: "{terminal} -e {cmd}";*/ | ||||
| /*  window-command: "xkill -id {window}";*/ | ||||
| /*  window-match-fields: "all";*/ | ||||
| /*  drun-icon-theme: ;*/ | ||||
| /*  drun-match-fields: "name,generic,exec,categories";*/ | ||||
| /*  disable-history: false;*/ | ||||
| /*  sort: false;*/ | ||||
| /*  levenshtein-sort: false;*/ | ||||
| /*  case-sensitive: false;*/ | ||||
| /*  cycle: true;*/ | ||||
| /*  sidebar-mode: false;*/ | ||||
| /*  eh: 1;*/ | ||||
| /*  auto-select: false;*/ | ||||
| /*  parse-hosts: false;*/ | ||||
| /*  parse-known-hosts: true;*/ | ||||
| /*  combi-modi: "window,run";*/ | ||||
| /*  m: "-5";*/ | ||||
| /*  line-margin: 2;*/ | ||||
| /*  line-padding: 1;*/ | ||||
| /*  filter: ;*/ | ||||
| /*  hide-scrollbar: false;*/ | ||||
| /*  fullscreen: false;*/ | ||||
| /*  fake-transparency: false;*/ | ||||
| /*  dpi: -1;*/ | ||||
| /*  threads: 0;*/ | ||||
| /*  scrollbar-width: 8;*/ | ||||
| /*  scroll-method: 0;*/ | ||||
| /*  fake-background: "screenshot";*/ | ||||
| /*  window-format: "{w}    {i}{c}   {t}";*/ | ||||
| /*  click-to-exit: true;*/ | ||||
| /*  show-match: true;*/ | ||||
| /*  color-normal: ;*/ | ||||
| /*  color-urgent: ;*/ | ||||
| /*  color-active: ;*/ | ||||
| /*  color-window: ;*/ | ||||
| /*  max-history-size: 25;*/ | ||||
| /*  combi-hide-mode-prefix: false;*/ | ||||
| /*  pid: "/run/user/1000/rofi.pid";*/ | ||||
| /*  display-window: ;*/ | ||||
| /*  display-windowcd: ;*/ | ||||
| /*  display-run: ;*/ | ||||
| /*  display-ssh: ;*/ | ||||
| /*  display-drun: ;*/ | ||||
| /*  display-combi: ;*/ | ||||
| /*  display-keys: ;*/ | ||||
| /*  kb-primary-paste: "Control+V,Shift+Insert";*/ | ||||
| /*  kb-secondary-paste: "Control+v,Insert";*/ | ||||
| /*  kb-clear-line: "Control+w";*/ | ||||
| /*  kb-move-front: "Control+a";*/ | ||||
| /*  kb-move-end: "Control+e";*/ | ||||
| /*  kb-move-word-back: "Alt+b";*/ | ||||
| /*  kb-move-word-forward: "Alt+f";*/ | ||||
| /*  kb-move-char-back: "Left,Control+b";*/ | ||||
| /*  kb-move-char-forward: "Right,Control+f";*/ | ||||
| /*  kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ | ||||
| /*  kb-remove-word-forward: "Control+Alt+d";*/ | ||||
| /*  kb-remove-char-forward: "Delete,Control+d";*/ | ||||
| /*  kb-remove-char-back: "BackSpace,Control+h";*/ | ||||
| /*  kb-remove-to-eol: "Control+k";*/ | ||||
| /*  kb-remove-to-sol: "Control+u";*/ | ||||
| /*  kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ | ||||
| /*  kb-accept-custom: "Control+Return";*/ | ||||
| /*  kb-accept-alt: "Shift+Return";*/ | ||||
| /*  kb-delete-entry: "Shift+Delete";*/ | ||||
| /*  kb-mode-next: "Shift+Right,Control+Tab";*/ | ||||
| /*  kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ | ||||
| /*  kb-row-left: "Control+Page_Up";*/ | ||||
| /*  kb-row-right: "Control+Page_Down";*/ | ||||
| /*  kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ | ||||
| /*  kb-row-down: "Down,Control+n";*/ | ||||
| /*  kb-page-prev: "Page_Up";*/ | ||||
| /*  kb-page-next: "Page_Down";*/ | ||||
| /*  kb-row-first: "Home,KP_Home";*/ | ||||
| /*  kb-row-last: "End,KP_End";*/ | ||||
| /*  kb-screenshot: "Alt+S";*/ | ||||
| /*  kb-toggle-case-sensitivity: "grave,dead_grave";*/ | ||||
| /*  kb-toggle-sort: "Alt+grave";*/ | ||||
| /*  kb-cancel: "Escape,Control+g,Control+bracketleft";*/ | ||||
| /*  kb-custom-1: "Alt+1";*/ | ||||
| /*  kb-custom-2: "Alt+2";*/ | ||||
| /*  kb-custom-3: "Alt+3";*/ | ||||
| /*  kb-custom-4: "Alt+4";*/ | ||||
| /*  kb-custom-5: "Alt+5";*/ | ||||
| /*  kb-custom-6: "Alt+6";*/ | ||||
| /*  kb-custom-7: "Alt+7";*/ | ||||
| /*  kb-custom-8: "Alt+8";*/ | ||||
| /*  kb-custom-9: "Alt+9";*/ | ||||
| /*  kb-custom-10: "Alt+0";*/ | ||||
| /*  kb-custom-11: "Alt+exclam";*/ | ||||
| /*  kb-custom-12: "Alt+at";*/ | ||||
| /*  kb-custom-13: "Alt+numbersign";*/ | ||||
| /*  kb-custom-14: "Alt+dollar";*/ | ||||
| /*  kb-custom-15: "Alt+percent";*/ | ||||
| /*  kb-custom-16: "Alt+dead_circumflex";*/ | ||||
| /*  kb-custom-17: "Alt+ampersand";*/ | ||||
| /*  kb-custom-18: "Alt+asterisk";*/ | ||||
| /*  kb-custom-19: "Alt+parenleft";*/ | ||||
| /*  kb-select-1: "Super+1";*/ | ||||
| /*  kb-select-2: "Super+2";*/ | ||||
| /*  kb-select-3: "Super+3";*/ | ||||
| /*  kb-select-4: "Super+4";*/ | ||||
| /*  kb-select-5: "Super+5";*/ | ||||
| /*  kb-select-6: "Super+6";*/ | ||||
| /*  kb-select-7: "Super+7";*/ | ||||
| /*  kb-select-8: "Super+8";*/ | ||||
| /*  kb-select-9: "Super+9";*/ | ||||
| /*  kb-select-10: "Super+0";*/ | ||||
| /*  ml-row-left: "ScrollLeft";*/ | ||||
| /*  ml-row-right: "ScrollRight";*/ | ||||
| /*  ml-row-up: "ScrollUp";*/ | ||||
| /*  ml-row-down: "ScrollDown";*/ | ||||
| /*  me-select-entry: "MousePrimary";*/ | ||||
| /*  me-accept-entry: "MouseDPrimary";*/ | ||||
| /*  me-accept-custom: "Control+MouseDPrimary";*/ | ||||
| } | ||||
|  | ||||
| @theme "arc-dark" | ||||
|  | ||||
| window { | ||||
| 	width: 700; | ||||
| } | ||||
|  | ||||
| listview { | ||||
| 	lines: 10; | ||||
| 	columns: 1; | ||||
| } | ||||
|  | ||||
| /* vim: ft=css sw=2 */ | ||||
| @@ -10,3 +10,5 @@ xrandr --output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate no | ||||
|        --output $TOP_LEFT --mode 1920x1080 --pos 0x0 --rotate inverted \ | ||||
|        --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \ | ||||
|        --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal | ||||
|  | ||||
| [ -e ~/.fehbg ] && ~/.fehbg | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user