mirror of
				https://github.com/frebib/dotfiles.git
				synced 2024-06-14 12:57:23 +00:00 
			
		
		
		
	Compare commits
	
		
			23 Commits
		
	
	
		
			f247802bda
			...
			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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Graphical-specific environment variables
 | 
					 | 
				
			||||||
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 QT_STYLE_OVERRIDE=gtk2
 | 
					 | 
				
			||||||
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load Xorg resources and set the DPI
 | 
					 | 
				
			||||||
xrdb -merge $XDG_CONFIG_HOME/X11/xresources
 | 
					 | 
				
			||||||
xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
setxkbmap -option caps:none
 | 
					 | 
				
			||||||
xset r rate 200 18
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Merge system clipboards
 | 
					 | 
				
			||||||
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
 | 
					 | 
				
			||||||
    autocutsel -fork
 | 
					 | 
				
			||||||
    autocutsel -selection PRIMARY -fork
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,89 +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.theme: Breeze_Obsidian
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
!!======================!!
 | 
					 | 
				
			||||||
!! RXVT-unicode setting !!
 | 
					 | 
				
			||||||
!!======================!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.depth:                32
 | 
					 | 
				
			||||||
urxvt.internalBorder:       16
 | 
					 | 
				
			||||||
urxvt.blurRadius:           25
 | 
					 | 
				
			||||||
urxvt.saveLines:            10000
 | 
					 | 
				
			||||||
urxvt.preeditType:          Root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.scrollBar:            false
 | 
					 | 
				
			||||||
urxvt.jumpScroll:           false
 | 
					 | 
				
			||||||
urxvt.scrollTtyOutput:      false
 | 
					 | 
				
			||||||
urxvt.scrollWithBuffer:     true
 | 
					 | 
				
			||||||
urxvt.scrollTtyKeypress:    true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.altSendsEscape:       true
 | 
					 | 
				
			||||||
xterm.metaSendsEscape:      true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.termName:             xterm-256color
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.font:                 xft:Source Code Pro:style=regular:size=9
 | 
					 | 
				
			||||||
urxvt.imFont:               xft:Source Code Pro:style=regular:size=9
 | 
					 | 
				
			||||||
urxvt.boldFont:             xft:Source Code Pro:style=bold:size=9
 | 
					 | 
				
			||||||
urxvt.italicFont:           xft:Source Code Pro:style=italic:size=9
 | 
					 | 
				
			||||||
urxvt.boldItalicFont:       xft:Source Code Pro:style=bold,italic:size=9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.iso14755:             false
 | 
					 | 
				
			||||||
urxvt.iso14755_52:          false
 | 
					 | 
				
			||||||
urxvt.perl-ext-common:      default,vtwheel,font-size
 | 
					 | 
				
			||||||
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-equal:       font-size:reset
 | 
					 | 
				
			||||||
urxvt.keysym.C-slash:       font-size:show
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! special
 | 
					 | 
				
			||||||
*.foreground:               #ECEFF1
 | 
					 | 
				
			||||||
*.background:               #002B36
 | 
					 | 
				
			||||||
*.cursorColor:              #5294E2
 | 
					 | 
				
			||||||
*.highlightColor:           #5294E2
 | 
					 | 
				
			||||||
urxvt.background:           [95]#383C4A
 | 
					 | 
				
			||||||
urxvt.scrollColor:          #767B87
 | 
					 | 
				
			||||||
urxvt.dynamicColors:        on
 | 
					 | 
				
			||||||
urxvt.highlightSelection:   true
 | 
					 | 
				
			||||||
urxvt.colorMode:            on
 | 
					 | 
				
			||||||
@@ -1,467 +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: 80
 | 
					 | 
				
			||||||
    lines: 24
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # 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: 15
 | 
					 | 
				
			||||||
    y: 15
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Window decorations
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # Values for `decorations`:
 | 
					 | 
				
			||||||
  #     - full: Borders and title bar
 | 
					 | 
				
			||||||
  #     - none: Neither borders nor title bar
 | 
					 | 
				
			||||||
  decorations: full
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scrolling:
 | 
					 | 
				
			||||||
  # Maximum number of lines in the scrollback buffer.
 | 
					 | 
				
			||||||
  # Specifying '0' will disable scrolling.
 | 
					 | 
				
			||||||
  history: 10000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Number of lines the viewport will move for every line scrolled when
 | 
					 | 
				
			||||||
  # scrollback is enabled (history > 0).
 | 
					 | 
				
			||||||
  multiplier: 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Faux Scrolling
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # The `faux_multiplier` setting controls the number of lines the terminal
 | 
					 | 
				
			||||||
  # should scroll when the alternate screen buffer is active. This is used
 | 
					 | 
				
			||||||
  # to allow mouse scrolling for applications like `man`.
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # Specifying `0` will disable faux scrolling.
 | 
					 | 
				
			||||||
  faux_multiplier: 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Scroll to the bottom when new text is written to the terminal.
 | 
					 | 
				
			||||||
  auto_scroll: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Spaces per Tab (changes require restart)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This setting defines the width of a tab in cells.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Some applications, like Emacs, rely on knowing about the width of a tab.
 | 
					 | 
				
			||||||
# To prevent unexpected behavior in these applications, it's also required to
 | 
					 | 
				
			||||||
# change the `it` value in terminfo when altering this setting.
 | 
					 | 
				
			||||||
tabspaces: 8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Font configuration (changes require restart)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Important font attributes like antialiasing, subpixel aa, and hinting can be
 | 
					 | 
				
			||||||
# controlled through fontconfig. Specifically, the following attributes should
 | 
					 | 
				
			||||||
# have an effect:
 | 
					 | 
				
			||||||
#   - hintstyle
 | 
					 | 
				
			||||||
#   - antialias
 | 
					 | 
				
			||||||
#   - lcdfilter
 | 
					 | 
				
			||||||
#   - rgba
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# For instance, if you wish to disable subpixel antialiasing, you might set the
 | 
					 | 
				
			||||||
# rgba property to `none`. If you wish to completely disable antialiasing, you
 | 
					 | 
				
			||||||
# can set antialias to `false`.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Please see these resources for more information on how to use fontconfig:
 | 
					 | 
				
			||||||
#   - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
 | 
					 | 
				
			||||||
#   - file:///usr/share/doc/fontconfig/fontconfig-user.html
 | 
					 | 
				
			||||||
font:
 | 
					 | 
				
			||||||
  # Normal (roman) font face
 | 
					 | 
				
			||||||
  normal:
 | 
					 | 
				
			||||||
    family: monospace
 | 
					 | 
				
			||||||
    # The `style` can be specified to pick a specific face.
 | 
					 | 
				
			||||||
    # style: Regular
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Bold font face
 | 
					 | 
				
			||||||
  bold:
 | 
					 | 
				
			||||||
    family: monospace
 | 
					 | 
				
			||||||
    # The `style` can be specified to pick a specific face.
 | 
					 | 
				
			||||||
    # style: Bold
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Italic font face
 | 
					 | 
				
			||||||
  italic:
 | 
					 | 
				
			||||||
    family: monospace
 | 
					 | 
				
			||||||
    # The `style` can be specified to pick a specific face.
 | 
					 | 
				
			||||||
    # style: 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Display the time it takes to redraw each frame.
 | 
					 | 
				
			||||||
render_timer: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# If `true`, bold text is drawn using the bright color variants.
 | 
					 | 
				
			||||||
draw_bold_text_with_bright_colors: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
colors:
 | 
					 | 
				
			||||||
  # Default colors
 | 
					 | 
				
			||||||
  primary:
 | 
					 | 
				
			||||||
    foreground: '0xeceff1'
 | 
					 | 
				
			||||||
    background: '0x383c4a'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # 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: '0x9a9a9a'
 | 
					 | 
				
			||||||
    #bright_foreground: '0xffffff'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Cursor colors
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # These will only be used when the `custom_cursor_colors` field is set to `true`.
 | 
					 | 
				
			||||||
  cursor:
 | 
					 | 
				
			||||||
    text:       '0xeceff1'
 | 
					 | 
				
			||||||
    cursor:     '0x5294e2'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Normal colors
 | 
					 | 
				
			||||||
  normal:
 | 
					 | 
				
			||||||
    black:      '0x333638'
 | 
					 | 
				
			||||||
    red:        '0xf41f1c'
 | 
					 | 
				
			||||||
    green:      '0x8bc34a'
 | 
					 | 
				
			||||||
    yellow:     '0xffc107'
 | 
					 | 
				
			||||||
    blue:       '0x0266f4'
 | 
					 | 
				
			||||||
    magenta:    '0xcc17cc'
 | 
					 | 
				
			||||||
    cyan:       '0x10aeba'
 | 
					 | 
				
			||||||
    white:      '0x8b9396'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Bright colors
 | 
					 | 
				
			||||||
  bright:
 | 
					 | 
				
			||||||
    black:      '0x475760'
 | 
					 | 
				
			||||||
    red:        '0xe53727'
 | 
					 | 
				
			||||||
    green:      '0x9ccc65'
 | 
					 | 
				
			||||||
    yellow:     '0xffa000'
 | 
					 | 
				
			||||||
    blue:       '0x81b3f9'
 | 
					 | 
				
			||||||
    magenta:    '0xa56ecc'
 | 
					 | 
				
			||||||
    cyan:       '0x5ddae2'
 | 
					 | 
				
			||||||
    white:      '0xeceff1'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Indexed Colors
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # The indexed colors include all colors from 16 to 256.
 | 
					 | 
				
			||||||
  # When these are not set, they're filled with sensible defaults.
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  #indexed_colors:
 | 
					 | 
				
			||||||
  #  - { index: 16, color: '0x000000' }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
background_opacity: 0.95
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Mouse bindings
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Available fields:
 | 
					 | 
				
			||||||
#   - mouse
 | 
					 | 
				
			||||||
#   - action
 | 
					 | 
				
			||||||
#   - mods (optional)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `mouse`:
 | 
					 | 
				
			||||||
#   - Middle
 | 
					 | 
				
			||||||
#   - Left
 | 
					 | 
				
			||||||
#   - Right
 | 
					 | 
				
			||||||
#   - Numeric identifier such as `5`
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# All available `mods` and `action` values are documented in the key binding
 | 
					 | 
				
			||||||
# section.
 | 
					 | 
				
			||||||
mouse_bindings:
 | 
					 | 
				
			||||||
  - { mouse: Middle, action: PasteSelection }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  url:
 | 
					 | 
				
			||||||
    # URL launcher
 | 
					 | 
				
			||||||
    #
 | 
					 | 
				
			||||||
    # This program is executed when clicking on a text which is recognized as a URL.
 | 
					 | 
				
			||||||
    # The URL is always added to the command as the last parameter.
 | 
					 | 
				
			||||||
    launcher: xdg-open
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # URL modifiers
 | 
					 | 
				
			||||||
    #
 | 
					 | 
				
			||||||
    # These are the modifiers that need to be held down for opening URLs when clicking
 | 
					 | 
				
			||||||
    # on them. The available modifiers are documented in the key binding section.
 | 
					 | 
				
			||||||
    #modifiers: Control|Shift
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
selection:
 | 
					 | 
				
			||||||
  semantic_escape_chars: ",│`|:\"' ()[]{}<>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # When set to `true`, selected text will be copied to both the primary and
 | 
					 | 
				
			||||||
  # the selection clipboard. Otherwise, it will only be copied to the selection
 | 
					 | 
				
			||||||
  # clipboard.
 | 
					 | 
				
			||||||
  save_to_clipboard: false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dynamic_title: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cursor:
 | 
					 | 
				
			||||||
  # Cursor style
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # Values for 'style':
 | 
					 | 
				
			||||||
  #   - ▇ Block
 | 
					 | 
				
			||||||
  #   - _ Underline
 | 
					 | 
				
			||||||
  #   - | Beam
 | 
					 | 
				
			||||||
  style: Block
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # 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.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#shell:
 | 
					 | 
				
			||||||
#  program: /bin/bash
 | 
					 | 
				
			||||||
#  args:
 | 
					 | 
				
			||||||
#    - --login
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Key bindings
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Key bindings are specified as a list of objects. Each binding will specify
 | 
					 | 
				
			||||||
# a key and modifiers required to trigger it, terminal modes where the binding
 | 
					 | 
				
			||||||
# is applicable, and what should be done when the key binding fires. It can
 | 
					 | 
				
			||||||
# either send a byte sequnce to the running application (`chars`), execute
 | 
					 | 
				
			||||||
# a predefined action (`action`) or fork and execute a specified command plus
 | 
					 | 
				
			||||||
# arguments (`command`).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   `- { key: V, mods: Command, action: Paste }`
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Available fields:
 | 
					 | 
				
			||||||
#   - key
 | 
					 | 
				
			||||||
#   - mods (optional)
 | 
					 | 
				
			||||||
#   - chars | action | command (exactly one required)
 | 
					 | 
				
			||||||
#   - mode (optional)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `key`:
 | 
					 | 
				
			||||||
#   - `A` -> `Z`
 | 
					 | 
				
			||||||
#   - `F1` -> `F12`
 | 
					 | 
				
			||||||
#   - `Key1` -> `Key0`
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   A full list with available key codes can be found here:
 | 
					 | 
				
			||||||
#   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `mods`:
 | 
					 | 
				
			||||||
#   - Command
 | 
					 | 
				
			||||||
#   - Control
 | 
					 | 
				
			||||||
#   - Shift
 | 
					 | 
				
			||||||
#   - Alt
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
 | 
					 | 
				
			||||||
#   Whitespace and capitalization is relevant and must match the example.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `chars`:
 | 
					 | 
				
			||||||
#   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.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `action`:
 | 
					 | 
				
			||||||
#   - Paste
 | 
					 | 
				
			||||||
#   - PasteSelection
 | 
					 | 
				
			||||||
#   - Copy
 | 
					 | 
				
			||||||
#   - IncreaseFontSize
 | 
					 | 
				
			||||||
#   - DecreaseFontSize
 | 
					 | 
				
			||||||
#   - ResetFontSize
 | 
					 | 
				
			||||||
#   - ScrollPageUp
 | 
					 | 
				
			||||||
#   - ScrollPageDown
 | 
					 | 
				
			||||||
#   - ScrollToTop
 | 
					 | 
				
			||||||
#   - ScrollToBottom
 | 
					 | 
				
			||||||
#   - ClearHistory
 | 
					 | 
				
			||||||
#   - Hide
 | 
					 | 
				
			||||||
#   - Quit
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `command`:
 | 
					 | 
				
			||||||
#   The `command` field must be a map containing a `program` string and
 | 
					 | 
				
			||||||
#   an `args` array of command line parameter strings.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Example:
 | 
					 | 
				
			||||||
#       `command: { program: "alacritty", args: ["-e", "vttest"] }`
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Values for `mode`:
 | 
					 | 
				
			||||||
#   - ~AppCursor
 | 
					 | 
				
			||||||
#   - AppCursor
 | 
					 | 
				
			||||||
#   - ~AppKeypad
 | 
					 | 
				
			||||||
#   - AppKeypad
 | 
					 | 
				
			||||||
key_bindings:
 | 
					 | 
				
			||||||
  - { key: V,        mods: Control|Shift,    action: Paste               }
 | 
					 | 
				
			||||||
  - { key: C,        mods: Control|Shift,    action: Copy                }
 | 
					 | 
				
			||||||
  - { key: Paste,                   action: Paste                        }
 | 
					 | 
				
			||||||
  - { key: Copy,                    action: Copy                         }
 | 
					 | 
				
			||||||
  - { key: Q,        mods: Command, action: Quit                         }
 | 
					 | 
				
			||||||
  - { key: W,        mods: Command, action: Quit                         }
 | 
					 | 
				
			||||||
  - { key: Insert,   mods: Shift,   action: PasteSelection               }
 | 
					 | 
				
			||||||
  - { key: Key0,     mods: Control, action: ResetFontSize                }
 | 
					 | 
				
			||||||
  - { key: Equals,   mods: Control, action: IncreaseFontSize             }
 | 
					 | 
				
			||||||
  - { key: Subtract, mods: Control, action: DecreaseFontSize             }
 | 
					 | 
				
			||||||
  - { key: Home,                    chars: "\x1bOH",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: Home,                    chars: "\x1b[H",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: End,                     chars: "\x1bOF",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: End,                     chars: "\x1b[F",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~"                   }
 | 
					 | 
				
			||||||
  - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                   }
 | 
					 | 
				
			||||||
  - { key: PageUp,                  chars: "\x1b[5~"                     }
 | 
					 | 
				
			||||||
  - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~"                   }
 | 
					 | 
				
			||||||
  - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                   }
 | 
					 | 
				
			||||||
  - { key: PageDown,                chars: "\x1b[6~"                     }
 | 
					 | 
				
			||||||
  - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                      }
 | 
					 | 
				
			||||||
  - { key: Back,                    chars: "\x7f"                        }
 | 
					 | 
				
			||||||
  - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                    }
 | 
					 | 
				
			||||||
  - { key: Insert,                  chars: "\x1b[2~"                     }
 | 
					 | 
				
			||||||
  - { key: Delete,                  chars: "\x1b[3~"                     }
 | 
					 | 
				
			||||||
  - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                   }
 | 
					 | 
				
			||||||
  - { key: Left,     mods: Control, chars: "\x1b[1;5D"                   }
 | 
					 | 
				
			||||||
  - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                   }
 | 
					 | 
				
			||||||
  - { key: Left,                    chars: "\x1b[D",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: Left,                    chars: "\x1bOD",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                   }
 | 
					 | 
				
			||||||
  - { key: Right,    mods: Control, chars: "\x1b[1;5C"                   }
 | 
					 | 
				
			||||||
  - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                   }
 | 
					 | 
				
			||||||
  - { key: Right,                   chars: "\x1b[C",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: Right,                   chars: "\x1bOC",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                   }
 | 
					 | 
				
			||||||
  - { key: Up,       mods: Control, chars: "\x1b[1;5A"                   }
 | 
					 | 
				
			||||||
  - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                   }
 | 
					 | 
				
			||||||
  - { key: Up,                      chars: "\x1b[A",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: Up,                      chars: "\x1bOA",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                   }
 | 
					 | 
				
			||||||
  - { key: Down,     mods: Control, chars: "\x1b[1;5B"                   }
 | 
					 | 
				
			||||||
  - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                   }
 | 
					 | 
				
			||||||
  - { key: Down,                    chars: "\x1b[B",   mode: ~AppCursor  }
 | 
					 | 
				
			||||||
  - { key: Down,                    chars: "\x1bOB",   mode: AppCursor   }
 | 
					 | 
				
			||||||
  - { key: F1,                      chars: "\x1bOP"                      }
 | 
					 | 
				
			||||||
  - { key: F2,                      chars: "\x1bOQ"                      }
 | 
					 | 
				
			||||||
  - { key: F3,                      chars: "\x1bOR"                      }
 | 
					 | 
				
			||||||
  - { key: F4,                      chars: "\x1bOS"                      }
 | 
					 | 
				
			||||||
  - { key: F5,                      chars: "\x1b[15~"                    }
 | 
					 | 
				
			||||||
  - { key: F6,                      chars: "\x1b[17~"                    }
 | 
					 | 
				
			||||||
  - { key: F7,                      chars: "\x1b[18~"                    }
 | 
					 | 
				
			||||||
  - { key: F8,                      chars: "\x1b[19~"                    }
 | 
					 | 
				
			||||||
  - { key: F9,                      chars: "\x1b[20~"                    }
 | 
					 | 
				
			||||||
  - { key: F10,                     chars: "\x1b[21~"                    }
 | 
					 | 
				
			||||||
  - { key: F11,                     chars: "\x1b[23~"                    }
 | 
					 | 
				
			||||||
  - { key: F12,                     chars: "\x1b[24~"                    }
 | 
					 | 
				
			||||||
  - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                   }
 | 
					 | 
				
			||||||
  - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                   }
 | 
					 | 
				
			||||||
  - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                   }
 | 
					 | 
				
			||||||
  - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                   }
 | 
					 | 
				
			||||||
  - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                  }
 | 
					 | 
				
			||||||
  - { key: F1,       mods: Control, chars: "\x1b[1;5P"                   }
 | 
					 | 
				
			||||||
  - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                   }
 | 
					 | 
				
			||||||
  - { key: F3,       mods: Control, chars: "\x1b[1;5R"                   }
 | 
					 | 
				
			||||||
  - { key: F4,       mods: Control, chars: "\x1b[1;5S"                   }
 | 
					 | 
				
			||||||
  - { key: F5,       mods: Control, chars: "\x1b[15;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F6,       mods: Control, chars: "\x1b[17;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F7,       mods: Control, chars: "\x1b[18;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F8,       mods: Control, chars: "\x1b[19;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F9,       mods: Control, chars: "\x1b[20;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F10,      mods: Control, chars: "\x1b[21;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F11,      mods: Control, chars: "\x1b[23;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F12,      mods: Control, chars: "\x1b[24;5~"                  }
 | 
					 | 
				
			||||||
  - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                   }
 | 
					 | 
				
			||||||
  - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                   }
 | 
					 | 
				
			||||||
  - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                   }
 | 
					 | 
				
			||||||
  - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                   }
 | 
					 | 
				
			||||||
  - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                  }
 | 
					 | 
				
			||||||
  - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                   }
 | 
					 | 
				
			||||||
  - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                   }
 | 
					 | 
				
			||||||
  - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                   }
 | 
					 | 
				
			||||||
  - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                   }
 | 
					 | 
				
			||||||
  - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                  }
 | 
					 | 
				
			||||||
  - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                  }
 | 
					 | 
				
			||||||
@@ -17,7 +17,7 @@ shadow-ignore-shaped = false;	# Avoid drawing shadow on all shaped windows
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Opacity
 | 
					# Opacity
 | 
				
			||||||
menu-opacity = 0.9;				# The opacity for menus. (default 1.0)
 | 
					menu-opacity = 0.9;				# The opacity for menus. (default 1.0)
 | 
				
			||||||
inactive-opacity = 0.7;			# Default opacity of inactive windows. (0.0 - 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)
 | 
					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)
 | 
					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
 | 
					inactive-opacity-override = true;	# Let inactive opacity set by 'inactive-opacity' overrides
 | 
				
			||||||
@@ -25,24 +25,26 @@ inactive-opacity-override = true;	# Let inactive opacity set by 'inactive-opacit
 | 
				
			|||||||
opacity-rule = [
 | 
					opacity-rule = [
 | 
				
			||||||
  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
 | 
					  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
alpha-step = 0.02;				# XRender backend: Step size for alpha pictures. Increasing
 | 
					alpha-step = 0.06;				# XRender backend: Step size for alpha pictures. Increasing
 | 
				
			||||||
								# it may result in less X resource usage,
 | 
													# it may result in less X resource usage,
 | 
				
			||||||
								# Yet f ading may look bad.
 | 
													# Yet f ading may look bad.
 | 
				
			||||||
 | 
					# inactive-dim = 0.2;			# Dim inactive windows. (0.0 - 1.0)
 | 
				
			||||||
# Blurring
 | 
					#inactive-dim-fixed = true;		# Do not let dimness adjust based on window opacity.
 | 
				
			||||||
blur-method = "dual_kawase";
 | 
					inactive-opacity-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
 | 
				
			||||||
blur-strength = 5;
 | 
					 | 
				
			||||||
blur-background = true;		    # Blur background of transparent windows.
 | 
					blur-background = true;		    # Blur background of transparent windows.
 | 
				
			||||||
blur-background-exclude  = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'", "class_g = 'Polybar'" ];
 | 
					blur-background-exclude  = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'" ];
 | 
				
			||||||
blur-background-frame = true;	# Blur background of opaque windows with transparent
 | 
					blur-background-frame = false;	# Blur background of opaque windows with transparent
 | 
				
			||||||
								# frames as well.
 | 
													# frames as well.
 | 
				
			||||||
blur-background-fixed = false;	# Do not let blur radius adjust based on window opacity.
 | 
					blur-background-fixed = true;	# Do not let blur radius adjust based on window opacity.
 | 
				
			||||||
								# Exclude conditions for background blur.
 | 
													# 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
 | 
				
			||||||
fading = true;					# Fade windows during opacity changes.
 | 
					fading = true;					# Fade windows during opacity changes.
 | 
				
			||||||
# fade-delta = 16;				# The time between steps in a fade in milliseconds. (default 10).
 | 
					# fade-delta = 16;				# The time between steps in a fade in milliseconds. (default 10).
 | 
				
			||||||
fade-in-step = 0.022;			# Opacity change between steps while fading in. (default 0.028).
 | 
					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).
 | 
					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.
 | 
					# no-fading-openclose = true;	# Avoid fade windows in/out when opening/closing.
 | 
				
			||||||
# fade-exclude = [ ];				# Exclude conditions for fading.
 | 
					# fade-exclude = [ ];				# Exclude conditions for fading.
 | 
				
			||||||
@@ -77,7 +79,7 @@ invert-color-include = [ ];		# Conditions for windows to be painted with inverte
 | 
				
			|||||||
glx-no-stencil = true;			# Recommended.
 | 
					glx-no-stencil = true;			# Recommended.
 | 
				
			||||||
glx-copy-from-front = false;	# Useful with --glx-swap-method,
 | 
					glx-copy-from-front = false;	# Useful with --glx-swap-method,
 | 
				
			||||||
# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
 | 
					# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
 | 
				
			||||||
glx-no-rebind-pixmap = true;	# Recommended if it works.
 | 
					# glx-no-rebind-pixmap = true;	# Recommended if it works.	
 | 
				
			||||||
glx-swap-method = "undefined";	# See man page.
 | 
					glx-swap-method = "undefined";	# See man page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Window type settings
 | 
					# Window type settings
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
[global]
 | 
					[global]
 | 
				
			||||||
    font = sans 9.5
 | 
					    font = Noto Sans 10
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Allow a small subset of html markup:
 | 
					    # Allow a small subset of html markup:
 | 
				
			||||||
    #   <b>bold</b>
 | 
					    #   <b>bold</b>
 | 
				
			||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
    #   %I  iconname (without its path)
 | 
					    #   %I  iconname (without its path)
 | 
				
			||||||
    #   %p  progress value if set ([  0%] to [100%]) or nothing
 | 
					    #   %p  progress value if set ([  0%] to [100%]) or nothing
 | 
				
			||||||
    # Markup is allowed
 | 
					    # Markup is allowed
 | 
				
			||||||
    format = "<b>%s %p</b>\n%b"
 | 
					    format = "<b>%s</b>\n%b"
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Sort messages by urgency.
 | 
					    # Sort messages by urgency.
 | 
				
			||||||
    sort = yes
 | 
					    sort = yes
 | 
				
			||||||
@@ -51,6 +51,7 @@
 | 
				
			|||||||
    # Ignore newlines '\n' in notifications.
 | 
					    # Ignore newlines '\n' in notifications.
 | 
				
			||||||
    ignore_newline = no
 | 
					    ignore_newline = no
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    # The geometry of the window:
 | 
					    # The geometry of the window:
 | 
				
			||||||
    #   [{width}]x{height}[+/-{x}+/-{y}]
 | 
					    #   [{width}]x{height}[+/-{x}+/-{y}]
 | 
				
			||||||
    # The geometry of the message window.
 | 
					    # The geometry of the message window.
 | 
				
			||||||
@@ -65,16 +66,16 @@
 | 
				
			|||||||
    # screen width minus the width defined in within the geometry option.
 | 
					    # screen width minus the width defined in within the geometry option.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 53 = 30 + 23 (bar-height)
 | 
					    # 53 = 30 + 23 (bar-height)
 | 
				
			||||||
    geometry = "360x5-30+30"
 | 
					    geometry = "300x5-30+52"
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Shrink window if it's smaller than the width.  Will be ignored if
 | 
					    # Shrink window if it's smaller than the width.  Will be ignored if
 | 
				
			||||||
    # width is 0.
 | 
					    # width is 0.
 | 
				
			||||||
    shrink = yes
 | 
					    shrink = no
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # The transparency of the window.  Range: [0; 100].
 | 
					    # The transparency of the window.  Range: [0; 100].
 | 
				
			||||||
    # This option will only work if a compositing windowmanager is
 | 
					    # This option will only work if a compositing windowmanager is
 | 
				
			||||||
    # present (e.g. xcompmgr, compiz, etc.).
 | 
					    # present (e.g. xcompmgr, compiz, etc.).
 | 
				
			||||||
    transparency = 15
 | 
					    # transparency = 10
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Don't remove messages, if the user is idle (no mouse or keyboard input)
 | 
					    # Don't remove messages, if the user is idle (no mouse or keyboard input)
 | 
				
			||||||
    # for longer than idle_threshold seconds.
 | 
					    # for longer than idle_threshold seconds.
 | 
				
			||||||
@@ -102,7 +103,7 @@
 | 
				
			|||||||
    sticky_history = yes
 | 
					    sticky_history = yes
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Maximum amount of notifications kept in history
 | 
					    # Maximum amount of notifications kept in history
 | 
				
			||||||
    history_length = 100
 | 
					    history_length = 20
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Display indicators for URLs (U) and actions (A).
 | 
					    # Display indicators for URLs (U) and actions (A).
 | 
				
			||||||
    show_indicators = no
 | 
					    show_indicators = no
 | 
				
			||||||
@@ -118,10 +119,10 @@
 | 
				
			|||||||
    separator_height = 2
 | 
					    separator_height = 2
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Padding between text and separator.
 | 
					    # Padding between text and separator.
 | 
				
			||||||
    padding = 15
 | 
					    padding = 12
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Horizontal padding.
 | 
					    # Horizontal padding.
 | 
				
			||||||
    horizontal_padding = 16
 | 
					    horizontal_padding = 20
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # Define a color for the separator.
 | 
					    # Define a color for the separator.
 | 
				
			||||||
    # possible values are:
 | 
					    # possible values are:
 | 
				
			||||||
@@ -143,14 +144,12 @@
 | 
				
			|||||||
    browser = /usr/bin/chromium
 | 
					    browser = /usr/bin/chromium
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Align icons left/right/off
 | 
					    # Align icons left/right/off
 | 
				
			||||||
    icon_position = left
 | 
					    icon_position = off
 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Scale larger icons down to this size, set to 0 to disable
 | 
					 | 
				
			||||||
    max_icon_size = 44
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Paths to default icons.
 | 
					    # 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
 | 
					    icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
 | 
				
			||||||
    frame_width = 0
 | 
					
 | 
				
			||||||
 | 
					    frame_width = 3
 | 
				
			||||||
    frame_color = "#404552"
 | 
					    frame_color = "#404552"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[shortcuts]
 | 
					[shortcuts]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,38 +2,43 @@
 | 
				
			|||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 | 
					<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 | 
				
			||||||
<fontconfig>
 | 
					<fontconfig>
 | 
				
			||||||
    <match>
 | 
					    <match>
 | 
				
			||||||
        <test qual="any" name="family"><string>sans-serif</string></test>
 | 
					        <test name="family">
 | 
				
			||||||
        <edit name="family" mode="prepend" binding="strong">
 | 
					            <string>sans-serif</string>
 | 
				
			||||||
 | 
					        </test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="weak">
 | 
				
			||||||
            <string>Noto Sans</string>
 | 
					            <string>Noto Sans</string>
 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
            <string>FontAwesome 5 Pro Light</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					        </edit>
 | 
				
			||||||
    </match>
 | 
					    </match>
 | 
				
			||||||
    <match>
 | 
					    <match>
 | 
				
			||||||
        <test qual="any" name="family"><string>serif</string></test>
 | 
					        <test name="family">
 | 
				
			||||||
        <edit name="family" mode="prepend" binding="strong">
 | 
					            <string>serif</string>
 | 
				
			||||||
 | 
					        </test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="weak">
 | 
				
			||||||
            <string>Noto Serif</string>
 | 
					            <string>Noto Serif</string>
 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
            <string>FontAwesome 5 Pro Light</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					        </edit>
 | 
				
			||||||
    </match>
 | 
					    </match>
 | 
				
			||||||
    <match>
 | 
					    <match>
 | 
				
			||||||
        <test qual="any" name="family"><string>monospace</string></test>
 | 
					        <test name="family">
 | 
				
			||||||
        <edit name="family" mode="prepend" binding="strong">
 | 
					            <string>monospace</string>
 | 
				
			||||||
            <string>Source Code Pro</string>
 | 
					        </test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="weak">
 | 
				
			||||||
 | 
					            <string>Sauce Code Pro</string>
 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
            <string>FontAwesome 5 Pro Light</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					        </edit>
 | 
				
			||||||
    </match>
 | 
					    </match>
 | 
				
			||||||
 | 
					    <match>
 | 
				
			||||||
    <match target="font">
 | 
					        <test name="family">
 | 
				
			||||||
        <test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>
 | 
					            <string>Apple Color Emoji</string>
 | 
				
			||||||
        <edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
 | 
					        </test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="weak">
 | 
				
			||||||
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
 | 
					        </edit>
 | 
				
			||||||
    </match>
 | 
					    </match>
 | 
				
			||||||
    <match target="font">
 | 
					    <match target="font">
 | 
				
			||||||
        <test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
 | 
					        <edit name="hintstyle" mode="assign">
 | 
				
			||||||
        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
 | 
					            <const>hintfull</const>
 | 
				
			||||||
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
 | 
					        </edit>
 | 
				
			||||||
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					    </match>
 | 
				
			||||||
</fontconfig>
 | 
					</fontconfig>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,10 +4,8 @@
 | 
				
			|||||||
	signingkey = CFBB6A86
 | 
						signingkey = CFBB6A86
 | 
				
			||||||
[core]
 | 
					[core]
 | 
				
			||||||
	autocrlf = input
 | 
						autocrlf = input
 | 
				
			||||||
	excludesfile = /home/frebib/.config/git/gitignore
 | 
						excludesfile = $HOME/.config/git/gitignore
 | 
				
			||||||
	pager = diff-highlight | $PAGER
 | 
						pager = diff-so-fancy | less
 | 
				
			||||||
[interactive]
 | 
					 | 
				
			||||||
	diffFilter = diff-highlight
 | 
					 | 
				
			||||||
[commit]
 | 
					[commit]
 | 
				
			||||||
	gpgsign = true
 | 
						gpgsign = true
 | 
				
			||||||
[push]
 | 
					[push]
 | 
				
			||||||
@@ -37,6 +35,8 @@
 | 
				
			|||||||
	suppresscc = self
 | 
						suppresscc = self
 | 
				
			||||||
[diff]
 | 
					[diff]
 | 
				
			||||||
	algorithm = patience
 | 
						algorithm = patience
 | 
				
			||||||
 | 
					[interactive]
 | 
				
			||||||
 | 
						diffFilter = diff-so-fancy --patch-mode
 | 
				
			||||||
[color]
 | 
					[color]
 | 
				
			||||||
	ui = true
 | 
						ui = true
 | 
				
			||||||
[color "diff"]
 | 
					[color "diff"]
 | 
				
			||||||
@@ -51,5 +51,7 @@
 | 
				
			|||||||
	oldHighlight = red 88
 | 
						oldHighlight = red 88
 | 
				
			||||||
	newNormal = green
 | 
						newNormal = green
 | 
				
			||||||
	newHighlight = green 22
 | 
						newHighlight = green 22
 | 
				
			||||||
 | 
					[diff-so-fancy]
 | 
				
			||||||
 | 
						changeHunkIndicators = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# vim: noet
 | 
					# vim: noet
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 +1,5 @@
 | 
				
			|||||||
VteTerminal,
 | 
					VteTerminal,
 | 
				
			||||||
TerminalScreen,
 | 
					TerminalScreen,
 | 
				
			||||||
vte-terminal {
 | 
					vte-terminal {
 | 
				
			||||||
    padding: 1.3em;
 | 
					    padding: 6px;
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.window-frame, .window-frame:backdrop {
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
    border-style: none;
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.titlebar {
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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
 | 
				
			||||||
@@ -3,26 +3,25 @@
 | 
				
			|||||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
 | 
					# Please see http://i3wm.org/docs/userguide.html for a complete reference!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set $mod Mod4
 | 
					set $mod Mod4
 | 
				
			||||||
set $alt Mod1
 | 
					 | 
				
			||||||
floating_modifier $mod
 | 
					floating_modifier $mod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
font pango:sans 9
 | 
					font pango:Noto Sans 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# kill focused window
 | 
					# kill focused window
 | 
				
			||||||
bindsym $mod+apostrophe kill
 | 
					bindsym $mod+apostrophe kill
 | 
				
			||||||
bindsym $alt+F4 kill
 | 
					bindsym Mod1+F4 kill
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# change window focus
 | 
					# change window focus
 | 
				
			||||||
bindsym $mod+d focus left
 | 
					bindsym $mod+d focus left
 | 
				
			||||||
bindsym $mod+h focus down
 | 
					 | 
				
			||||||
bindsym $mod+t focus up
 | 
					 | 
				
			||||||
bindsym $mod+n focus right
 | 
					bindsym $mod+n focus right
 | 
				
			||||||
 | 
					bindsym $mod+t focus up
 | 
				
			||||||
 | 
					bindsym $mod+h focus down
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# move focused window
 | 
					# move focused window
 | 
				
			||||||
bindsym $mod+Shift+d move left
 | 
					bindsym $mod+Shift+d move left
 | 
				
			||||||
bindsym $mod+Shift+h move down
 | 
					bindsym $mod+Shift+n move down
 | 
				
			||||||
bindsym $mod+Shift+t move up
 | 
					bindsym $mod+Shift+t move up
 | 
				
			||||||
bindsym $mod+Shift+n move right
 | 
					bindsym $mod+Shift+h move right
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# split in horizontal orientation
 | 
					# split in horizontal orientation
 | 
				
			||||||
bindsym $mod+m split h
 | 
					bindsym $mod+m split h
 | 
				
			||||||
@@ -45,21 +44,12 @@ bindsym $mod+e sticky toggle
 | 
				
			|||||||
bindsym $mod+a focus parent
 | 
					bindsym $mod+a focus parent
 | 
				
			||||||
bindsym $mod+o focus child
 | 
					bindsym $mod+o focus child
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#  Screen configs  #
 | 
					set $surf eDP1
 | 
				
			||||||
set    $bl  "DP-5"
 | 
					set $hdmi HDMI1
 | 
				
			||||||
set    $tl  "DP-1"
 | 
					 | 
				
			||||||
set    $br  "HDMI-0"
 | 
					 | 
				
			||||||
set    $tr  "DP-3"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Workspace -> Screen
 | 
					# Workspace -> Screen
 | 
				
			||||||
workspace 1 output $bl
 | 
					workspace 1 output $hdmi
 | 
				
			||||||
workspace 2 output $br
 | 
					workspace 5 output $surf
 | 
				
			||||||
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
 | 
					# switch to workspace
 | 
				
			||||||
bindsym $mod+1 workspace 1
 | 
					bindsym $mod+1 workspace 1
 | 
				
			||||||
@@ -74,10 +64,10 @@ bindsym $mod+9 workspace 9
 | 
				
			|||||||
bindsym $mod+0 workspace 10
 | 
					bindsym $mod+0 workspace 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# move workspaces across screens
 | 
					# move workspaces across screens
 | 
				
			||||||
bindsym $mod+$alt+d move workspace to output left
 | 
					bindsym $mod+Mod1+d move workspace to output left
 | 
				
			||||||
bindsym $mod+$alt+n move workspace to output right
 | 
					bindsym $mod+Mod1+n move workspace to output right
 | 
				
			||||||
bindsym $mod+$alt+t move workspace to output up
 | 
					bindsym $mod+Mod1+t move workspace to output up
 | 
				
			||||||
bindsym $mod+$alt+h move workspace to output down
 | 
					bindsym $mod+Mod1+h move workspace to output down
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# move focused container to workspace
 | 
					# move focused container to workspace
 | 
				
			||||||
bindsym $mod+Shift+1 move container to workspace 1
 | 
					bindsym $mod+Shift+1 move container to workspace 1
 | 
				
			||||||
@@ -107,7 +97,25 @@ client.unfocused        $inactive-bg-color  $inactive-bg-color $inactive-text-co
 | 
				
			|||||||
client.focused_inactive $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
 | 
					client.urgent           $urgent-bg-color    $urgent-bg-color   $text-color          $bg-color
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exec_always --no-startup-id killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
 | 
					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
 | 
					# Window rules
 | 
				
			||||||
for_window [class="Pinentry"] floating enable
 | 
					for_window [class="Pinentry"] floating enable
 | 
				
			||||||
@@ -119,65 +127,65 @@ for_window [window_role="i3blocks-update-term"] floating enable
 | 
				
			|||||||
for_window [window_role="i3blocks-clock-term"] floating enable
 | 
					for_window [window_role="i3blocks-clock-term"] floating enable
 | 
				
			||||||
for_window [title="^rofi$"] floating enable
 | 
					for_window [title="^rofi$"] floating enable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
new_window none
 | 
					new_window pixel 5
 | 
				
			||||||
new_float none
 | 
					new_float none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gaps inner 12
 | 
					gaps inner 7
 | 
				
			||||||
gaps outer 4
 | 
					gaps outer 2
 | 
				
			||||||
 | 
					#smart_gaps on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
focus_follows_mouse yes
 | 
					focus_follows_mouse yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# keybindings
 | 
					# keybindings
 | 
				
			||||||
bindsym $mod+Shift+j reload
 | 
					bindsym $mod+Shift+j reload
 | 
				
			||||||
 | 
					#bindsym $mod+Shift+p restart
 | 
				
			||||||
bindsym $mod+c       exec chromium
 | 
					bindsym $mod+c       exec chromium
 | 
				
			||||||
bindsym $mod+v       exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
 | 
					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 $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 Mod1+Tab     exec ~/.config/i3/alt-tab.sh
 | 
				
			||||||
bindsym $mod+Return  exec i3-sensible-terminal
 | 
					bindsym $mod+Return  exec i3-sensible-terminal
 | 
				
			||||||
bindsym $mod+Ctrl+Return        exec i3-sensible-terminal -r floating-term
 | 
					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+Shift+Return  exec i3-sensible-terminal -d "`xcwd`"
 | 
				
			||||||
bindsym $mod+Ctrl+Shift+Return  exec i3-sensible-terminal -r floating-term -d "`xcwd`"
 | 
					bindsym $mod+Ctrl+Shift+Return  exec i3-sensible-terminal -r floating-term  --geometry 96x30 -d "`xcwd`"
 | 
				
			||||||
bindsym $mod+l                  exec dm-tool switch-to-greeter
 | 
					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+space   exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
 | 
				
			||||||
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+p exec rofi-pass
 | 
				
			||||||
bindsym $mod+Shift+e exec rofi-emoji
 | 
					bindsym $mod+Shift+e exec rofi-emoji
 | 
				
			||||||
bindsym $mod+Shift+i            exec rofi-fontawesome
 | 
					bindsym --release Print        exec imgur-screenshot
 | 
				
			||||||
bindsym --release Print         exec screenshot
 | 
					bindsym --release $mod+Print   exec imgur-screenshot -f
 | 
				
			||||||
bindsym --release $mod+Print    exec imgur-screenshot
 | 
					bindsym $mod+Mod1+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
 | 
				
			||||||
bindsym $mod+$alt+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+numbersign         exec "i3-sensible-terminal -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+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>\\""
 | 
					bindsym $mod+g       exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Media player controls
 | 
					# Media player controls
 | 
				
			||||||
bindsym XF86AudioPlay           exec --no-startup-id playerctl -a play-pause
 | 
					bindsym XF86AudioPlay  exec --no-startup-id mpc toggle
 | 
				
			||||||
bindsym XF86AudioPause          exec --no-startup-id playerctl -a pause
 | 
					bindsym XF86AudioPause exec --no-startup-id mpc pause
 | 
				
			||||||
bindsym XF86AudioStop           exec --no-startup-id playerctl -a stop
 | 
					bindsym XF86AudioStop  exec --no-startup-id mpc stop
 | 
				
			||||||
bindsym XF86AudioNext           exec --no-startup-id playerctl -a next
 | 
					bindsym XF86AudioNext  exec --no-startup-id mpc next
 | 
				
			||||||
bindsym XF86AudioPrev           exec --no-startup-id playerctl -a previous
 | 
					bindsym XF86AudioPrev  exec --no-startup-id mpc previous
 | 
				
			||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  +1000
 | 
					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 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 XF86AudioMute        exec --no-startup-id pactl set-sink-mute   @DEFAULT_SINK@ toggle
 | 
				
			||||||
bindsym XF86MonBrightnessUp  exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
 | 
					bindsym XF86MonBrightnessUp  exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
 | 
				
			||||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 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
 | 
					# app launch shortcuts
 | 
				
			||||||
 | 
					exec --no-startup-id ~/.fehbg
 | 
				
			||||||
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
 | 
					exec --no-startup-id ~/.config/i3/disable-standby-fs.py
 | 
				
			||||||
exec --no-startup-id feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
 | 
					exec --no-startup-id xautolock -time 5 -locker ~/.config/i3/lock.sh -nocloseout -nocloseerr
 | 
				
			||||||
exec --no-startup-id xautolock -time 5 -locker 'dm-tool switch-to-greeter' -nocloseout -nocloseerr
 | 
					 | 
				
			||||||
exec --no-startup-id xss-lock dm-tool switch-to-greeter
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# startup programs
 | 
					# startup programs
 | 
				
			||||||
 | 
					exec --no-startup-id pulseaudio
 | 
				
			||||||
exec --no-startup-id nextcloud
 | 
					exec --no-startup-id nextcloud
 | 
				
			||||||
exec --no-startup-id blueman-applet
 | 
					exec --no-startup-id blueman-applet
 | 
				
			||||||
exec --no-startup-id redshift
 | 
					exec --no-startup-id redshift
 | 
				
			||||||
exec --no-startup-id xbindkeys
 | 
					exec --no-startup-id xbindkeys
 | 
				
			||||||
exec --no-startup-id solaar
 | 
					exec --no-startup-id onboard
 | 
				
			||||||
exec --no-startup-id pullover
 | 
					exec --no-startup-id compton -b --config ~/.config/compton.conf
 | 
				
			||||||
exec --no-startup-id mailnag
 | 
					 | 
				
			||||||
exec --no-startup-id compton -b
 | 
					 | 
				
			||||||
exec --no-startup-id chromium --no-startup-window
 | 
					exec --no-startup-id chromium --no-startup-window
 | 
				
			||||||
exec --no-startup-id thunderbird
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
exec i3-msg 'workspace 1; exec sleep 2 && chromium'
 | 
					exec i3-msg 'workspace 1; exec sleep 2 && chromium'
 | 
				
			||||||
exec i3-msg 'workspace 2; exec i3-sensible-terminal'
 | 
					exec i3-msg 'workspace 2; exec i3-sensible-terminal'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											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"
 | 
				
			||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/bash
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
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 | xargs)
 | 
					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
 | 
					case $option in
 | 
				
			||||||
    lock) dm-tool switch-to-greeter;;
 | 
					    lock) ./lock.sh;;
 | 
				
			||||||
    logout) i3-msg exit;;
 | 
					    logout) i3-msg exit;;
 | 
				
			||||||
    sleep) systemctl suspend;;
 | 
					    sleep) systemctl suspend;;
 | 
				
			||||||
    hibernate) systemctl hibernate;;
 | 
					    hibernate) systemctl hibernate;;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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,29 +0,0 @@
 | 
				
			|||||||
[spamfilterplugin]
 | 
					 | 
				
			||||||
filter_text = viagra
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[core]
 | 
					 | 
				
			||||||
imap_idle_timeout = 10
 | 
					 | 
				
			||||||
enabled_plugins = dbusplugin, libnotifyplugin, soundplugin
 | 
					 | 
				
			||||||
poll_interval = 10
 | 
					 | 
				
			||||||
credentialstore = auto
 | 
					 | 
				
			||||||
connectivity_test = auto
 | 
					 | 
				
			||||||
autostart = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[soundplugin]
 | 
					 | 
				
			||||||
soundfile = mailnag.ogg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[libnotifyplugin]
 | 
					 | 
				
			||||||
notification_mode = 2
 | 
					 | 
				
			||||||
max_visible_mails = 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[account1]
 | 
					 | 
				
			||||||
enabled = 1
 | 
					 | 
				
			||||||
name = frebib.net
 | 
					 | 
				
			||||||
user = me@frebib.net
 | 
					 | 
				
			||||||
password = 
 | 
					 | 
				
			||||||
server = imappro.zoho.com
 | 
					 | 
				
			||||||
port = 993
 | 
					 | 
				
			||||||
ssl = 1
 | 
					 | 
				
			||||||
imap = 1
 | 
					 | 
				
			||||||
idle = 0
 | 
					 | 
				
			||||||
folder = INBOX, Spam
 | 
					 | 
				
			||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
[Default Applications]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# eog for images
 | 
					 | 
				
			||||||
image/bmp=eog.desktop
 | 
					 | 
				
			||||||
image/gif=eog.desktop
 | 
					 | 
				
			||||||
image/jpeg=eog.desktop
 | 
					 | 
				
			||||||
image/jpg=eog.desktop
 | 
					 | 
				
			||||||
image/pjpeg=eog.desktop
 | 
					 | 
				
			||||||
image/png=eog.desktop
 | 
					 | 
				
			||||||
image/svg+xml-compressed=eog.desktop
 | 
					 | 
				
			||||||
image/svg+xml=eog.desktop
 | 
					 | 
				
			||||||
image/tiff=eog.desktop
 | 
					 | 
				
			||||||
image/x-bmp=eog.desktop
 | 
					 | 
				
			||||||
image/x-gray=eog.desktop
 | 
					 | 
				
			||||||
image/x-icb=eog.desktop
 | 
					 | 
				
			||||||
image/x-ico=eog.desktop
 | 
					 | 
				
			||||||
image/x-png=eog.desktop
 | 
					 | 
				
			||||||
image/x-portable-anymap=eog.desktop
 | 
					 | 
				
			||||||
image/x-portable-bitmap=eog.desktop
 | 
					 | 
				
			||||||
image/x-portable-graymap=eog.desktop
 | 
					 | 
				
			||||||
image/x-portable-pixmap=eog.desktop
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# evince for pdfs
 | 
					 | 
				
			||||||
application/pdf=evince.desktop
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim for textual files
 | 
					 | 
				
			||||||
application/x-shellscript=vim.desktop
 | 
					 | 
				
			||||||
text/english=vim.desktop
 | 
					 | 
				
			||||||
text/plain=vim.desktop
 | 
					 | 
				
			||||||
text/x-makefile=vim.desktop
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Chromium for web/html
 | 
					 | 
				
			||||||
text/html=chromium.desktop
 | 
					 | 
				
			||||||
x-scheme-handler/about=chromium.desktop
 | 
					 | 
				
			||||||
x-scheme-handler/http=chromium.desktop
 | 
					 | 
				
			||||||
x-scheme-handler/https=chromium.desktop
 | 
					 | 
				
			||||||
x-scheme-handler/unknown=chromium.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,311 +0,0 @@
 | 
				
			|||||||
[colours]
 | 
					 | 
				
			||||||
background = transparent
 | 
					 | 
				
			||||||
text = #eceff1
 | 
					 | 
				
			||||||
icon = #147a82
 | 
					 | 
				
			||||||
warning = #bd2c40
 | 
					 | 
				
			||||||
critical = #bd2c40
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[settings]
 | 
					 | 
				
			||||||
format-foreground = ${colours.text}
 | 
					 | 
				
			||||||
format-background = ${colours.background}
 | 
					 | 
				
			||||||
format-spacing = 0
 | 
					 | 
				
			||||||
format-margin  = 2.5
 | 
					 | 
				
			||||||
format-offset  = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[bar/i3bar]
 | 
					 | 
				
			||||||
monitor = ${env:MONITOR:HDMI-0}
 | 
					 | 
				
			||||||
dpi  = ${xrdb:Xft.dpi:96}
 | 
					 | 
				
			||||||
fixed-center = false
 | 
					 | 
				
			||||||
enable-ipc = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
width = 100%
 | 
					 | 
				
			||||||
height = 32
 | 
					 | 
				
			||||||
bottom = true
 | 
					 | 
				
			||||||
radius = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreground = ${colours.text}
 | 
					 | 
				
			||||||
background = ${colours.background}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
line-size = 0
 | 
					 | 
				
			||||||
line-colour = #f00
 | 
					 | 
				
			||||||
padding-left = 2
 | 
					 | 
				
			||||||
padding-right = 2
 | 
					 | 
				
			||||||
module-margin-left = 0
 | 
					 | 
				
			||||||
module-margin-right = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
font-0 = sans:pixelsize=9;1
 | 
					 | 
				
			||||||
font-1 = FontAwesome5Pro:pixelsize=10;2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
modules-left = i3
 | 
					 | 
				
			||||||
modules-center =
 | 
					 | 
				
			||||||
# modules-right = volume updates weather xkeyboard wlan eth memory cpu xbacklight battery temperature date
 | 
					 | 
				
			||||||
modules-right = volume updates weather wlan eth memory cpu xbacklight battery temperature date
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
tray-position = right
 | 
					 | 
				
			||||||
tray-detached = false
 | 
					 | 
				
			||||||
tray-background = ${root.background}
 | 
					 | 
				
			||||||
tray-offset-x = -4
 | 
					 | 
				
			||||||
tray-offset-y = 0
 | 
					 | 
				
			||||||
tray-maxsize = 16
 | 
					 | 
				
			||||||
tray-padding = 2
 | 
					 | 
				
			||||||
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 = i3-msg exec -- i3-sensible-terminal -r i3blocks-update-term -e "yay && kill -USR1 %pid% || kill --USR1 %pid%"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[module/weather]
 | 
					 | 
				
			||||||
type = custom/script
 | 
					 | 
				
			||||||
exec = $XDG_CONFIG_HOME/polybar/weather.sh
 | 
					 | 
				
			||||||
interval = 120
 | 
					 | 
				
			||||||
click-left = i3-msg exec "i3-sensible-terminal -r floating-term -e 'sh -c \"xdotool getactivewindow windowsize 910 680 && curl wttr.in && sleep infinity\"'"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[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.critical}
 | 
					 | 
				
			||||||
label-urgent-padding = ${self.label-focused-padding}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[module/xbacklight]
 | 
					 | 
				
			||||||
type = internal/xbacklight
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
label = %percentage%
 | 
					 | 
				
			||||||
format = <label>
 | 
					 | 
				
			||||||
format-prefix = "  "
 | 
					 | 
				
			||||||
format-prefix-foreground = ${colours.icon}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[module/backlight-acpi]
 | 
					 | 
				
			||||||
inherit = module/xbacklight
 | 
					 | 
				
			||||||
type = internal/backlight
 | 
					 | 
				
			||||||
card = intel_backlight
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[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/wlan]
 | 
					 | 
				
			||||||
type = internal/network
 | 
					 | 
				
			||||||
interface = wlp1s0
 | 
					 | 
				
			||||||
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/eth]
 | 
					 | 
				
			||||||
type = internal/network
 | 
					 | 
				
			||||||
interface = eth0
 | 
					 | 
				
			||||||
interval = 3.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
label-connected = %local_ip%
 | 
					 | 
				
			||||||
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:i3-sensible-terminal -r i3blocks-clock-term -e "sh -c \"xdotool getactivewindow windowsize 500 600; cal -y $(date +%Y); stty -echo; exec sleep infinity\"" &:}%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:pavucontrol:}<ramp-volume>  <label-volume>%{A}
 | 
					 | 
				
			||||||
format-muted = %{A3: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 = 95
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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/temperature]
 | 
					 | 
				
			||||||
type = internal/temperature
 | 
					 | 
				
			||||||
thermal-zone = 2
 | 
					 | 
				
			||||||
warn-temperature = 70
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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/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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[settings]
 | 
					 | 
				
			||||||
screenchange-reload = true
 | 
					 | 
				
			||||||
;compositing-background = xor
 | 
					 | 
				
			||||||
;compositing-background = screen
 | 
					 | 
				
			||||||
;compositing-foreground = source
 | 
					 | 
				
			||||||
;compositing-border = over
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; 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,141 +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
 | 
					 | 
				
			||||||
        800) echo  ;;		# clear sky
 | 
					 | 
				
			||||||
        801) echo  ;;		# few clouds
 | 
					 | 
				
			||||||
        802) echo  ;;		# scattered clouds
 | 
					 | 
				
			||||||
        803) echo  ;;		# broken clouds
 | 
					 | 
				
			||||||
        804) echo  ;;		# overcast clouds
 | 
					 | 
				
			||||||
        # 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
 | 
					 | 
				
			||||||
@@ -1,16 +0,0 @@
 | 
				
			|||||||
top's Config File (Linux processes with windows)
 | 
					 | 
				
			||||||
Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.100, 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,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.95);
 | 
					 | 
				
			||||||
  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 */
 | 
					 | 
				
			||||||
							
								
								
									
										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
 | 
				
			||||||
@@ -1,145 +0,0 @@
 | 
				
			|||||||
configuration {
 | 
					 | 
				
			||||||
  theme: "arc-dark";
 | 
					 | 
				
			||||||
  font: "sans 14";
 | 
					 | 
				
			||||||
  dpi: 0;
 | 
					 | 
				
			||||||
  width: 35;
 | 
					 | 
				
			||||||
  lines: 10;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /* 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";*/
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* vim: ft=css sw=2 */
 | 
					 | 
				
			||||||
							
								
								
									
										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,12 +0,0 @@
 | 
				
			|||||||
[Unit]
 | 
					 | 
				
			||||||
Description=Lock X LightDM session before sleeping
 | 
					 | 
				
			||||||
Before=sleep.target
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Service]
 | 
					 | 
				
			||||||
Type=oneshot
 | 
					 | 
				
			||||||
ExecStart=/usr/bin/dm-tool switch-to-greeter
 | 
					 | 
				
			||||||
# Ensure enough time for the session to lock before sleeping
 | 
					 | 
				
			||||||
ExecStartPost=/usr/bin/sleep 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Install]
 | 
					 | 
				
			||||||
WantedBy=sleep.target
 | 
					 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
../sleep-lock-lightdm.service
 | 
					 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
/usr/lib/systemd/user/pulseaudio.socket
 | 
					 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
[options]
 | 
					[options]
 | 
				
			||||||
font = monospace 9
 | 
					font = SauceCodePro 9
 | 
				
			||||||
scrollback_lines = 1000000
 | 
					scrollback_lines = 1000000
 | 
				
			||||||
cursor_blink = off
 | 
					cursor_blink = off
 | 
				
			||||||
size_hints = true
 | 
					size_hints = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@
 | 
				
			|||||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
 | 
					# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
 | 
				
			||||||
# absolute path. No other format is supported.
 | 
					# absolute path. No other format is supported.
 | 
				
			||||||
# 
 | 
					# 
 | 
				
			||||||
XDG_DESKTOP_DIR="$HOME"
 | 
					XDG_DESKTOP_DIR="$HOME/documents"
 | 
				
			||||||
XDG_DOCUMENTS_DIR="$HOME/documents"
 | 
					XDG_DOCUMENTS_DIR="$HOME/documents"
 | 
				
			||||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
 | 
					XDG_DOWNLOAD_DIR="$HOME/downloads"
 | 
				
			||||||
XDG_MUSIC_DIR="$HOME/music"
 | 
					XDG_MUSIC_DIR="$HOME/music"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								.config/vim/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.config/vim/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,8 +1,7 @@
 | 
				
			|||||||
/.netrwhist
 | 
					/bundle/
 | 
				
			||||||
/autoload/plug.vim
 | 
					 | 
				
			||||||
/plug/
 | 
					 | 
				
			||||||
/spell/
 | 
					/spell/
 | 
				
			||||||
/swapfiles/
 | 
					/swapfiles/
 | 
				
			||||||
/vim-latex
 | 
					 | 
				
			||||||
/viminf*.tmp
 | 
					 | 
				
			||||||
/viminfo
 | 
					/viminfo
 | 
				
			||||||
 | 
					/viminf*.tmp
 | 
				
			||||||
 | 
					/vim-latex
 | 
				
			||||||
 | 
					/.netrwhist
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,15 +1,13 @@
 | 
				
			|||||||
set nocompatible              " be iMproved, required
 | 
					set nocompatible              " be iMproved, required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Reconfigure Vim to be clean!
 | 
					" Reconfigure Vim to be clean!
 | 
				
			||||||
set undodir=$XDG_CACHE_HOME/vim/undo//
 | 
					set rtp+=~/.config/vim
 | 
				
			||||||
set directory=$XDG_CACHE_HOME/vim/swap//
 | 
					set directory=.,~/.config/vim
 | 
				
			||||||
set backupdir=$XDG_CACHE_HOME/vim/backup//
 | 
					set viminfo+=n~/.config/vim/viminfo
 | 
				
			||||||
set viminfo+='1000,n$XDG_CACHE_HOME/vim/viminfo
 | 
					set directory=$HOME/.config/vim/swapfiles//
 | 
				
			||||||
set runtimepath-=$HOME/.vim
 | 
					 | 
				
			||||||
set runtimepath^=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
 | 
					 | 
				
			||||||
let g:netrw_home=$XDG_CACHE_HOME.'/vim'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
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 tabstop=4
 | 
				
			||||||
set shiftwidth=0   " Use tabstop
 | 
					set shiftwidth=0   " Use tabstop
 | 
				
			||||||
@@ -42,16 +40,12 @@ let mapleader="\<space>"
 | 
				
			|||||||
" Autosave settings
 | 
					" Autosave settings
 | 
				
			||||||
function! SaveIfExist()
 | 
					function! SaveIfExist()
 | 
				
			||||||
    if @% != "" && filereadable(@%) && !&readonly && &modified
 | 
					    if @% != "" && filereadable(@%) && !&readonly && &modified
 | 
				
			||||||
        SyntasticCheck
 | 
					 | 
				
			||||||
        write
 | 
					        write
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
set autowrite
 | 
					set autowrite
 | 
				
			||||||
autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist()
 | 
					autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Auto-resize split on window resize
 | 
					 | 
				
			||||||
autocmd VimResized * wincmd =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
" Search options
 | 
					" Search options
 | 
				
			||||||
set hlsearch
 | 
					set hlsearch
 | 
				
			||||||
set ignorecase
 | 
					set ignorecase
 | 
				
			||||||
@@ -82,41 +76,34 @@ set cul cuc
 | 
				
			|||||||
highlight CursorLine   cterm=NONE ctermbg=8
 | 
					highlight CursorLine   cterm=NONE ctermbg=8
 | 
				
			||||||
highlight CursorColumn cterm=NONE ctermbg=8
 | 
					highlight CursorColumn cterm=NONE ctermbg=8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if empty(glob('$XDG_CONFIG_HOME/vim/autoload/plug.vim'))
 | 
					" set the runtime path to include Vundle and initialize
 | 
				
			||||||
  silent !curl -fsSLo $XDG_CONFIG_HOME/vim/autoload/plug.vim --create-dirs
 | 
					set rtp+=~/.config/vim/bundle/Vundle.vim
 | 
				
			||||||
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
 | 
					call vundle#begin()
 | 
				
			||||||
  autocmd VimEnter * PlugInstall --sync | source $VIMRC
 | 
					call vundle#rc('~/.config/vim/bundle')
 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
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 'Valloric/YouCompleteMe'
 | 
					call vundle#end()
 | 
				
			||||||
Plug 'scrooloose/syntastic'
 | 
					 | 
				
			||||||
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'
 | 
					 | 
				
			||||||
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
" Syntax Highlighting
 | 
					 | 
				
			||||||
Plug 'chr4/nginx.vim'
 | 
					 | 
				
			||||||
Plug 'PotatoesMaster/i3-vim-syntax'
 | 
					 | 
				
			||||||
Plug 'puppetlabs/puppet-syntax-vim'
 | 
					 | 
				
			||||||
Plug 'arrufat/vala.vim'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
call plug#end()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Change to dvorak-mapped keys
 | 
					" Change to dvorak-mapped keys
 | 
				
			||||||
let g:use_dvorak = 1
 | 
					let g:use_dvorak = 1
 | 
				
			||||||
@@ -128,32 +115,17 @@ if !exists('g:ycm_semantic_triggers')
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
 | 
					let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
 | 
				
			||||||
"let g:vimtex_view_method='zathura'
 | 
					"let g:vimtex_view_method='zathura'
 | 
				
			||||||
let g:tex_flavor='xelatex'
 | 
					let g:tex_flavor='latex'
 | 
				
			||||||
let g:vimtex_indent_enabled = 0     " auto-indentation is wrong and annoying
 | 
					let g:vimtex_indent_enabled = 0     " auto-indentation is wrong and annoying
 | 
				
			||||||
let g:syntastic_tex_checkers = ['chktex']
 | 
					 | 
				
			||||||
autocmd FileType tex silent VimtexCompile
 | 
					autocmd FileType tex silent VimtexCompile
 | 
				
			||||||
autocmd FileType tex setlocal spell
 | 
					autocmd FileType tex setlocal spell
 | 
				
			||||||
augroup vimtex
 | 
					autocmd FileType tex TagbarOpen
 | 
				
			||||||
    autocmd!
 | 
					 | 
				
			||||||
    autocmd BufWritePost tex call vimtex#toc#refresh()
 | 
					 | 
				
			||||||
    autocmd BufWritePost tex call vimtex#labels#refresh()
 | 
					 | 
				
			||||||
    autocmd BufWritePost tex silent VimtexCompile
 | 
					 | 
				
			||||||
augroup END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Vim-Airline config
 | 
					" Vim-Airline config
 | 
				
			||||||
let g:Powerline_symbols = 'fancy'
 | 
					let g:Powerline_symbols = 'fancy'
 | 
				
			||||||
let g:airline_powerline_fonts = 1
 | 
					let g:airline_powerline_fonts = 1
 | 
				
			||||||
let g:airline_theme='solarized'
 | 
					let g:airline_theme='solarized'
 | 
				
			||||||
let g:airline#extensions#tabline#enabled = 1
 | 
					let g:airline#extensions#tabline#enabled = 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set statusline+=%#warningmsg#
 | 
					 | 
				
			||||||
set statusline+=%{SyntasticStatuslineFlag()}
 | 
					 | 
				
			||||||
set statusline+=%*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
" vim-markdown plugin
 | 
					" vim-markdown plugin
 | 
				
			||||||
let vim_markdown_preview_toggle=0
 | 
					let vim_markdown_preview_toggle=0
 | 
				
			||||||
@@ -177,12 +149,10 @@ let g:tagbar_singleclick = 1
 | 
				
			|||||||
let g:tagbar_autopreview = 1
 | 
					let g:tagbar_autopreview = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" NERDTree configuration
 | 
					" NERDTree configuration
 | 
				
			||||||
map  <leader><tab> :NERDTreeToggle<CR>
 | 
					map  <leader><space> :NERDTreeToggle<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" FZF configurationn
 | 
					" FZF configurationn
 | 
				
			||||||
map  <leader><space> :Files<CR>
 | 
					map  <leader><tab> :Files<CR>
 | 
				
			||||||
map  <leader>b     :Buffers<CR>
 | 
					 | 
				
			||||||
map  <leader>l     :Lines<CR>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Disable mouse
 | 
					" Disable mouse
 | 
				
			||||||
set mouse=nicr
 | 
					set mouse=nicr
 | 
				
			||||||
@@ -222,6 +192,10 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
 | 
				
			|||||||
	noremap h j
 | 
						noremap h j
 | 
				
			||||||
	noremap t k
 | 
						noremap t k
 | 
				
			||||||
	noremap n l
 | 
						noremap n l
 | 
				
			||||||
 | 
						noremap D H
 | 
				
			||||||
 | 
						noremap H J
 | 
				
			||||||
 | 
						noremap T K
 | 
				
			||||||
 | 
						noremap N L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	noremap gh gj
 | 
						noremap gh gj
 | 
				
			||||||
	noremap gt gk
 | 
						noremap gt gk
 | 
				
			||||||
@@ -276,20 +250,7 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
 | 
				
			|||||||
        \ 'x': ['tsd', 'tsD'],
 | 
					        \ 'x': ['tsd', 'tsD'],
 | 
				
			||||||
        \}
 | 
					        \}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    " NERDTree configuration
 | 
					    let NERDTreeMapOpenInTab='\t'
 | 
				
			||||||
    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
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -304,8 +265,5 @@ com! WQA wqa
 | 
				
			|||||||
" Write with sudo
 | 
					" Write with sudo
 | 
				
			||||||
cmap w!! w !sudo tee > /dev/null %
 | 
					cmap w!! w !sudo tee > /dev/null %
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Unmap ex-mode
 | 
					 | 
				
			||||||
map Q <nop>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et
 | 
					autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et
 | 
				
			||||||
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et
 | 
					autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								.config/zsh/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.config/zsh/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +0,0 @@
 | 
				
			|||||||
/antigen/
 | 
					 | 
				
			||||||
/log/
 | 
					 | 
				
			||||||
/histfile
 | 
					 | 
				
			||||||
/.zcompdump*
 | 
					 | 
				
			||||||
@@ -1,7 +1,63 @@
 | 
				
			|||||||
# ZSH Theme emulating the Fish shell's default prompt.
 | 
					# ZSH Theme emulating the Fish shell's default prompt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_fishy_collapsed_wd() {
 | 
					_fishy_collapsed_wd() {
 | 
				
			||||||
    pwd | sed -E 's|^'$HOME'|~|;s|(.*)/|\1%|;s|((^\|/)\.?[^/%]{1})[^/%]*|\1|g;s|(.*)%|\1/|'
 | 
					  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
 | 
					# Required for dynamic prompt
 | 
				
			||||||
@@ -11,4 +67,17 @@ local user_color='green'; [ $UID -eq 0 ] && user_color='red'
 | 
				
			|||||||
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
 | 
					PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
 | 
				
			||||||
PROMPT2='%F{red}\ %f'
 | 
					PROMPT2='%F{red}\ %f'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RPROMPT='%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]%}?"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,74 +0,0 @@
 | 
				
			|||||||
# ZSH RPROMPT containing simple Git status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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)
 | 
					 | 
				
			||||||
    RESET='%f'
 | 
					 | 
				
			||||||
    STATUS=""
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^A  ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$RESET$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^M  ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^D  ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
 | 
					 | 
				
			||||||
        AHEAD=$(echo "$INDEX" | sed -nE 's/.*ahead\s([0-9]*).*/\1/p')
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$AHEAD$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
 | 
					 | 
				
			||||||
        BEHIND=$(echo "$INDEX" | sed -nE 's/.*behind\s([0-9]*).*/\1/p')
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$BEHIND$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
 | 
					 | 
				
			||||||
        STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$RESET$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    echo $STATUS
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Required for dynamic prompt
 | 
					 | 
				
			||||||
setopt prompt_subst
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" "
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=""
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_DIRTY=""
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_AHEAD="%F{green}↑"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_BEHIND="%F{red}↓"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_ADDED="%F{green}+"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%F{blue}~"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_DELETED="%F{red}-"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_RENAMED="%F{magenta}>"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%F{yellow}#"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{cyan}?"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RPROMPT="\$(git_prompt_info)\$(git_prompt_status)%{\$reset_color%}$RPROMPT"
 | 
					 | 
				
			||||||
@@ -4,11 +4,14 @@ sudo-command-line() {
 | 
				
			|||||||
    [[ -z $BUFFER ]] && zle up-history
 | 
					    [[ -z $BUFFER ]] && zle up-history
 | 
				
			||||||
    if [[ $BUFFER == sudo\ * ]]; then
 | 
					    if [[ $BUFFER == sudo\ * ]]; then
 | 
				
			||||||
        LBUFFER="${LBUFFER#sudo }"
 | 
					        LBUFFER="${LBUFFER#sudo }"
 | 
				
			||||||
    elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]] || [[ $BUFFER == vim\ * ]]; then
 | 
					    elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]]; then
 | 
				
			||||||
        LBUFFER="s$LBUFFER"
 | 
					        LBUFFER="${LBUFFER#$EDITOR }"
 | 
				
			||||||
    elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]|| [[ $BUFFER == svim\ * ]]; then
 | 
					        LBUFFER="${LBUFFER#vi }"
 | 
				
			||||||
 | 
					        LBUFFER="svi $LBUFFER"
 | 
				
			||||||
 | 
					    elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]; then
 | 
				
			||||||
        LBUFFER="${LBUFFER#sudoedit }"
 | 
					        LBUFFER="${LBUFFER#sudoedit }"
 | 
				
			||||||
        LBUFFER="${LBUFFER#s}"
 | 
					        LBUFFER="${LBUFFER#svi }"
 | 
				
			||||||
 | 
					        LBUFFER="$EDITOR $LBUFFER"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        LBUFFER="sudo $LBUFFER"
 | 
					        LBUFFER="sudo $LBUFFER"
 | 
				
			||||||
    fi
 | 
					    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' 
 | 
				
			||||||
							
								
								
									
										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
 | 
				
			||||||
							
								
								
									
										78
									
								
								.profile
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								.profile
									
									
									
									
									
								
							@@ -2,54 +2,35 @@ export LC_ALL=en_GB.UTF-8
 | 
				
			|||||||
export LANG=en_GB.UTF-8
 | 
					export LANG=en_GB.UTF-8
 | 
				
			||||||
export LC_NUMERIC=en_GB
 | 
					export LC_NUMERIC=en_GB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
 | 
					export CONFIG_DIR="$HOME/.config"
 | 
				
			||||||
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
 | 
					export XDG_CONFIG_HOME="$CONFIG_DIR"
 | 
				
			||||||
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
 | 
					 | 
				
			||||||
export XDG_LOCAL_HOME="$HOME/.local"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mkdir -p "$XDG_CONFIG_HOME" "$XDG_CACHE_HOME" "$XDG_DATA_HOME" "$XDG_LOCAL_HOME"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$(basename "$(readlink -f /proc/$$/exe)")" in
 | 
					case "$(basename "$(readlink -f /proc/$$/exe)")" in
 | 
				
			||||||
    zsh)  thisfile="$(readlink -f "${(%):-%N}")";;
 | 
					    zsh)  thisfile="$(readlink -f "${(%):-%N}")";;
 | 
				
			||||||
    bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
 | 
					    bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
 | 
				
			||||||
    *)   thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep profile | head -n1)";;
 | 
					    *)   thisfile="$(find /proc/$$/fd/ | xargs readlink -f | grep .profile | head -n1)";;
 | 
				
			||||||
esac
 | 
					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 EDITOR="vim"
 | 
				
			||||||
export VISUAL="vim"
 | 
					export VISUAL="vim"
 | 
				
			||||||
 | 
					export MANPAGER="less -+N"
 | 
				
			||||||
# Override paths for non-compliant programs
 | 
					export TERMINAL="termite"
 | 
				
			||||||
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
 | 
					export BROWSER="chromium"
 | 
				
			||||||
 | 
					export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
 | 
				
			||||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
 | 
					export QT_QPA_PLATFORMTHEME=gtk2
 | 
				
			||||||
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
 | 
					export GOPATH="$HOME/.cache/go"
 | 
				
			||||||
export GOPATH="$XDG_DATA_HOME/go"
 | 
					 | 
				
			||||||
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
 | 
					 | 
				
			||||||
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
 | 
					 | 
				
			||||||
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
 | 
					 | 
				
			||||||
export PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
 | 
					 | 
				
			||||||
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
 | 
					 | 
				
			||||||
export TERMINFO="$XDG_DATA_HOME/terminfo"
 | 
					 | 
				
			||||||
export TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
 | 
					 | 
				
			||||||
export VIMDIR="$XDG_CONFIG_HOME/vim"
 | 
					 | 
				
			||||||
export VIMRC="$VIMDIR/vimrc"
 | 
					 | 
				
			||||||
export VIMINIT=":so $VIMRC"
 | 
					 | 
				
			||||||
export WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
 | 
					 | 
				
			||||||
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
 | 
					 | 
				
			||||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export DOTFILES="$(dirname "${thisfile:-$XDG_CONFIG_HOME/dotfiles/.profile}")"
 | 
					 | 
				
			||||||
export PATH="${PATH}:/sbin:/usr/sbin:$DOTFILES/scripts:$GOPATH/bin"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
					exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure less and add colours
 | 
					 | 
				
			||||||
export LESS="-RI"
 | 
					export LESS="-RI"
 | 
				
			||||||
export PAGER="less"
 | 
					export PAGER="less $LESS"
 | 
				
			||||||
export MANPAGER="less -+N"
 | 
					 | 
				
			||||||
# Disable histfile
 | 
					 | 
				
			||||||
export LESSHISTFILE=-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if exists tput; then
 | 
					if exists tput; then
 | 
				
			||||||
    export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
 | 
					    export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
 | 
				
			||||||
    export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
 | 
					    export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
 | 
				
			||||||
@@ -67,17 +48,24 @@ if exists tput; then
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Source secret keys and values into environment
 | 
					# Source secret keys and values into environment
 | 
				
			||||||
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
 | 
					if [ -f "$CONFIG_DIR/secrets" ]; then
 | 
				
			||||||
    set -o allexport
 | 
					    set -o allexport
 | 
				
			||||||
    source $XDG_CONFIG_HOME/secrets
 | 
					    source $CONFIG_DIR/secrets
 | 
				
			||||||
    set +o allexport
 | 
					    set +o allexport
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Start a dbus session daemon for programs that require it
 | 
					# Merge system clipboards
 | 
				
			||||||
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
 | 
					if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
 | 
				
			||||||
    eval $(dbus-launch --sh-syntax --exit-with-session)
 | 
					    autocutsel -fork
 | 
				
			||||||
    dbus-update-activation-environment --systemd \
 | 
					    autocutsel -selection PRIMARY -fork
 | 
				
			||||||
        DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY \
 | 
					 | 
				
			||||||
        XDG_SEAT_PATH
 | 
					 | 
				
			||||||
fi
 | 
					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
 | 
					# Run all system xinitrc shell scripts
 | 
				
			||||||
xinitdir="/etc/X11/xinit/xinitrc.d"
 | 
					xinitdir="/etc/X11/xinit/xinitrc.d"
 | 
				
			||||||
@@ -11,12 +11,8 @@ if [ -d "$xinitdir" ]; then
 | 
				
			|||||||
    done
 | 
					    done
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Source generic xprofile stuff
 | 
					source ~/.profile
 | 
				
			||||||
source "$(dirname "${BASH_SOURCE[0]}")/xprofile"
 | 
					source ~/.xsession
 | 
				
			||||||
 | 
					xrdb -merge ~/.Xresources
 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
exec i3
 | 
					exec i3
 | 
				
			||||||
							
								
								
									
										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 &
 | 
				
			||||||
@@ -3,8 +3,12 @@ unsetopt MULTIBYTE
 | 
				
			|||||||
# Config and cache directory paths
 | 
					# Config and cache directory paths
 | 
				
			||||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
 | 
					CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
 | 
				
			||||||
ZSH_DIR="$CONFIG_DIR/zsh"
 | 
					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"
 | 
					LOG_DIR="$ZSH_DIR/log"
 | 
				
			||||||
mkdir -p "$LOG_DIR"
 | 
					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"
 | 
					HISTFILE="$ZSH_DIR/histfile"
 | 
				
			||||||
HISTSIZE=999999
 | 
					HISTSIZE=999999
 | 
				
			||||||
@@ -13,14 +17,14 @@ SAVEHIST=999999
 | 
				
			|||||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
					exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Only set tty if running interactively
 | 
					# Only set tty if running interactively
 | 
				
			||||||
if exists tty && tty -s 1>/dev/null 2>/dev/null; then
 | 
					if exists tty && tty -s; then
 | 
				
			||||||
    # Resolve at shell runtime
 | 
					    # Resolve at shell runtime
 | 
				
			||||||
    export GPG_TTY="$(tty)"
 | 
					    export GPG_TTY="$(tty)"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set some useful ZSH/Bash options
 | 
					# Set some useful ZSH/Bash options
 | 
				
			||||||
setopt sharehistory histignorealldups histignorespace histreduceblanks
 | 
					setopt sharehistory histignorealldups histignorespace histreduceblanks
 | 
				
			||||||
setopt pathdirs autocd autopushd extendedglob nullglob alwaystoend interactivecomments dvorak
 | 
					setopt pathdirs autocd autopushd extendedglob alwaystoend dvorak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Completion initialisation
 | 
					# Completion initialisation
 | 
				
			||||||
autoload -U compinit ; compinit
 | 
					autoload -U compinit ; compinit
 | 
				
			||||||
@@ -36,19 +40,10 @@ zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower
 | 
				
			|||||||
zstyle ':completion:*' rehash true
 | 
					zstyle ':completion:*' rehash true
 | 
				
			||||||
zstyle ':completion:*' menu select
 | 
					zstyle ':completion:*' menu select
 | 
				
			||||||
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
 | 
					zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
 | 
				
			||||||
zstyle ':compinstall'  filename "${ZDOTDIR:-~}/.zshrc"
 | 
					zstyle ':compinstall'  filename "$HOME/.zshrc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Pre-load vi-mode edit-command-line before antigen plugins are loaded
 | 
					 | 
				
			||||||
autoload -z edit-command-line
 | 
					 | 
				
			||||||
zle -N edit-command-line
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export WORDCHARS='*?_[]~=&;!#$%^(){}'
 | 
					 | 
				
			||||||
x-bash-backward-kill-word(){ WORDCHARS='' zle kill-word; }
 | 
					 | 
				
			||||||
zle -N x-bash-backward-kill-word
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Load antigen & plugins
 | 
					# Load antigen & plugins
 | 
				
			||||||
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
 | 
					 | 
				
			||||||
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
 | 
					 | 
				
			||||||
antigen_src="$ADOTDIR/antigen.zsh"
 | 
					antigen_src="$ADOTDIR/antigen.zsh"
 | 
				
			||||||
if [ ! -f "$antigen_src" ]; then
 | 
					if [ ! -f "$antigen_src" ]; then
 | 
				
			||||||
    git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
 | 
					    git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
 | 
				
			||||||
@@ -57,17 +52,14 @@ source "$antigen_src"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
antigen bundle zsh-users/zsh-completions
 | 
					antigen bundle zsh-users/zsh-completions
 | 
				
			||||||
antigen bundle zsh-users/zsh-autosuggestions
 | 
					antigen bundle zsh-users/zsh-autosuggestions
 | 
				
			||||||
 | 
					antigen bundle Tarrasch/zsh-syntax-highlighting
 | 
				
			||||||
antigen bundle zsh-users/zsh-history-substring-search
 | 
					antigen bundle zsh-users/zsh-history-substring-search
 | 
				
			||||||
antigen bundle zsh-users/zsh-syntax-highlighting@feature/redrawhook
 | 
					 | 
				
			||||||
antigen bundle mafredri/zsh-async
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
antigen apply
 | 
					antigen apply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Vim mode!
 | 
					 | 
				
			||||||
bindkey -v
 | 
					 | 
				
			||||||
export KEYTIMEOUT=25
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set some key-binds
 | 
					# Set some key-binds
 | 
				
			||||||
 | 
					bindkey -e
 | 
				
			||||||
bindkey "^[[1;3C" forward-word
 | 
					bindkey "^[[1;3C" forward-word
 | 
				
			||||||
bindkey "^[[1;5C" forward-word
 | 
					bindkey "^[[1;5C" forward-word
 | 
				
			||||||
bindkey "^[[1;3D" backward-word
 | 
					bindkey "^[[1;3D" backward-word
 | 
				
			||||||
@@ -76,27 +68,19 @@ bindkey "^[[7~" beginning-of-line
 | 
				
			|||||||
bindkey "^[[8~" end-of-line
 | 
					bindkey "^[[8~" end-of-line
 | 
				
			||||||
bindkey "^[[3~" delete-char
 | 
					bindkey "^[[3~" delete-char
 | 
				
			||||||
bindkey "^[[3;3~" delete-word
 | 
					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 '^[^[[3^' x-bash-backward-kill-word
 | 
					bindkey '^[^[[3^' x-bash-backward-kill-word
 | 
				
			||||||
bindkey '^[[A' fzf-history-widget                   # Up (fzf)
 | 
					 | 
				
			||||||
bindkey '^[[B' fzf-history-widget                   # Down (fzf)
 | 
					 | 
				
			||||||
bindkey '^[[1;3A' history-substring-search-up       # Alt+Up (hsh)
 | 
					 | 
				
			||||||
bindkey '^[[1;3B' history-substring-search-down     # Alt+Down (hsh)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
bindkey "^V" edit-command-line
 | 
					bindkey '^[[A' history-substring-search-up
 | 
				
			||||||
bindkey -M vicmd "^V" edit-command-line
 | 
					bindkey '^[[B' history-substring-search-down
 | 
				
			||||||
 | 
					 | 
				
			||||||
bindkey -M vicmd d vi-backward-char
 | 
					 | 
				
			||||||
bindkey -M vicmd h vi-down-line-or-history
 | 
					 | 
				
			||||||
bindkey -M vicmd t vi-up-line-or-history
 | 
					 | 
				
			||||||
bindkey -M vicmd n vi-forward-char
 | 
					 | 
				
			||||||
bindkey -M vicmd k vi-delete
 | 
					 | 
				
			||||||
bindkey -M vicmd K vi-kill-eol
 | 
					 | 
				
			||||||
bindkey -M vicmd j vi-find-next-char-skip
 | 
					 | 
				
			||||||
bindkey -M vicmd l vi-repeat-search
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ZSH_AUTOSUGGEST_USE_ASYNC=true
 | 
					 | 
				
			||||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
 | 
					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)
 | 
					ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-substring-search-up history-substring-search-down)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -104,31 +88,25 @@ HISTORY_SUBSTRING_SEARCH_FUZZY=true
 | 
				
			|||||||
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
 | 
					HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
 | 
				
			||||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
 | 
					HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default='fg=12'
 | 
					typeset -A ZSH_HIGHLIGHT_STYLES
 | 
				
			||||||
prog='fg=blue'
 | 
					ZSH_HIGHLIGHT_STYLES[default]='fg=12'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES=()
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets root line)
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[root]='bg=red'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[default]=$default
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[arg0]=$prog
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
 | 
					ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
 | 
					ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[alias]=$prog
 | 
					ZSH_HIGHLIGHT_STYLES[alias]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green'
 | 
					ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,underline'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=4'
 | 
					ZSH_HIGHLIGHT_STYLES[builtin]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[function]=$prog
 | 
					ZSH_HIGHLIGHT_STYLES[function]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[command]=$prog
 | 
					ZSH_HIGHLIGHT_STYLES[command]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=4'
 | 
					ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
 | 
					ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
 | 
					ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
 | 
					ZSH_HIGHLIGHT_STYLES[path]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[path_separator]='fg=cyan'
 | 
					ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=yellow,bold'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=208'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
 | 
					ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
 | 
					ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[history-expansion]=$default
 | 
					ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=$default
 | 
					ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=12'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=$default
 | 
					ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=12'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
 | 
					ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
 | 
					ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
 | 
					ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
 | 
				
			||||||
@@ -137,13 +115,10 @@ ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
 | 
				
			|||||||
ZSH_HIGHLIGHT_STYLES[back-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[back-dollar-quoted-argument]='fg=cyan'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
 | 
					ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold'
 | 
					ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source "$DOTFILES/aliases"
 | 
					source "$DOTFILES/aliases"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Load some manual plugins
 | 
					# Load some manual plugins
 | 
				
			||||||
source "$ZSH_DIR/plugins/sudo.zsh"
 | 
					source "$ZSH_DIR/plugins/sudo.zsh"
 | 
				
			||||||
source "$ZSH_DIR/plugins/fish-theme.zsh"
 | 
					source "$ZSH_DIR/plugins/fish-theme.zsh"
 | 
				
			||||||
source "$ZSH_DIR/plugins/git-rprompt.zsh"
 | 
					 | 
				
			||||||
[ -f '/usr/share/fzf/key-bindings.zsh' ] && source /usr/share/fzf/key-bindings.zsh
 | 
					 | 
				
			||||||
[ -f '/usr/share/doc/pkgfile/command-not-found.zsh' ] && source /usr/share/doc/pkgfile/command-not-found.zsh
 | 
					 | 
				
			||||||
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
								
							@@ -1,10 +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
 | 
					## 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/dotfiles
 | 
				
			||||||
git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
 | 
					    cd ~/.config/dotfiles
 | 
				
			||||||
ln -sfv .config/dotfiles/.config/* .config/
 | 
					
 | 
				
			||||||
ln -sfv .config/dotfiles/.profile .zprofile
 | 
					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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										187
									
								
								aliases
									
									
									
									
									
								
							
							
						
						
									
										187
									
								
								aliases
									
									
									
									
									
								
							@@ -1,42 +1,16 @@
 | 
				
			|||||||
# Global aliases for ZSH
 | 
					#!/usr/bin/zsh
 | 
				
			||||||
if alias -g 2>/dev/null; then
 | 
					 | 
				
			||||||
    alias -g ...=../..
 | 
					 | 
				
			||||||
    alias -g ....=../../..
 | 
					 | 
				
			||||||
    alias -g .....=../../../..
 | 
					 | 
				
			||||||
    alias -g ......=../../../../..
 | 
					 | 
				
			||||||
    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"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# File default aliases
 | 
					# Common Aliases
 | 
				
			||||||
if alias -s 2>/dev/null; then
 | 
					alias -g ...=../..
 | 
				
			||||||
    alias -s pdf="open"
 | 
					alias -g ....=../../..
 | 
				
			||||||
    alias -s zip="unzip -l"
 | 
					alias -g .....=../../../..
 | 
				
			||||||
    alias -s rar="unrar l"
 | 
					alias -g ......=../../../../..
 | 
				
			||||||
    alias -s tar="tar tf"
 | 
					 | 
				
			||||||
    alias -s gz="tar tf"
 | 
					 | 
				
			||||||
    alias -s jar="java -jar"
 | 
					 | 
				
			||||||
    alias -s git="git clone --recursive"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias ..la="cd ..;la"
 | 
					alias ..la="cd ..;la"
 | 
				
			||||||
alias ..ll="cd..;ll"
 | 
					alias ..ll="cd..;ll"
 | 
				
			||||||
alias ..l="..ll"
 | 
					alias ..l="..ll"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias l=ll
 | 
					alias l=ll
 | 
				
			||||||
alias ls='ls --color=auto'
 | 
					 | 
				
			||||||
alias ll="ls -lFh  --group-directories-first"
 | 
					alias ll="ls -lFh  --group-directories-first"
 | 
				
			||||||
alias la="ls -lAFh --group-directories-first"
 | 
					alias la="ls -lAFh --group-directories-first"
 | 
				
			||||||
alias lt='ls -lAFh --sort=time'
 | 
					alias lt='ls -lAFh --sort=time'
 | 
				
			||||||
@@ -45,11 +19,27 @@ alias al=la # No, I don't need the Mono Assembly Linker
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
alias md="mkdir -p"
 | 
					alias md="mkdir -p"
 | 
				
			||||||
alias rd="rmdir -p"
 | 
					alias rd="rmdir -p"
 | 
				
			||||||
 | 
					mcd(){ mkdir -p $@ && cd $@; }
 | 
				
			||||||
alias -- -='cd -'
 | 
					alias -- -='cd -'
 | 
				
			||||||
alias cdt='cd `mktemp -d`'
 | 
					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 svi=sudoedit
 | 
				
			||||||
alias svim=sudoedit
 | 
					 | 
				
			||||||
# This will enable us to use aliases in sudo.
 | 
					# 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.)
 | 
					# (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
 | 
					# Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh
 | 
				
			||||||
@@ -57,80 +47,69 @@ alias sudo='sudo -E '
 | 
				
			|||||||
alias open=xdg-open
 | 
					alias open=xdg-open
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Command rewrites
 | 
					# Command rewrites
 | 
				
			||||||
 | 
					alias ls='ls --color=always'
 | 
				
			||||||
alias rm='rm -i'
 | 
					alias rm='rm -i'
 | 
				
			||||||
alias mv='mv -i'
 | 
					alias mv='mv -i'
 | 
				
			||||||
alias cp='cp -ir'
 | 
					alias cp='cp -ir'
 | 
				
			||||||
 | 
					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 dd='dd status=progress'
 | 
				
			||||||
 | 
					alias env='env | sort'
 | 
				
			||||||
alias ssh="ssh -tt"
 | 
					alias ssh="ssh -tt"
 | 
				
			||||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
 | 
					alias vim="vim --servername vim -p"
 | 
				
			||||||
alias vi=vim
 | 
					alias vi=vim
 | 
				
			||||||
alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
 | 
					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 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 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 USER \
 | 
				
			||||||
    -e UID="$(id -u)" \
 | 
					 | 
				
			||||||
    -e PWD \
 | 
					    -e PWD \
 | 
				
			||||||
    -e HOME \
 | 
					    -e HOME \
 | 
				
			||||||
    -w $PWD \
 | 
					    -w $PWD \
 | 
				
			||||||
    -v $PWD:$PWD \
 | 
					    -v $PWD:$PWD \
 | 
				
			||||||
    -v ~/.abuild:$HOME/.abuild \
 | 
					    -v ~/.abuild:$HOME/.abuild \
 | 
				
			||||||
    -v ~/.abuild/distfiles:/var/cache/distfiles \
 | 
					    frebib/alpine-sdk:edge abuild'
 | 
				
			||||||
    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; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# System aliases
 | 
					# System aliases
 | 
				
			||||||
alias s="sudo systemctl"
 | 
					alias s="sudo systemctl"
 | 
				
			||||||
alias j=journalctl
 | 
					alias j=journalctl
 | 
				
			||||||
 | 
					alias p=pacaur
 | 
				
			||||||
alias ps='ps aux'
 | 
					alias ps='ps aux'
 | 
				
			||||||
alias catn='tail -n +1 --'
 | 
					alias catn='tail -n +1 --'
 | 
				
			||||||
alias kl='killall -s 9'
 | 
					alias kl='killall -s 9'
 | 
				
			||||||
alias chx='chmod +x'
 | 
					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
 | 
					# Git Aliases
 | 
				
			||||||
alias g=git
 | 
					alias g=git
 | 
				
			||||||
alias gignore='$EDITOR .gitignore'
 | 
					alias gignore='$EDITOR .gitignore'
 | 
				
			||||||
alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
 | 
					alias gitc='$EDITOR ~/.config/git/config'
 | 
				
			||||||
alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
 | 
					alias ggignore='$EDITOR ~/.config/git/gitignore'
 | 
				
			||||||
alias gcl="git clone --recursive"
 | 
					alias gcl="git clone --recursive"
 | 
				
			||||||
alias gco="git checkout"
 | 
					alias gco="git checkout"
 | 
				
			||||||
alias gcom="git checkout master"
 | 
					alias gcom="git checkout master"
 | 
				
			||||||
alias ga="git add"
 | 
					alias ga="git add"
 | 
				
			||||||
alias gap="git add -p"
 | 
					alias gap="git add -p"
 | 
				
			||||||
alias gau="git add -u"
 | 
					 | 
				
			||||||
alias gaN="git add -N"
 | 
					 | 
				
			||||||
alias gaa="ga -A"
 | 
					alias gaa="ga -A"
 | 
				
			||||||
alias grm="git rm"
 | 
					alias grm="git rm"
 | 
				
			||||||
alias gc="git commit"
 | 
					alias gc="git commit"
 | 
				
			||||||
alias gcm="gc -m"
 | 
					alias gcm="gc -m"
 | 
				
			||||||
gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
 | 
					gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
 | 
				
			||||||
alias gca="git commit --amend"
 | 
					alias gca="git commit --amend"
 | 
				
			||||||
alias gcn="git commit --no-edit"
 | 
					 | 
				
			||||||
alias gcan="git commit --amend --no-edit"
 | 
					alias gcan="git commit --amend --no-edit"
 | 
				
			||||||
alias gcam="git commit --amend -m"
 | 
					alias gcam="git commit --amend -m"
 | 
				
			||||||
alias gst="git status"
 | 
					alias gst="git status"
 | 
				
			||||||
@@ -149,7 +128,14 @@ alias gpsuom="git push --set-upstream origin master"
 | 
				
			|||||||
alias gpall="git remote | xargs -L1 git push"
 | 
					alias gpall="git remote | xargs -L1 git push"
 | 
				
			||||||
alias gl="git pull --rebase"
 | 
					alias gl="git pull --rebase"
 | 
				
			||||||
alias glp="gl && gp"
 | 
					alias glp="gl && gp"
 | 
				
			||||||
alias gd="git diff"
 | 
					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 gds="git diff --staged"
 | 
				
			||||||
alias gsh="git show"
 | 
					alias gsh="git show"
 | 
				
			||||||
alias glg="git log --stat --color"
 | 
					alias glg="git log --stat --color"
 | 
				
			||||||
@@ -183,25 +169,21 @@ alias dbl='docker build --pull'
 | 
				
			|||||||
alias dbl.='docker build --pull .'
 | 
					alias dbl.='docker build --pull .'
 | 
				
			||||||
alias drun='docker run -ti'
 | 
					alias drun='docker run -ti'
 | 
				
			||||||
alias dkl='docker kill'
 | 
					alias dkl='docker kill'
 | 
				
			||||||
dklrm() { docker kill $@ ; docker rm $@; }
 | 
					dklrm() { docker kill $@ ; docker rm $@ }
 | 
				
			||||||
alias dst='docker stop'
 | 
					alias dst='docker stop'
 | 
				
			||||||
alias drst='docker restart'
 | 
					alias drst='docker restart'
 | 
				
			||||||
alias dnet='docker network'
 | 
					alias dnet='docker network'
 | 
				
			||||||
alias dvol='docker volume'
 | 
					alias dvol='docker volume'
 | 
				
			||||||
alias dlg='docker logs -f'
 | 
					alias dlg='docker logs -f'
 | 
				
			||||||
alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh'
 | 
					alias dalpine='docker run -ti --rm alpine /bin/sh'
 | 
				
			||||||
alias drm-stopped='docker container prune'
 | 
					alias drm-stopped='docker container prune'
 | 
				
			||||||
alias drmi-untag='docker image prune'
 | 
					alias drmi-untag='docker image prune'
 | 
				
			||||||
alias dprune='docker system prune -f'
 | 
					alias dprune='docker system prune -f'
 | 
				
			||||||
dsh() { do_dsh 2 exec $@; return $?; }
 | 
					alias dsh='_CMD=dsh _dsh exec'
 | 
				
			||||||
_dsh() { __docker_complete_running_containers $@; }
 | 
					alias drsh='_CMD=drsh _dsh run --rm --entrypoint='
 | 
				
			||||||
drsh() { do_dsh 4 run --rm --entrypoint= $@; return $?; }
 | 
					_dsh() {
 | 
				
			||||||
_drsh() { __docker_container_subcommand $@; }
 | 
					    if [ $# -lt 2 ]; then
 | 
				
			||||||
do_dsh() {
 | 
					        echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2
 | 
				
			||||||
    local minargs=$1
 | 
					 | 
				
			||||||
    shift
 | 
					 | 
				
			||||||
    if [ $# -lt $minargs ]; then
 | 
					 | 
				
			||||||
        echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
 | 
					 | 
				
			||||||
        return 64
 | 
					        return 64
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -234,20 +216,18 @@ do_dsh() {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -z "$prog" ]; then
 | 
					    if [ -z "$prog" ]; then
 | 
				
			||||||
        shell_args=()
 | 
					        set -o pipefail
 | 
				
			||||||
 | 
					        local rm=
 | 
				
			||||||
        if [ "$dowhat" = 'run' ]; then
 | 
					        if [ "$dowhat" = 'run' ]; then
 | 
				
			||||||
            shell_args=(--rm --entrypoint=)
 | 
					            rm='--rm --entrypoint='
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        for shell in bash sh; do
 | 
					        for shell in bash sh; do
 | 
				
			||||||
            shell_path="$(set -o pipefail; docker $dowhat ${shell_args[@]} "$host" which "$shell" <&- | sed 's|[\r\n]||g')"
 | 
					            if shell_path="$(eval "docker $dowhat $rm $host which $shell" <&- | sed 's|[\r\n]||g')"; then
 | 
				
			||||||
            retval=$?
 | 
					 | 
				
			||||||
            if [ $retval -eq 0 ]; then
 | 
					 | 
				
			||||||
                prog="$shell_path"
 | 
					                prog="$shell_path"
 | 
				
			||||||
                break
 | 
					                break
 | 
				
			||||||
            elif [ $retval -ge 125 ]; then
 | 
					 | 
				
			||||||
                return
 | 
					 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
 | 
					        set +o pipefail
 | 
				
			||||||
        if [ -z "$prog" ]; then
 | 
					        if [ -z "$prog" ]; then
 | 
				
			||||||
            echo "Warning: No shell found in path.. trying /bin/sh" >&2
 | 
					            echo "Warning: No shell found in path.. trying /bin/sh" >&2
 | 
				
			||||||
            prog=/bin/sh
 | 
					            prog=/bin/sh
 | 
				
			||||||
@@ -257,32 +237,41 @@ do_dsh() {
 | 
				
			|||||||
    docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
 | 
					    docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias dc='docker-compose'
 | 
					 | 
				
			||||||
alias dm='docker-machine'
 | 
					alias dm='docker-machine'
 | 
				
			||||||
alias dmc='eval $(docker-machine env $1)'
 | 
					dm-con() {
 | 
				
			||||||
 | 
					    eval $(docker-machine env $1)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					alias dmc=dm-con
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias dc='docker-compose'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ZFS aliases
 | 
					# ZFS aliases
 | 
				
			||||||
alias zfs='sudo zfs'
 | 
					alias zfs='sudo zfs'
 | 
				
			||||||
alias zpool='sudo zpool'
 | 
					alias zpool='sudo zpool'
 | 
				
			||||||
alias z=zfs
 | 
					alias z=zfs
 | 
				
			||||||
alias zp=zpool
 | 
					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
 | 
					# General Aliases
 | 
				
			||||||
alias ssha='eval `ssh-agent` ; ssh-add'
 | 
					alias ssha='eval `ssh-agent` ; ssh-add'
 | 
				
			||||||
alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
 | 
					alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
 | 
				
			||||||
alias vimrc="$EDITOR $VIMRC"
 | 
					alias vimrc="$EDITOR $MYVIMRC"
 | 
				
			||||||
alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh"
 | 
					alias zshrc="$EDITOR ~/.zshrc ; exec zsh"
 | 
				
			||||||
alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config"
 | 
					alias gitrc="$EDITOR ~/.config/git/config"
 | 
				
			||||||
alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
 | 
					alias xinitrc="$EDITOR ~/.xinitrc"
 | 
				
			||||||
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
 | 
					alias xresources="$EDITOR ~/.Xresources ; xrdb merge ~/.Xresources"
 | 
				
			||||||
 | 
					alias xsession="$EDITOR ~/.xsession"
 | 
				
			||||||
alias sshc="$EDITOR ~/.ssh/config"
 | 
					alias sshc="$EDITOR ~/.ssh/config"
 | 
				
			||||||
alias dotfiles="cd $DOTFILES"
 | 
					alias dotfiles="cd $DOTFILES"
 | 
				
			||||||
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
 | 
					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 sf=screenfetch
 | 
				
			||||||
alias nf=neofetch
 | 
					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]'"
 | 
					alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias lab="ssh -tt tw '~/ctl' 2>/dev/null"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# vim: ft=sh
 | 
					# vim: ft=sh
 | 
				
			||||||
 
 | 
				
			|||||||
										
											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.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 3.7 MiB  | 
@@ -11,4 +11,4 @@ xrandr --output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate no
 | 
				
			|||||||
       --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
 | 
					       --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
 | 
				
			||||||
       --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
 | 
					       --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
 | 
					[ -e ~/.fehbg ] && ~/.fehbg
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,289 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
package DiffHighlight;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use 5.008;
 | 
					 | 
				
			||||||
use warnings FATAL => 'all';
 | 
					 | 
				
			||||||
use strict;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Highlight by reversing foreground and background. You could do
 | 
					 | 
				
			||||||
# other things like bold or underline if you prefer.
 | 
					 | 
				
			||||||
my @OLD_HIGHLIGHT = (
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.oldnormal'),
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.oldhighlight', "\x1b[7m"),
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.oldreset', "\x1b[27m")
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
my @NEW_HIGHLIGHT = (
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.newnormal', $OLD_HIGHLIGHT[0]),
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.newhighlight', $OLD_HIGHLIGHT[1]),
 | 
					 | 
				
			||||||
	color_config('color.diff-highlight.newreset', $OLD_HIGHLIGHT[2])
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my $RESET = "\x1b[m";
 | 
					 | 
				
			||||||
my $COLOR = qr/\x1b\[[0-9;]*m/;
 | 
					 | 
				
			||||||
my $BORING = qr/$COLOR|\s/;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my @removed;
 | 
					 | 
				
			||||||
my @added;
 | 
					 | 
				
			||||||
my $in_hunk;
 | 
					 | 
				
			||||||
my $graph_indent = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
our $line_cb = sub { print @_ };
 | 
					 | 
				
			||||||
our $flush_cb = sub { local $| = 1 };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Count the visible width of a string, excluding any terminal color sequences.
 | 
					 | 
				
			||||||
sub visible_width {
 | 
					 | 
				
			||||||
	local $_ = shift;
 | 
					 | 
				
			||||||
	my $ret = 0;
 | 
					 | 
				
			||||||
	while (length) {
 | 
					 | 
				
			||||||
		if (s/^$COLOR//) {
 | 
					 | 
				
			||||||
			# skip colors
 | 
					 | 
				
			||||||
		} elsif (s/^.//) {
 | 
					 | 
				
			||||||
			$ret++;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return $ret;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Return a substring of $str, omitting $len visible characters from the
 | 
					 | 
				
			||||||
# beginning, where terminal color sequences do not count as visible.
 | 
					 | 
				
			||||||
sub visible_substr {
 | 
					 | 
				
			||||||
	my ($str, $len) = @_;
 | 
					 | 
				
			||||||
	while ($len > 0) {
 | 
					 | 
				
			||||||
		if ($str =~ s/^$COLOR//) {
 | 
					 | 
				
			||||||
			next
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		$str =~ s/^.//;
 | 
					 | 
				
			||||||
		$len--;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return $str;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub handle_line {
 | 
					 | 
				
			||||||
	my $orig = shift;
 | 
					 | 
				
			||||||
	local $_ = $orig;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# match a graph line that begins a commit
 | 
					 | 
				
			||||||
	if (/^(?:$COLOR?\|$COLOR?[ ])* # zero or more leading "|" with space
 | 
					 | 
				
			||||||
	         $COLOR?\*$COLOR?[ ]   # a "*" with its trailing space
 | 
					 | 
				
			||||||
	      (?:$COLOR?\|$COLOR?[ ])* # zero or more trailing "|"
 | 
					 | 
				
			||||||
	                         [ ]*  # trailing whitespace for merges
 | 
					 | 
				
			||||||
	    /x) {
 | 
					 | 
				
			||||||
	        my $graph_prefix = $&;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		# We must flush before setting graph indent, since the
 | 
					 | 
				
			||||||
		# new commit may be indented differently from what we
 | 
					 | 
				
			||||||
		# queued.
 | 
					 | 
				
			||||||
		flush();
 | 
					 | 
				
			||||||
		$graph_indent = visible_width($graph_prefix);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	} elsif ($graph_indent) {
 | 
					 | 
				
			||||||
		if (length($_) < $graph_indent) {
 | 
					 | 
				
			||||||
			$graph_indent = 0;
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			$_ = visible_substr($_, $graph_indent);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!$in_hunk) {
 | 
					 | 
				
			||||||
		$line_cb->($orig);
 | 
					 | 
				
			||||||
		$in_hunk = /^$COLOR*\@\@ /;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	elsif (/^$COLOR*-/) {
 | 
					 | 
				
			||||||
		push @removed, $orig;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	elsif (/^$COLOR*\+/) {
 | 
					 | 
				
			||||||
		push @added, $orig;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else {
 | 
					 | 
				
			||||||
		flush();
 | 
					 | 
				
			||||||
		$line_cb->($orig);
 | 
					 | 
				
			||||||
		$in_hunk = /^$COLOR*[\@ ]/;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Most of the time there is enough output to keep things streaming,
 | 
					 | 
				
			||||||
	# but for something like "git log -Sfoo", you can get one early
 | 
					 | 
				
			||||||
	# commit and then many seconds of nothing. We want to show
 | 
					 | 
				
			||||||
	# that one commit as soon as possible.
 | 
					 | 
				
			||||||
	#
 | 
					 | 
				
			||||||
	# Since we can receive arbitrary input, there's no optimal
 | 
					 | 
				
			||||||
	# place to flush. Flushing on a blank line is a heuristic that
 | 
					 | 
				
			||||||
	# happens to match git-log output.
 | 
					 | 
				
			||||||
	if (!length) {
 | 
					 | 
				
			||||||
		$flush_cb->();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub flush {
 | 
					 | 
				
			||||||
	# Flush any queued hunk (this can happen when there is no trailing
 | 
					 | 
				
			||||||
	# context in the final diff of the input).
 | 
					 | 
				
			||||||
	show_hunk(\@removed, \@added);
 | 
					 | 
				
			||||||
	@removed = ();
 | 
					 | 
				
			||||||
	@added = ();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub highlight_stdin {
 | 
					 | 
				
			||||||
	while (<STDIN>) {
 | 
					 | 
				
			||||||
		handle_line($_);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	flush();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Ideally we would feed the default as a human-readable color to
 | 
					 | 
				
			||||||
# git-config as the fallback value. But diff-highlight does
 | 
					 | 
				
			||||||
# not otherwise depend on git at all, and there are reports
 | 
					 | 
				
			||||||
# of it being used in other settings. Let's handle our own
 | 
					 | 
				
			||||||
# fallback, which means we will work even if git can't be run.
 | 
					 | 
				
			||||||
sub color_config {
 | 
					 | 
				
			||||||
	my ($key, $default) = @_;
 | 
					 | 
				
			||||||
	my $s = `git config --get-color $key 2>/dev/null`;
 | 
					 | 
				
			||||||
	return length($s) ? $s : $default;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub show_hunk {
 | 
					 | 
				
			||||||
	my ($a, $b) = @_;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# If one side is empty, then there is nothing to compare or highlight.
 | 
					 | 
				
			||||||
	if (!@$a || !@$b) {
 | 
					 | 
				
			||||||
		$line_cb->(@$a, @$b);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# If we have mismatched numbers of lines on each side, we could try to
 | 
					 | 
				
			||||||
	# be clever and match up similar lines. But for now we are simple and
 | 
					 | 
				
			||||||
	# stupid, and only handle multi-line hunks that remove and add the same
 | 
					 | 
				
			||||||
	# number of lines.
 | 
					 | 
				
			||||||
	if (@$a != @$b) {
 | 
					 | 
				
			||||||
		$line_cb->(@$a, @$b);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	my @queue;
 | 
					 | 
				
			||||||
	for (my $i = 0; $i < @$a; $i++) {
 | 
					 | 
				
			||||||
		my ($rm, $add) = highlight_pair($a->[$i], $b->[$i]);
 | 
					 | 
				
			||||||
		$line_cb->($rm);
 | 
					 | 
				
			||||||
		push @queue, $add;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	$line_cb->(@queue);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub highlight_pair {
 | 
					 | 
				
			||||||
	my @a = split_line(shift);
 | 
					 | 
				
			||||||
	my @b = split_line(shift);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Find common prefix, taking care to skip any ansi
 | 
					 | 
				
			||||||
	# color codes.
 | 
					 | 
				
			||||||
	my $seen_plusminus;
 | 
					 | 
				
			||||||
	my ($pa, $pb) = (0, 0);
 | 
					 | 
				
			||||||
	while ($pa < @a && $pb < @b) {
 | 
					 | 
				
			||||||
		if ($a[$pa] =~ /$COLOR/) {
 | 
					 | 
				
			||||||
			$pa++;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		elsif ($b[$pb] =~ /$COLOR/) {
 | 
					 | 
				
			||||||
			$pb++;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		elsif ($a[$pa] eq $b[$pb]) {
 | 
					 | 
				
			||||||
			$pa++;
 | 
					 | 
				
			||||||
			$pb++;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		elsif (!$seen_plusminus && $a[$pa] eq '-' && $b[$pb] eq '+') {
 | 
					 | 
				
			||||||
			$seen_plusminus = 1;
 | 
					 | 
				
			||||||
			$pa++;
 | 
					 | 
				
			||||||
			$pb++;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else {
 | 
					 | 
				
			||||||
			last;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Find common suffix, ignoring colors.
 | 
					 | 
				
			||||||
	my ($sa, $sb) = ($#a, $#b);
 | 
					 | 
				
			||||||
	while ($sa >= $pa && $sb >= $pb) {
 | 
					 | 
				
			||||||
		if ($a[$sa] =~ /$COLOR/) {
 | 
					 | 
				
			||||||
			$sa--;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		elsif ($b[$sb] =~ /$COLOR/) {
 | 
					 | 
				
			||||||
			$sb--;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		elsif ($a[$sa] eq $b[$sb]) {
 | 
					 | 
				
			||||||
			$sa--;
 | 
					 | 
				
			||||||
			$sb--;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else {
 | 
					 | 
				
			||||||
			last;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (is_pair_interesting(\@a, $pa, $sa, \@b, $pb, $sb)) {
 | 
					 | 
				
			||||||
		return highlight_line(\@a, $pa, $sa, \@OLD_HIGHLIGHT),
 | 
					 | 
				
			||||||
		       highlight_line(\@b, $pb, $sb, \@NEW_HIGHLIGHT);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else {
 | 
					 | 
				
			||||||
		return join('', @a),
 | 
					 | 
				
			||||||
		       join('', @b);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# we split either by $COLOR or by character. This has the side effect of
 | 
					 | 
				
			||||||
# leaving in graph cruft. It works because the graph cruft does not contain "-"
 | 
					 | 
				
			||||||
# or "+"
 | 
					 | 
				
			||||||
sub split_line {
 | 
					 | 
				
			||||||
	local $_ = shift;
 | 
					 | 
				
			||||||
	return utf8::decode($_) ?
 | 
					 | 
				
			||||||
		map { utf8::encode($_); $_ }
 | 
					 | 
				
			||||||
			map { /$COLOR/ ? $_ : (split //) }
 | 
					 | 
				
			||||||
			split /($COLOR+)/ :
 | 
					 | 
				
			||||||
		map { /$COLOR/ ? $_ : (split //) }
 | 
					 | 
				
			||||||
		split /($COLOR+)/;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub highlight_line {
 | 
					 | 
				
			||||||
	my ($line, $prefix, $suffix, $theme) = @_;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	my $start = join('', @{$line}[0..($prefix-1)]);
 | 
					 | 
				
			||||||
	my $mid = join('', @{$line}[$prefix..$suffix]);
 | 
					 | 
				
			||||||
	my $end = join('', @{$line}[($suffix+1)..$#$line]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# If we have a "normal" color specified, then take over the whole line.
 | 
					 | 
				
			||||||
	# Otherwise, we try to just manipulate the highlighted bits.
 | 
					 | 
				
			||||||
	if (defined $theme->[0]) {
 | 
					 | 
				
			||||||
		s/$COLOR//g for ($start, $mid, $end);
 | 
					 | 
				
			||||||
		chomp $end;
 | 
					 | 
				
			||||||
		return join('',
 | 
					 | 
				
			||||||
			$theme->[0], $start, $RESET,
 | 
					 | 
				
			||||||
			$theme->[1], $mid, $RESET,
 | 
					 | 
				
			||||||
			$theme->[0], $end, $RESET,
 | 
					 | 
				
			||||||
			"\n"
 | 
					 | 
				
			||||||
		);
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		return join('',
 | 
					 | 
				
			||||||
			$start,
 | 
					 | 
				
			||||||
			$theme->[1], $mid, $theme->[2],
 | 
					 | 
				
			||||||
			$end
 | 
					 | 
				
			||||||
		);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Pairs are interesting to highlight only if we are going to end up
 | 
					 | 
				
			||||||
# highlighting a subset (i.e., not the whole line). Otherwise, the highlighting
 | 
					 | 
				
			||||||
# is just useless noise. We can detect this by finding either a matching prefix
 | 
					 | 
				
			||||||
# or suffix (disregarding boring bits like whitespace and colorization).
 | 
					 | 
				
			||||||
sub is_pair_interesting {
 | 
					 | 
				
			||||||
	my ($a, $pa, $sa, $b, $pb, $sb) = @_;
 | 
					 | 
				
			||||||
	my $prefix_a = join('', @$a[0..($pa-1)]);
 | 
					 | 
				
			||||||
	my $prefix_b = join('', @$b[0..($pb-1)]);
 | 
					 | 
				
			||||||
	my $suffix_a = join('', @$a[($sa+1)..$#$a]);
 | 
					 | 
				
			||||||
	my $suffix_b = join('', @$b[($sb+1)..$#$b]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return visible_substr($prefix_a, $graph_indent) !~ /^$COLOR*-$BORING*$/ ||
 | 
					 | 
				
			||||||
	       visible_substr($prefix_b, $graph_indent) !~ /^$COLOR*\+$BORING*$/ ||
 | 
					 | 
				
			||||||
	       $suffix_a !~ /^$BORING*$/ ||
 | 
					 | 
				
			||||||
	       $suffix_b !~ /^$BORING*$/;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
package main;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Some scripts may not realize that SIGPIPE is being ignored when launching the
 | 
					 | 
				
			||||||
# pager--for instance scripts written in Python.
 | 
					 | 
				
			||||||
$SIG{PIPE} = 'DEFAULT';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DiffHighlight::highlight_stdin();
 | 
					 | 
				
			||||||
exit 0;
 | 
					 | 
				
			||||||
@@ -16,4 +16,6 @@ xrandr --newmode $MODELINE 2>/dev/null || true
 | 
				
			|||||||
xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
 | 
					xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
 | 
				
			||||||
xrandr --output  $OUTPUT --mode $MODENAME
 | 
					xrandr --output  $OUTPUT --mode $MODENAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
 | 
					if [ -f ~/.fehbg -a -x ~/.fehbg ]; then
 | 
				
			||||||
 | 
					    ~/.fehbg
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										31
									
								
								scripts/dpi
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								scripts/dpi
									
									
									
									
									
								
							@@ -1,31 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dpi=$1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$1" ]; then
 | 
					 | 
				
			||||||
    >&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")"
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd"
 | 
					 | 
				
			||||||
mkdir -p "$CONF_DIR"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build xsettingsd.local
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    cat $CONF_DIR/xsettingsd.conf 2>/dev/null || true
 | 
					 | 
				
			||||||
    echo Xft/DPI $(( $dpi*1024 ))
 | 
					 | 
				
			||||||
    echo Gdk/WindowScalingFactor $(( $dpi/96 ))
 | 
					 | 
				
			||||||
    echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
 | 
					 | 
				
			||||||
} > $CONF_DIR/xsettingsd.local
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
 | 
					 | 
				
			||||||
if [ -z "$pid" ]; then
 | 
					 | 
				
			||||||
    xsettingsd -c $CONF_DIR/xsettingsd.local &
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    kill -HUP $pid
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo Xft.dpi: $dpi | xrdb -merge
 | 
					 | 
				
			||||||
@@ -23,3 +23,27 @@ echo cd `pwd`
 | 
				
			|||||||
for file in $conffiles; do
 | 
					for file in $conffiles; do
 | 
				
			||||||
    ln -sfv $confpath/.config/$file .
 | 
					    ln -sfv $confpath/.config/$file .
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd $HOME
 | 
				
			||||||
 | 
					mkdir -p .local/share/ && cd .local/share
 | 
				
			||||||
 | 
					echo cd `pwd`
 | 
				
			||||||
 | 
					ln -sfv $DOTFILES/fonts .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sudo -s << EOF
 | 
				
			||||||
 | 
					cd ~
 | 
				
			||||||
 | 
					echo -n "cd "
 | 
				
			||||||
 | 
					pwd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ln -sfv $DOTFILES .config/
 | 
				
			||||||
 | 
					ln -sfv $userhome/.zshrc .
 | 
				
			||||||
 | 
					ln -sfv $userhome/.profile .
 | 
				
			||||||
 | 
					ln -sfv $userhome/.zprofile .
 | 
				
			||||||
 | 
					ln -sfv $userhome/.vimrc .
 | 
				
			||||||
 | 
					ln -sfv $userhome/.vim/ .
 | 
				
			||||||
 | 
					ln -sfv $userhome/.gtkrc-2.0 .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p .config && cd .config/
 | 
				
			||||||
 | 
					echo -n "cd "
 | 
				
			||||||
 | 
					pwd
 | 
				
			||||||
 | 
					ln -sfv $userhome/.config/gtk-3.0 .
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
#   century is about apparently...
 | 
					#   century is about apparently...
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   Requirements:
 | 
					#   Requirements:
 | 
				
			||||||
#     rofi, xclip, xdotool, curl, xmllint
 | 
					#     rofi, xsel, xdotool, curl, xmllint
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   Usage:
 | 
					#   Usage:
 | 
				
			||||||
#     1. Download all emoji
 | 
					#     1. Download all emoji
 | 
				
			||||||
@@ -21,9 +21,10 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Where to save the emojis file.
 | 
					# Where to save the emojis file.
 | 
				
			||||||
EMOJI_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/emojis.txt"
 | 
					EMOJI_FILE="$HOME/.cache/emojis.txt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Urls of emoji to download.
 | 
					# Urls of emoji to download.
 | 
				
			||||||
 | 
					# You can remove what you don't need.
 | 
				
			||||||
URLS=(
 | 
					URLS=(
 | 
				
			||||||
    'https://emojipedia.org/people/'
 | 
					    'https://emojipedia.org/people/'
 | 
				
			||||||
    'https://emojipedia.org/nature/'
 | 
					    'https://emojipedia.org/nature/'
 | 
				
			||||||
@@ -38,9 +39,7 @@ URLS=(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function download() {
 | 
					function download() {
 | 
				
			||||||
    notify "$(basename "$0")" 'Downloading all emoji for your pleasure'
 | 
					    echo "" > "$EMOJI_FILE"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo -n > "$EMOJI_FILE"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for url in "${URLS[@]}"; do
 | 
					    for url in "${URLS[@]}"; do
 | 
				
			||||||
        echo "Downloading: $url"
 | 
					        echo "Downloading: $url"
 | 
				
			||||||
@@ -59,51 +58,20 @@ function download() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        echo "$emojis" >> "$EMOJI_FILE"
 | 
					        echo "$emojis" >> "$EMOJI_FILE"
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
 | 
					 | 
				
			||||||
    notify "$(basename "$0")" "We're all set!"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function toclip() {
 | 
					 | 
				
			||||||
    xclip -i -selection primary
 | 
					 | 
				
			||||||
    xclip -o -selection primary | xclip -i -selection clipboard
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function repeat() {
 | 
					 | 
				
			||||||
    local rplc str="$1" count="$2"
 | 
					 | 
				
			||||||
    rplc="$(printf "%${count}s")"
 | 
					 | 
				
			||||||
    echo "${rplc// /"$str"}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function notify() {
 | 
					 | 
				
			||||||
   if which notify-send 1>/dev/null 2>/dev/null; then
 | 
					 | 
				
			||||||
        notify-send "$1" "$2"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
function display() {
 | 
					function display() {
 | 
				
			||||||
    emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
 | 
					    emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
 | 
				
			||||||
    update="⏫ Update emoji cache"
 | 
					    line=$(echo "$emoji" | rofi -dmenu -i -p emoji -kb-custom-1 Ctrl+c $@)
 | 
				
			||||||
    emoji=$(printf "$emoji\n$update")
 | 
					 | 
				
			||||||
    line=$(echo "$emoji" | rofi -dmenu -i -p emoji -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
 | 
					 | 
				
			||||||
    exit_code=$?
 | 
					    exit_code=$?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ "${line[@]}" == "$update" ]; then
 | 
					 | 
				
			||||||
        download
 | 
					 | 
				
			||||||
        exit 0
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    line=($line)
 | 
					    line=($line)
 | 
				
			||||||
    last=${line[${#line[@]}-1]}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quantifier="${last:${#last}-1:1}"
 | 
					 | 
				
			||||||
    echo "$quantifier" | egrep -q '^[0-9]+$' || quantifier=1
 | 
					 | 
				
			||||||
    emojis="$(repeat "${line[0]}" "$quantifier")"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ $exit_code == 0 ]; then
 | 
					    if [ $exit_code == 0 ]; then
 | 
				
			||||||
        xdotool type --clearmodifiers "$emojis"
 | 
					        xdotool type --clearmodifiers "${line[0]}"
 | 
				
			||||||
        echo -n "$emojis" | xclip -i
 | 
					 | 
				
			||||||
    elif [ $exit_code == 10 ]; then
 | 
					    elif [ $exit_code == 10 ]; then
 | 
				
			||||||
        echo -n "$emojis" | xclip -i
 | 
					        echo -n "${line[0]}" | xsel -i -b
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,94 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Use rofi to pick fontawesome because that's what this
 | 
					 | 
				
			||||||
#   century is about apparently...
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Requirements:
 | 
					 | 
				
			||||||
#     rofi, xclip, xdotool, curl, xmllint
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Usage:
 | 
					 | 
				
			||||||
#     1. Download all fontawesome
 | 
					 | 
				
			||||||
#        $ rofi-fontawesome --download
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#     2. Run it!
 | 
					 | 
				
			||||||
#        $ rofi-fontawesome
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Notes:
 | 
					 | 
				
			||||||
#     * You'll need a fontawesome font like "Noto fontawesome" or "fontawesomeOne".
 | 
					 | 
				
			||||||
#     * Confirming an item will automatically paste it WITHOUT
 | 
					 | 
				
			||||||
#       writing it to your clipboard.
 | 
					 | 
				
			||||||
#     * Ctrl+C will copy it to your clipboard WITHOUT pasting it.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Where to save the fontawesomes file.
 | 
					 | 
				
			||||||
FONTAWESOME_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/fontawesome.txt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function download() {
 | 
					 | 
				
			||||||
    notify "$(basename "$0")" 'Downloading all Font Awesome for your pleasure'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo -n > "$FONTAWESOME_FILE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    curl https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/advanced-options/metadata/icons.json | \
 | 
					 | 
				
			||||||
        jq '.[] | "\\u" + .unicode + "\t" + .label' -r | \
 | 
					 | 
				
			||||||
        xargs -0 printf \
 | 
					 | 
				
			||||||
        > "$FONTAWESOME_FILE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    notify "$(basename "$0")" "We're all set!"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function toclip() {
 | 
					 | 
				
			||||||
    xclip -i -selection primary
 | 
					 | 
				
			||||||
    xclip -o -selection primary | xclip -i -selection clipboard
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function repeat() {
 | 
					 | 
				
			||||||
    local rplc str="$1" count="$2"
 | 
					 | 
				
			||||||
    rplc="$(printf "%${count}s")"
 | 
					 | 
				
			||||||
    echo "${rplc// /"$str"}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function notify() {
 | 
					 | 
				
			||||||
   if which notify-send 1>/dev/null 2>/dev/null; then
 | 
					 | 
				
			||||||
        notify-send "$1" "$2"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function display() {
 | 
					 | 
				
			||||||
    fontawesome=$(cat "$FONTAWESOME_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
 | 
					 | 
				
			||||||
    update=""$'\t'"Update Font Awesome cache"
 | 
					 | 
				
			||||||
    fontawesome=$(printf "$fontawesome\n$update")
 | 
					 | 
				
			||||||
    line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
 | 
					 | 
				
			||||||
    exit_code=$?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "${line[@]}" == "$update" ]; then
 | 
					 | 
				
			||||||
        download
 | 
					 | 
				
			||||||
        exit 0
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #IFS=$'\t'
 | 
					 | 
				
			||||||
    line=($line)
 | 
					 | 
				
			||||||
    last=${line[${#line[@]}-1]}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quantifier="${last:${#last}-1:1}"
 | 
					 | 
				
			||||||
    echo "$quantifier" | egrep -q '^[0-9]+$' || quantifier=1
 | 
					 | 
				
			||||||
    icons="$(repeat "${line[0]}" "$quantifier")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ $exit_code == 0 ]; then
 | 
					 | 
				
			||||||
        xdotool type --clearmodifiers "$icons"
 | 
					 | 
				
			||||||
        echo -n "$icons" | xclip -i
 | 
					 | 
				
			||||||
    elif [ $exit_code == 10 ]; then
 | 
					 | 
				
			||||||
        echo -n "$icons" | xclip -i
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ "$1" =~ -D|--download ]]; then
 | 
					 | 
				
			||||||
    download
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
elif [[ "$1" =~ -h|--help ]]; then
 | 
					 | 
				
			||||||
    echo "usage: $0 [-D|--download]"
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ ! -f "$FONTAWESOME_FILE" ] && download
 | 
					 | 
				
			||||||
display
 | 
					 | 
				
			||||||
@@ -1,55 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTIFY_APPNAME="$(basename "$0")"
 | 
					 | 
				
			||||||
NOTIFY_ICONPATH="/usr/share/icons/Xenlism-Wildfire/Apps/screenshot.svg"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SCROT_CMD="maim -m 10 -us %"
 | 
					 | 
				
			||||||
FILENAME=`date "+$NOTIFY_APPNAME-%Y-%m-%d-%H%M%S.png"`
 | 
					 | 
				
			||||||
DIRECTORY="$HOME/pictures/screenshots"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SCP_HOST=frebib@Poseidon.nerdhouse.io
 | 
					 | 
				
			||||||
SCP_PATH=/dave/www/frebib.net/s
 | 
					 | 
				
			||||||
URL_PATH=https://frebib.net/s
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
send_notification() {
 | 
					 | 
				
			||||||
    title="$1"
 | 
					 | 
				
			||||||
    body="$2"
 | 
					 | 
				
			||||||
    replace_id="$3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    notify-send \
 | 
					 | 
				
			||||||
        -a "$NOTIFY_APPNAME" \
 | 
					 | 
				
			||||||
        -i "$NOTIFY_ICONPATH" \
 | 
					 | 
				
			||||||
        "$title" "$body" \
 | 
					 | 
				
			||||||
        $(if [ -n "$replace_id" ]; then printf "%s" "-r $replace_id"; fi) \
 | 
					 | 
				
			||||||
        -p
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make the screenshot directory
 | 
					 | 
				
			||||||
mkdir -p "$DIRECTORY"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Take the screenshot and save it
 | 
					 | 
				
			||||||
out_path="$DIRECTORY/$FILENAME"
 | 
					 | 
				
			||||||
if ! error=$(eval ${SCROT_CMD//\%/$out_path} 2>&1); then
 | 
					 | 
				
			||||||
    send_notification "Screenshot error" "Failed to take a screenshot:<br><br>$error" >/dev/null
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
notif_id=$(send_notification "Screenshot uploading" "$FILENAME<br><br>The image is available in the clipboard immediately" || true)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add image to clipboard
 | 
					 | 
				
			||||||
xclip -i "$out_path" -selection primary -t image/png
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 'Upload' the screenshot
 | 
					 | 
				
			||||||
if ! error=$(scp -C $out_path $SCP_HOST:$SCP_PATH 2>&1); then
 | 
					 | 
				
			||||||
    send_notification "Screenshot upload error" "Failed to upload image:<br><br>$error" >/dev/null
 | 
					 | 
				
			||||||
    exit 2
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add URL to clipboard
 | 
					 | 
				
			||||||
out_url="$URL_PATH/$FILENAME"
 | 
					 | 
				
			||||||
echo "$out_url" | xclip -i -selection clipboard
 | 
					 | 
				
			||||||
send_notification "Screenshot uploaded!" "$out_url" $notif_id >/dev/null || true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -26,4 +26,4 @@ vim +PluginUpdate +qall
 | 
				
			|||||||
#########################
 | 
					#########################
 | 
				
			||||||
cd "$VIMDIR/bundle/YouCompleteMe"
 | 
					cd "$VIMDIR/bundle/YouCompleteMe"
 | 
				
			||||||
git submodule update --init --recursive
 | 
					git submodule update --init --recursive
 | 
				
			||||||
./install.py --system-libclang --clang-completer --go-completer --rust-completer --js-completer --java-completer
 | 
					./install.py --system-libclang --clang-completer
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								surface-scripts
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								surface-scripts
									
									
									
									
									
										Submodule
									
								
							 Submodule surface-scripts added at f94e25f0b8
									
								
							
		Reference in New Issue
	
	Block a user