mirror of
https://github.com/frebib/dotfiles.git
synced 2024-06-14 12:57:23 +00:00
Compare commits
155 Commits
surface-do
...
surface
Author | SHA1 | Date | |
---|---|---|---|
7ec8be00be
|
|||
809f27b576
|
|||
c6f653f88c
|
|||
48b116e2a6
|
|||
8bd77f63cd
|
|||
e8a3b91052
|
|||
ef4e16fe5b
|
|||
43a656ee96
|
|||
51c91b4803
|
|||
1a6c9dedc0
|
|||
820c355722
|
|||
868454c26a
|
|||
5185349b8c
|
|||
bedead5cda
|
|||
e140647ba7
|
|||
acf3e57c74
|
|||
732a366b30
|
|||
8f089165ab
|
|||
add6050146
|
|||
4cb02a72da
|
|||
d8b36c48bb
|
|||
861ee18775
|
|||
30cab7d90b
|
|||
56229dea13
|
|||
3471454e8e
|
|||
fc8bfb220b
|
|||
abe83d85c4
|
|||
cfe95eb879
|
|||
c03170a4ef
|
|||
60b52ffc29
|
|||
944d64a5e6
|
|||
01abda43c3
|
|||
1894a6f965
|
|||
990b9ffb30
|
|||
927fdb5660
|
|||
2c3d0edc28
|
|||
6e7f2f1074
|
|||
e0db65a9d8
|
|||
216737535e
|
|||
c5cd1cf36e
|
|||
863de0d0ef
|
|||
ebe00b192a
|
|||
0e4b0aee25
|
|||
8b1f6aaa01
|
|||
12a46db7dd
|
|||
e4bc126708
|
|||
a619593815
|
|||
51edd3ddf7
|
|||
f17a34c65a
|
|||
3dbc78c03b
|
|||
f37cf0f49b
|
|||
abed398b07
|
|||
d0fee7b959
|
|||
f1371b67db
|
|||
677fce1907
|
|||
eb88ac1c04
|
|||
38f0f8ccec
|
|||
289e31b65a
|
|||
700dfdda6f
|
|||
a3c0e5d7de
|
|||
580b9e33b5
|
|||
bbf329eb70
|
|||
09be200c9c
|
|||
650ff6e0c1
|
|||
89e325c503
|
|||
7b1bd4f808
|
|||
3b85967614
|
|||
eeb90bd2e3
|
|||
972ee067ab
|
|||
5d3eb76075
|
|||
7f8c8eccb3
|
|||
815da41076
|
|||
66e0bf911b
|
|||
2562a50f89
|
|||
5c705fde91
|
|||
f0e6807814
|
|||
dbbb533850
|
|||
a057c840cd
|
|||
c89a3829dc
|
|||
f0508fe73e
|
|||
59a138c605
|
|||
e4e62ae40d
|
|||
28dda3e9b0
|
|||
83b006c9d5
|
|||
c260a480aa
|
|||
015fffbbd4
|
|||
94c3cb5741 | |||
3bcb38f9f2
|
|||
d7f1a2193d
|
|||
1418a51626
|
|||
7597a300f4 | |||
f1a353aed5
|
|||
2b2e963c2a
|
|||
b7ef22f4f6
|
|||
9b89946ea4
|
|||
22fa8c810f
|
|||
e854d2b1d5
|
|||
ae67b62ebe
|
|||
b59607c147
|
|||
ea51f79785
|
|||
24cf4ac494
|
|||
fc4560b31f
|
|||
c164577bd7
|
|||
2b631fb2cd
|
|||
40c3f61819
|
|||
c0420a7022
|
|||
1c297d3a77
|
|||
ae1acb194c | |||
73ecd1f584
|
|||
ff4bdb5ec2
|
|||
4579473479
|
|||
fff7fa1452
|
|||
1d590fe8c6
|
|||
f03b3ee8df
|
|||
223034a3ea
|
|||
5bb7c53519
|
|||
8edf74dc4f
|
|||
366873ea47
|
|||
e09e7105dd
|
|||
b512bace44
|
|||
69d884ec5f
|
|||
f17927e0ee
|
|||
3f16439695
|
|||
fd63032392
|
|||
8edd378b66
|
|||
1bc7dd7845
|
|||
ebc435ad33
|
|||
9ee742294d
|
|||
e7baaf0a80 | |||
5d90dda3f5
|
|||
82ad05ca0a
|
|||
d52ece0b12
|
|||
52cb279f3b
|
|||
618b78e62e
|
|||
20e01667f9
|
|||
e3b276aecf
|
|||
3dfed805f9
|
|||
61ab086664
|
|||
7bbd52d4d8
|
|||
b0267c548a
|
|||
46c01329cf
|
|||
9433c26d62
|
|||
c1480498c1
|
|||
809104c10f
|
|||
45192635af
|
|||
8b95f13919
|
|||
e15c8d4ed7
|
|||
f942d3ee31
|
|||
5084da39a5
|
|||
12f5f2bdc9
|
|||
0921b3c91c
|
|||
e31edd3980
|
|||
9d9035a8ad
|
|||
4246ccac86
|
|||
24161b8a4a
|
96
.Xresources
96
.Xresources
@ -1,96 +0,0 @@
|
||||
!!=============================================================================
|
||||
!! 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,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
# Run all system xinitrc shell scripts
|
||||
xinitdir="/etc/X11/xinit/xinitrc.d"
|
||||
@ -11,8 +11,12 @@ if [ -d "$xinitdir" ]; then
|
||||
done
|
||||
fi
|
||||
|
||||
source ~/.profile
|
||||
source ~/.xsession
|
||||
xrdb -merge ~/.Xresources
|
||||
# Source generic xprofile stuff
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/xprofile"
|
||||
|
||||
# Start the gnome-keyring if it's installed
|
||||
if exists gnome-keyring-daemon; then
|
||||
export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg)
|
||||
fi
|
||||
|
||||
exec i3
|
28
.config/X11/xprofile
Normal file
28
.config/X11/xprofile
Normal file
@ -0,0 +1,28 @@
|
||||
#!/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)
|
||||
xrandr --output eDP1 --primary
|
||||
|
||||
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
|
||||
|
||||
~/.local/share/surface-scripts/pend &
|
||||
~/.local/share/surface-scripts/rotationd &
|
89
.config/X11/xresources
Normal file
89
.config/X11/xresources
Normal file
@ -0,0 +1,89 @@
|
||||
! 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: 140
|
||||
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.8
|
||||
urxvt.imFont: xft:Source Code Pro:style=regular:size=9.8
|
||||
urxvt.boldFont: xft:Source Code Pro:style=bold:size=9
|
||||
urxvt.italicFont: xft:Source Code Pro:style=italic:size=9.8
|
||||
urxvt.boldItalicFont: xft:Source Code Pro:style=bold,italic:size=9.8
|
||||
|
||||
|
||||
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
|
467
.config/alacritty/alacritty.yml
Normal file
467
.config/alacritty/alacritty.yml
Normal file
@ -0,0 +1,467 @@
|
||||
# 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~" }
|
1
.config/chrome-flags.conf
Normal file
1
.config/chrome-flags.conf
Normal file
@ -0,0 +1 @@
|
||||
--force-device-scale-factor=1.2
|
@ -17,7 +17,7 @@ shadow-ignore-shaped = false; # Avoid drawing shadow on all shaped windows
|
||||
|
||||
# Opacity
|
||||
menu-opacity = 0.9; # The opacity for menus. (default 1.0)
|
||||
inactive-opacity = 0.8; # Default opacity of inactive windows. (0.0 - 1.0)
|
||||
inactive-opacity = 0.7; # Default opacity of inactive windows. (0.0 - 1.0)
|
||||
active-opacity = 1.0; # Default opacity for active windows. (0.0 - 1.0)
|
||||
frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
|
||||
inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
|
||||
@ -25,25 +25,24 @@ inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacit
|
||||
opacity-rule = [
|
||||
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
];
|
||||
alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing
|
||||
alpha-step = 0.02; # XRender backend: Step size for alpha pictures. Increasing
|
||||
# it may result in less X resource usage,
|
||||
# Yet f ading may look bad.
|
||||
# inactive-dim = 0.2; # Dim inactive windows. (0.0 - 1.0)
|
||||
#inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity.
|
||||
inactive-opacity-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
|
||||
|
||||
# Blurring
|
||||
blur-method = "dual_kawase";
|
||||
blur-strength = 6;
|
||||
blur-background = true; # Blur background of transparent windows.
|
||||
blur-background-exclude = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'" ];
|
||||
blur-background-frame = false; # Blur background of opaque windows with transparent
|
||||
blur-background-exclude = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'", "class_g = 'Polybar'" ];
|
||||
blur-background-frame = true; # Blur background of opaque windows with transparent
|
||||
# frames as well.
|
||||
blur-background-fixed = true; # Do not let blur radius adjust based on window opacity.
|
||||
blur-background-fixed = false; # Do not let blur radius adjust based on window opacity.
|
||||
# Exclude conditions for background blur.
|
||||
# python compton-convgen.py --dump-compton gaussian 9 -f=sigma=10
|
||||
blur-kern = "9,9,0.852144,0.882497,0.904837,0.918512,0.923116,0.918512,0.904837,0.882497,0.852144,0.882497,0.913931,0.937067,0.951229,0.955997,0.951229,0.937067,0.913931,0.882497,0.904837,0.937067,0.960789,0.975310,0.980199,0.975310,0.960789,0.937067,0.904837,0.918512,0.951229,0.975310,0.990050,0.995012,0.990050,0.975310,0.951229,0.918512,0.923116,0.955997,0.980199,0.995012,0.995012,0.980199,0.955997,0.923116,0.918512,0.951229,0.975310,0.990050,0.995012,0.990050,0.975310,0.951229,0.918512,0.904837,0.937067,0.960789,0.975310,0.980199,0.975310,0.960789,0.937067,0.904837,0.882497,0.913931,0.937067,0.951229,0.955997,0.951229,0.937067,0.913931,0.882497,0.852144,0.882497,0.904837,0.918512,0.923116,0.918512,0.904837,0.882497,0.852144"
|
||||
|
||||
# Fading
|
||||
fading = true; # Fade windows during opacity changes.
|
||||
# fade-delta = 16; # The time between steps in a fade in milliseconds. (default 10).
|
||||
fade-in-step = 0.025; # Opacity change between steps while fading in. (default 0.028).
|
||||
fade-in-step = 0.022; # Opacity change between steps while fading in. (default 0.028).
|
||||
fade-out-step = 0.02; # Opacity change between steps while fading out. (default 0.03).
|
||||
# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
|
||||
# fade-exclude = [ ]; # Exclude conditions for fading.
|
||||
@ -78,7 +77,7 @@ invert-color-include = [ ]; # Conditions for windows to be painted with inverte
|
||||
glx-no-stencil = true; # Recommended.
|
||||
glx-copy-from-front = false; # Useful with --glx-swap-method,
|
||||
# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
|
||||
# glx-no-rebind-pixmap = true; # Recommended if it works.
|
||||
glx-no-rebind-pixmap = true; # Recommended if it works.
|
||||
glx-swap-method = "undefined"; # See man page.
|
||||
|
||||
# Window type settings
|
||||
|
@ -1,5 +1,5 @@
|
||||
[global]
|
||||
font = Noto Sans 10
|
||||
font = sans 9
|
||||
|
||||
# Allow a small subset of html markup:
|
||||
# <b>bold</b>
|
||||
@ -21,7 +21,7 @@
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
format = "<b>%s %p</b>\n%b"
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
@ -51,7 +51,6 @@
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
@ -66,16 +65,16 @@
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
|
||||
# 53 = 30 + 23 (bar-height)
|
||||
geometry = "300x5-30+52"
|
||||
geometry = "560x5-30+30"
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
shrink = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing windowmanager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
# transparency = 10
|
||||
transparency = 15
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
@ -103,7 +102,7 @@
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
history_length = 100
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = no
|
||||
@ -119,10 +118,10 @@
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 12
|
||||
padding = 15
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 20
|
||||
horizontal_padding = 16
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
@ -144,12 +143,14 @@
|
||||
browser = /usr/bin/chromium
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = off
|
||||
icon_position = left
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 72
|
||||
|
||||
# Paths to default icons.
|
||||
icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
frame_width = 3
|
||||
icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices
|
||||
frame_width = 0
|
||||
frame_color = "#404552"
|
||||
|
||||
[shortcuts]
|
||||
|
@ -2,43 +2,38 @@
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<match>
|
||||
<test name="family">
|
||||
<string>sans-serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="prepend" binding="weak">
|
||||
<test qual="any" name="family"><string>sans-serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="strong">
|
||||
<string>Noto Sans</string>
|
||||
<string>Noto Color Emoji</string>
|
||||
<string>FontAwesome 5 Pro Light</string>
|
||||
</edit>
|
||||
</match>
|
||||
<match>
|
||||
<test name="family">
|
||||
<string>serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="prepend" binding="weak">
|
||||
<test qual="any" name="family"><string>serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="strong">
|
||||
<string>Noto Serif</string>
|
||||
<string>Noto Color Emoji</string>
|
||||
<string>FontAwesome 5 Pro Light</string>
|
||||
</edit>
|
||||
</match>
|
||||
<match>
|
||||
<test name="family">
|
||||
<string>monospace</string>
|
||||
</test>
|
||||
<edit name="family" mode="prepend" binding="weak">
|
||||
<string>Sauce Code Pro</string>
|
||||
<test qual="any" name="family"><string>monospace</string></test>
|
||||
<edit name="family" mode="prepend" binding="strong">
|
||||
<string>Source Code Pro</string>
|
||||
<string>Noto Color Emoji</string>
|
||||
<string>FontAwesome 5 Pro Light</string>
|
||||
</edit>
|
||||
</match>
|
||||
<match>
|
||||
<test name="family">
|
||||
<string>Apple Color Emoji</string>
|
||||
</test>
|
||||
<edit name="family" mode="prepend" binding="weak">
|
||||
<string>Noto Color Emoji</string>
|
||||
</edit>
|
||||
|
||||
<match target="font">
|
||||
<test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>
|
||||
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="hintstyle" mode="assign">
|
||||
<const>hintfull</const>
|
||||
</edit>
|
||||
<test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
|
||||
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
|
||||
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
|
||||
<edit name="rgba" mode="assign"><const>rgb</const></edit>
|
||||
</match>
|
||||
</fontconfig>
|
||||
|
@ -4,8 +4,10 @@
|
||||
signingkey = CFBB6A86
|
||||
[core]
|
||||
autocrlf = input
|
||||
excludesfile = $HOME/.config/git/gitignore
|
||||
pager = diff-so-fancy | less
|
||||
excludesfile = /home/frebib/.config/git/gitignore
|
||||
pager = diff-highlight | $PAGER
|
||||
[interactive]
|
||||
diffFilter = diff-highlight
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[push]
|
||||
@ -35,8 +37,6 @@
|
||||
suppresscc = self
|
||||
[diff]
|
||||
algorithm = patience
|
||||
[interactive]
|
||||
diffFilter = diff-so-fancy --patch-mode
|
||||
[color]
|
||||
ui = true
|
||||
[color "diff"]
|
||||
@ -51,7 +51,5 @@
|
||||
oldHighlight = red 88
|
||||
newNormal = green
|
||||
newHighlight = green 22
|
||||
[diff-so-fancy]
|
||||
changeHunkIndicators = false
|
||||
|
||||
# vim: noet
|
||||
|
35
.config/gopass/config.yml
Normal file
35
.config/gopass/config.yml
Normal file
@ -0,0 +1,35 @@
|
||||
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,5 +1,15 @@
|
||||
VteTerminal,
|
||||
TerminalScreen,
|
||||
vte-terminal {
|
||||
padding: 6px;
|
||||
padding: 1.3em;
|
||||
}
|
||||
|
||||
.window-frame, .window-frame:backdrop {
|
||||
margin: 0;
|
||||
border-style: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.titlebar {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
@ -1,90 +0,0 @@
|
||||
#!/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
|
@ -1,97 +0,0 @@
|
||||
#!/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);
|
@ -1,5 +0,0 @@
|
||||
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
|
@ -1,93 +0,0 @@
|
||||
# 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]
|
||||
|
||||
#[battery]
|
||||
#label=
|
||||
#interval=5
|
||||
|
||||
[keyboard]
|
||||
label=
|
||||
interval=30
|
||||
|
||||
[separator]
|
||||
|
||||
[clock]
|
||||
interval=5
|
||||
min_width=" 00:00"
|
@ -1,31 +0,0 @@
|
||||
#!/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
|
@ -1,41 +0,0 @@
|
||||
#!/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"
|
||||
}
|
||||
}
|
||||
'
|
@ -1,62 +0,0 @@
|
||||
#!/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
|
@ -1,10 +0,0 @@
|
||||
#!/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)}'
|
@ -1,70 +0,0 @@
|
||||
#!/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
|
@ -1,34 +0,0 @@
|
||||
#!/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;
|
||||
}
|
||||
}
|
||||
'
|
@ -1,76 +0,0 @@
|
||||
#!/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;
|
@ -1,65 +0,0 @@
|
||||
#!/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
|
@ -1,149 +0,0 @@
|
||||
#!/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;
|
@ -1,69 +0,0 @@
|
||||
#!/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;
|
@ -1,27 +0,0 @@
|
||||
#!/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}
|
@ -1,31 +0,0 @@
|
||||
#!/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
|
@ -1,182 +0,0 @@
|
||||
#!/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
|
@ -1,46 +0,0 @@
|
||||
#!/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,25 +3,26 @@
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
set $alt Mod1
|
||||
floating_modifier $mod
|
||||
|
||||
font pango:Noto Sans 9
|
||||
font pango:sans 9
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+apostrophe kill
|
||||
bindsym Mod1+F4 kill
|
||||
bindsym $alt+F4 kill
|
||||
|
||||
# change window focus
|
||||
bindsym $mod+d focus left
|
||||
bindsym $mod+n focus right
|
||||
bindsym $mod+t focus up
|
||||
bindsym $mod+h focus down
|
||||
bindsym $mod+t focus up
|
||||
bindsym $mod+n focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+d move left
|
||||
bindsym $mod+Shift+n move down
|
||||
bindsym $mod+Shift+h move down
|
||||
bindsym $mod+Shift+t move up
|
||||
bindsym $mod+Shift+h move right
|
||||
bindsym $mod+Shift+n move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+m split h
|
||||
@ -30,6 +31,7 @@ bindsym $mod+w split v
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+Shift+f fullscreen toggle global
|
||||
bindsym $mod+f fullscreen toggle
|
||||
popup_during_fullscreen leave_fullscreen
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+p layout stacking
|
||||
@ -44,21 +46,7 @@ bindsym $mod+e sticky toggle
|
||||
bindsym $mod+a focus parent
|
||||
bindsym $mod+o focus child
|
||||
|
||||
# Screen configs #
|
||||
set $bl "DP-5"
|
||||
set $tl "DP-1"
|
||||
set $br "HDMI-0"
|
||||
set $tr "DP-3"
|
||||
|
||||
# Workspace -> Screen
|
||||
workspace 1 output $bl
|
||||
workspace 2 output $br
|
||||
workspace 3 output $tl
|
||||
workspace 4 output $tr
|
||||
workspace 5 output $bl
|
||||
workspace 6 output $br
|
||||
workspace 7 output $tl
|
||||
workspace 8 output $tr
|
||||
set $10 "10:"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace 1
|
||||
@ -70,13 +58,13 @@ bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
bindsym $mod+0 workspace $10
|
||||
|
||||
# move workspaces across screens
|
||||
bindsym $mod+Mod1+d move workspace to output left
|
||||
bindsym $mod+Mod1+n move workspace to output right
|
||||
bindsym $mod+Mod1+t move workspace to output up
|
||||
bindsym $mod+Mod1+h move workspace to output down
|
||||
bindsym $mod+$alt+d move workspace to output left
|
||||
bindsym $mod+$alt+n move workspace to output right
|
||||
bindsym $mod+$alt+t move workspace to output up
|
||||
bindsym $mod+$alt+h move workspace to output down
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
@ -88,7 +76,7 @@ bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
bindsym $mod+Shift+0 move container to workspace $10
|
||||
|
||||
# opens logout/shutdown menu
|
||||
bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh
|
||||
@ -106,29 +94,7 @@ 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.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color
|
||||
|
||||
bar {
|
||||
status_command i3blocks -c ~/.config/i3/blocks/config
|
||||
|
||||
workspace_buttons yes
|
||||
strip_workspace_numbers yes
|
||||
tray_output primary
|
||||
tray_padding 4
|
||||
height 24
|
||||
|
||||
output $bl
|
||||
output $br
|
||||
output primary
|
||||
position bottom
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
exec_always --no-startup-id killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
|
||||
|
||||
# Window rules
|
||||
for_window [class="Pinentry"] floating enable
|
||||
@ -140,35 +106,33 @@ for_window [window_role="i3blocks-update-term"] floating enable
|
||||
for_window [window_role="i3blocks-clock-term"] floating enable
|
||||
for_window [title="^rofi$"] floating enable
|
||||
|
||||
new_window pixel 5
|
||||
new_window none
|
||||
new_float none
|
||||
|
||||
gaps inner 7
|
||||
gaps outer 2
|
||||
#smart_gaps on
|
||||
gaps inner 12
|
||||
gaps outer 4
|
||||
|
||||
focus_follows_mouse yes
|
||||
|
||||
# keybindings
|
||||
bindsym $mod+Shift+j reload
|
||||
#bindsym $mod+Shift+p restart
|
||||
bindsym $mod+c exec chromium
|
||||
bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
|
||||
bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
|
||||
bindsym Mod1+Tab exec ~/.config/i3/alt-tab.sh
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term --geometry 96x30
|
||||
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term
|
||||
bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
|
||||
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term --geometry 96x30 -d "`xcwd`"
|
||||
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term -d "`xcwd`"
|
||||
bindsym $mod+l exec ~/.config/i3/lock.sh
|
||||
# -fg "#CCD3DAE3" -bg "#CC383C4A" -hlbg "#CC5294E2"
|
||||
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
|
||||
bindsym $mod+Shift+p exec rofi-pass
|
||||
bindsym $mod+Shift+e exec rofi-emoji
|
||||
bindsym --release Print exec imgur-screenshot
|
||||
bindsym --release $mod+Print exec imgur-screenshot -f
|
||||
bindsym $mod+Mod1+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
|
||||
bindsym $mod+numbersign exec "termite -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
|
||||
bindsym $mod+Shift+i exec rofi-fontawesome
|
||||
bindsym --release Print exec screenshot
|
||||
bindsym --release $mod+Print exec imgur-screenshot
|
||||
bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
|
||||
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+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
|
||||
|
||||
@ -183,25 +147,27 @@ bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
|
||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
|
||||
exec --no-startup-id "ip monitor | while read; do pkill -RTMIN+15 i3blocks; done"
|
||||
|
||||
# app launch shortcuts
|
||||
exec --no-startup-id ~/.fehbg
|
||||
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
|
||||
exec --no-startup-id xautolock -time 5 -locker ~/.config/i3/lock.sh -nocloseout -nocloseerr
|
||||
exec --no-startup-id feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
|
||||
exec --no-startup-id xautolock -time 5 -locker 'dm-tool lock' -nocloseout -nocloseerr
|
||||
|
||||
# startup programs
|
||||
exec --no-startup-id pulseaudio
|
||||
exec --no-startup-id nextcloud
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id blueman-applet
|
||||
exec --no-startup-id redshift
|
||||
exec --no-startup-id xbindkeys
|
||||
exec --no-startup-id solaar
|
||||
exec --no-startup-id pullover
|
||||
exec --no-startup-id onboard
|
||||
exec --no-startup-id touchegg
|
||||
exec --no-startup-id mailnag
|
||||
exec --no-startup-id compton -b --config ~/.config/compton.conf
|
||||
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 2; exec i3-sensible-terminal'
|
||||
exec i3-msg 'workspace 1; exec chromium'
|
||||
|
||||
# vim:ft=i3
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 7.8 KiB |
@ -1,40 +0,0 @@
|
||||
#!/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,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
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)
|
||||
option=$(echo "lock|logout|sleep|hibernate|power off|reboot|windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 8 -lines 7 -location 3 -tokenize false -matching normal | xargs)
|
||||
|
||||
case $option in
|
||||
lock) ./lock.sh;;
|
||||
|
16
.config/latexmk/latexmkrc
Normal file
16
.config/latexmk/latexmkrc
Normal file
@ -0,0 +1,16 @@
|
||||
$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]'";
|
||||
};
|
||||
}
|
29
.config/mailnag/mailnag.cfg
Normal file
29
.config/mailnag/mailnag.cfg
Normal file
@ -0,0 +1,29 @@
|
||||
[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
|
42
.config/mimeapps.list
Normal file
42
.config/mimeapps.list
Normal file
@ -0,0 +1,42 @@
|
||||
[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
|
313
.config/polybar/config
Normal file
313
.config/polybar/config
Normal file
@ -0,0 +1,313 @@
|
||||
[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:eDP1}
|
||||
dpi = ${xrdb:Xft.dpi:-1}
|
||||
fixed-center = false
|
||||
enable-ipc = true
|
||||
|
||||
width = 100%
|
||||
height = 44
|
||||
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 = -6
|
||||
tray-offset-y = -2
|
||||
tray-maxsize = 24
|
||||
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 = 3
|
||||
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.warning}
|
||||
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 = 1
|
||||
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-6 =
|
||||
ramp-7 =
|
||||
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
|
11
.config/polybar/update.sh
Executable file
11
.config/polybar/update.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/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
|
141
.config/polybar/weather.sh
Executable file
141
.config/polybar/weather.sh
Executable file
@ -0,0 +1,141 @@
|
||||
#!/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
|
16
.config/procps/toprc
Normal file
16
.config/procps/toprc
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
||||
|
42
.config/rofi/arc-dark.rasi
Normal file
42
.config/rofi/arc-dark.rasi
Normal file
@ -0,0 +1,42 @@
|
||||
* {
|
||||
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 */
|
@ -8,9 +8,9 @@ rofi.color-normal: #00383C4A, #D3DAE3, #00383C4A, #5294E2, #ECEFF1
|
||||
rofi.bc: #CC383C4A
|
||||
rofi.bw: 5
|
||||
rofi.padding: 8
|
||||
rofi.lines: 12
|
||||
rofi.lines: 14
|
||||
rofi.width: 40
|
||||
rofi.font: Noto Sans 14
|
||||
rofi.font: Noto Sans 18
|
||||
rofi.line-margin: 6
|
||||
rofi.sep: |
|
||||
rofi.prompt: >
|
||||
|
145
.config/rofi/config.rasi
Normal file
145
.config/rofi/config.rasi
Normal file
@ -0,0 +1,145 @@
|
||||
configuration {
|
||||
theme: "arc-dark";
|
||||
font: "sans 14";
|
||||
dpi: 0;
|
||||
width: 40;
|
||||
lines: 12;
|
||||
|
||||
/* 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 */
|
1
.config/systemd/user/sockets.target.wants/pulseaudio.socket
Symbolic link
1
.config/systemd/user/sockets.target.wants/pulseaudio.socket
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/user/pulseaudio.socket
|
@ -1,5 +1,5 @@
|
||||
[options]
|
||||
font = SauceCodePro 9
|
||||
font = monospace 9.5
|
||||
scrollback_lines = 1000000
|
||||
cursor_blink = off
|
||||
size_hints = true
|
||||
|
@ -5,7 +5,7 @@
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/documents"
|
||||
XDG_DESKTOP_DIR="$HOME"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
|
9
.config/vim/.gitignore
vendored
9
.config/vim/.gitignore
vendored
@ -1,7 +1,8 @@
|
||||
/bundle/
|
||||
/.netrwhist
|
||||
/autoload/plug.vim
|
||||
/plug/
|
||||
/spell/
|
||||
/swapfiles/
|
||||
/viminfo
|
||||
/viminf*.tmp
|
||||
/vim-latex
|
||||
/.netrwhist
|
||||
/viminf*.tmp
|
||||
/viminfo
|
||||
|
@ -1,13 +1,15 @@
|
||||
set nocompatible " be iMproved, required
|
||||
|
||||
" Reconfigure Vim to be clean!
|
||||
set rtp+=~/.config/vim
|
||||
set directory=.,~/.config/vim
|
||||
set viminfo+=n~/.config/vim/viminfo
|
||||
set directory=$HOME/.config/vim/swapfiles//
|
||||
set undodir=$XDG_CACHE_HOME/vim/undo//
|
||||
set directory=$XDG_CACHE_HOME/vim/swap//
|
||||
set backupdir=$XDG_CACHE_HOME/vim/backup//
|
||||
set viminfo+='1000,n$XDG_CACHE_HOME/vim/viminfo
|
||||
set runtimepath-=$HOME/.vim
|
||||
set runtimepath^=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
|
||||
let g:netrw_home=$XDG_CACHE_HOME.'/vim'
|
||||
|
||||
syntax enable
|
||||
filetype plugin on
|
||||
silent !mkdir -p $XDG_CACHE_HOME/vim/swap $XDG_CACHE_HOME/vim/undo $XDG_CACHE_HOME/vim/backup
|
||||
|
||||
set tabstop=4
|
||||
set shiftwidth=0 " Use tabstop
|
||||
@ -40,12 +42,16 @@ let mapleader="\<space>"
|
||||
" Autosave settings
|
||||
function! SaveIfExist()
|
||||
if @% != "" && filereadable(@%) && !&readonly && &modified
|
||||
SyntasticCheck
|
||||
write
|
||||
endif
|
||||
endfunction
|
||||
set autowrite
|
||||
autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist()
|
||||
|
||||
" Auto-resize split on window resize
|
||||
autocmd VimResized * wincmd =
|
||||
|
||||
" Search options
|
||||
set hlsearch
|
||||
set ignorecase
|
||||
@ -76,34 +82,41 @@ set cul cuc
|
||||
highlight CursorLine cterm=NONE ctermbg=8
|
||||
highlight CursorColumn cterm=NONE ctermbg=8
|
||||
|
||||
" set the runtime path to include Vundle and initialize
|
||||
set rtp+=~/.config/vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
call vundle#rc('~/.config/vim/bundle')
|
||||
if empty(glob('$XDG_CONFIG_HOME/vim/autoload/plug.vim'))
|
||||
silent !curl -fsSLo $XDG_CONFIG_HOME/vim/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall --sync | source $VIMRC
|
||||
endif
|
||||
|
||||
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'
|
||||
call plug#begin('$XDG_CONFIG_HOME/vim/plug')
|
||||
|
||||
call vundle#end()
|
||||
Plug 'Valloric/YouCompleteMe'
|
||||
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
|
||||
let g:use_dvorak = 1
|
||||
@ -115,17 +128,32 @@ if !exists('g:ycm_semantic_triggers')
|
||||
endif
|
||||
let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
|
||||
"let g:vimtex_view_method='zathura'
|
||||
let g:tex_flavor='latex'
|
||||
let g:tex_flavor='xelatex'
|
||||
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 setlocal spell
|
||||
autocmd FileType tex TagbarOpen
|
||||
augroup vimtex
|
||||
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
|
||||
let g:Powerline_symbols = 'fancy'
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline_theme='solarized'
|
||||
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
|
||||
let vim_markdown_preview_toggle=0
|
||||
@ -149,10 +177,12 @@ let g:tagbar_singleclick = 1
|
||||
let g:tagbar_autopreview = 1
|
||||
|
||||
" NERDTree configuration
|
||||
map <leader><space> :NERDTreeToggle<CR>
|
||||
map <leader><tab> :NERDTreeToggle<CR>
|
||||
|
||||
" FZF configurationn
|
||||
map <leader><tab> :Files<CR>
|
||||
map <leader><space> :Files<CR>
|
||||
map <leader>b :Buffers<CR>
|
||||
map <leader>l :Lines<CR>
|
||||
|
||||
" Disable mouse
|
||||
set mouse=nicr
|
||||
@ -192,10 +222,6 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
|
||||
noremap h j
|
||||
noremap t k
|
||||
noremap n l
|
||||
noremap D H
|
||||
noremap H J
|
||||
noremap T K
|
||||
noremap N L
|
||||
|
||||
noremap gh gj
|
||||
noremap gt gk
|
||||
@ -250,7 +276,20 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
|
||||
\ 'x': ['tsd', 'tsD'],
|
||||
\}
|
||||
|
||||
let NERDTreeMapOpenInTab='\t'
|
||||
" NERDTree configuration
|
||||
let NERDTreeMapOpenInTab='\t' " prevent t opening file
|
||||
|
||||
" Also remap keys in :Explore
|
||||
augroup netrw_dvorak_fix
|
||||
autocmd!
|
||||
autocmd filetype netrw call Fix_netrw_maps_for_dvorak()
|
||||
augroup END
|
||||
function! Fix_netrw_maps_for_dvorak()
|
||||
noremap <buffer> d h
|
||||
noremap <buffer> h j
|
||||
noremap <buffer> t k
|
||||
noremap <buffer> n l
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
@ -265,5 +304,8 @@ com! WQA wqa
|
||||
" Write with sudo
|
||||
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 yaml setlocal ts=2 sts=2 sw=2 et
|
||||
|
4
.config/zsh/.gitignore
vendored
Normal file
4
.config/zsh/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
/antigen/
|
||||
/log/
|
||||
/histfile
|
||||
/.zcompdump*
|
@ -3,12 +3,8 @@ unsetopt MULTIBYTE
|
||||
# Config and cache directory paths
|
||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
ZSH_DIR="$CONFIG_DIR/zsh"
|
||||
ZSH_CACHE_DIR="$CONFIG_DIR/oh-my-zsh/cache"
|
||||
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
|
||||
LOG_DIR="$ZSH_DIR/log"
|
||||
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
|
||||
|
||||
mkdir -p "$ZSH_CACHE_DIR" "$ZSH_DIR" "$LOG_DIR"
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
HISTFILE="$ZSH_DIR/histfile"
|
||||
HISTSIZE=999999
|
||||
@ -17,14 +13,14 @@ SAVEHIST=999999
|
||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
|
||||
|
||||
# Only set tty if running interactively
|
||||
if exists tty && tty -s; then
|
||||
if exists tty && tty -s 1>/dev/null 2>/dev/null; then
|
||||
# Resolve at shell runtime
|
||||
export GPG_TTY="$(tty)"
|
||||
fi
|
||||
|
||||
# Set some useful ZSH/Bash options
|
||||
setopt sharehistory histignorealldups histignorespace histreduceblanks
|
||||
setopt pathdirs autocd autopushd extendedglob alwaystoend dvorak
|
||||
setopt pathdirs autocd autopushd extendedglob nullglob alwaystoend interactivecomments dvorak
|
||||
|
||||
# Completion initialisation
|
||||
autoload -U compinit ; compinit
|
||||
@ -40,10 +36,19 @@ zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower
|
||||
zstyle ':completion:*' rehash true
|
||||
zstyle ':completion:*' menu select
|
||||
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
|
||||
zstyle ':compinstall' filename "$HOME/.zshrc"
|
||||
zstyle ':compinstall' filename "${ZDOTDIR:-~}/.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
|
||||
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
|
||||
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
|
||||
antigen_src="$ADOTDIR/antigen.zsh"
|
||||
if [ ! -f "$antigen_src" ]; then
|
||||
git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
|
||||
@ -52,14 +57,17 @@ source "$antigen_src"
|
||||
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle Tarrasch/zsh-syntax-highlighting
|
||||
antigen bundle zsh-users/zsh-history-substring-search
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting@feature/redrawhook
|
||||
antigen bundle mafredri/zsh-async
|
||||
|
||||
antigen apply
|
||||
|
||||
# Vim mode!
|
||||
bindkey -v
|
||||
export KEYTIMEOUT=25
|
||||
|
||||
# Set some key-binds
|
||||
bindkey -e
|
||||
bindkey "^[[1;3C" forward-word
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;3D" backward-word
|
||||
@ -68,19 +76,27 @@ bindkey "^[[7~" beginning-of-line
|
||||
bindkey "^[[8~" end-of-line
|
||||
bindkey "^[[3~" delete-char
|
||||
bindkey "^[[3;3~" delete-word
|
||||
|
||||
export WORDCHARS='*?_[]~=&;!#$%^(){}'
|
||||
x-bash-backward-kill-word(){
|
||||
WORDCHARS='' zle kill-word
|
||||
}
|
||||
zle -N x-bash-backward-kill-word
|
||||
bindkey '^[^[[3~' x-bash-backward-kill-word
|
||||
bindkey '^[^[[3^' x-bash-backward-kill-word
|
||||
bindkey '^[[A' 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 '^[[A' history-substring-search-up
|
||||
bindkey '^[[B' history-substring-search-down
|
||||
bindkey "^V" edit-command-line
|
||||
bindkey -M vicmd "^V" edit-command-line
|
||||
|
||||
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+=(history-substring-search-up history-substring-search-down)
|
||||
|
||||
@ -88,25 +104,31 @@ HISTORY_SUBSTRING_SEARCH_FUZZY=true
|
||||
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
|
||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
|
||||
|
||||
typeset -A ZSH_HIGHLIGHT_STYLES
|
||||
ZSH_HIGHLIGHT_STYLES[default]='fg=12'
|
||||
default='fg=12'
|
||||
prog='fg=blue'
|
||||
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[reserved-word]='fg=yellow'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,underline'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[function]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[command]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]=$prog
|
||||
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=4'
|
||||
ZSH_HIGHLIGHT_STYLES[function]=$prog
|
||||
ZSH_HIGHLIGHT_STYLES[command]=$prog
|
||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=4'
|
||||
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[path]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=yellow,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[path_separator]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=208'
|
||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
|
||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
|
||||
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=12'
|
||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=12'
|
||||
ZSH_HIGHLIGHT_STYLES[history-expansion]=$default
|
||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=$default
|
||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=$default
|
||||
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
|
||||
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
|
||||
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
|
||||
@ -115,10 +137,13 @@ ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold'
|
||||
|
||||
source "$DOTFILES/aliases"
|
||||
|
||||
# Load some manual plugins
|
||||
source "$ZSH_DIR/plugins/sudo.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
|
@ -1,63 +1,7 @@
|
||||
# ZSH Theme emulating the Fish shell's default prompt.
|
||||
|
||||
_fishy_collapsed_wd() {
|
||||
echo $(pwd | perl -pe '
|
||||
BEGIN {
|
||||
binmode STDIN, ":encoding(UTF-8)";
|
||||
binmode STDOUT, ":encoding(UTF-8)";
|
||||
}; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g
|
||||
')
|
||||
}
|
||||
|
||||
git_prompt_info() {
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
}
|
||||
git_prompt_status() {
|
||||
# Get the status of the working tree
|
||||
INDEX=$(command git status --porcelain -b 2> /dev/null)
|
||||
STATUS=""
|
||||
if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^M ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^R ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
fi
|
||||
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
|
||||
fi
|
||||
echo $STATUS
|
||||
pwd | sed -E 's|^'$HOME'|~|;s|(.*)/|\1%|;s|((^\|/)\.?[^/%]{1})[^/%]*|\1|g;s|(.*)%|\1/|'
|
||||
}
|
||||
|
||||
# Required for dynamic prompt
|
||||
@ -67,17 +11,4 @@ local user_color='green'; [ $UID -eq 0 ] && user_color='red'
|
||||
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
|
||||
PROMPT2='%F{red}\ %f'
|
||||
|
||||
local return_status="%F{red}%(?..%?)%f"
|
||||
RPROMPT='${return_status}$(git_prompt_info)$(git_prompt_status)%{$reset_color%}'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" "
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY=""
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+"
|
||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!"
|
||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-"
|
||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>"
|
||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#"
|
||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
|
||||
RPROMPT='%F{red}%(?.. %?)%f'
|
||||
|
74
.config/zsh/plugins/git-rprompt.zsh
Normal file
74
.config/zsh/plugins/git-rprompt.zsh
Normal file
@ -0,0 +1,74 @@
|
||||
# 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,14 +4,11 @@ sudo-command-line() {
|
||||
[[ -z $BUFFER ]] && zle up-history
|
||||
if [[ $BUFFER == sudo\ * ]]; then
|
||||
LBUFFER="${LBUFFER#sudo }"
|
||||
elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]]; then
|
||||
LBUFFER="${LBUFFER#$EDITOR }"
|
||||
LBUFFER="${LBUFFER#vi }"
|
||||
LBUFFER="svi $LBUFFER"
|
||||
elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]; then
|
||||
elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]] || [[ $BUFFER == vim\ * ]]; then
|
||||
LBUFFER="s$LBUFFER"
|
||||
elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]|| [[ $BUFFER == svim\ * ]]; then
|
||||
LBUFFER="${LBUFFER#sudoedit }"
|
||||
LBUFFER="${LBUFFER#svi }"
|
||||
LBUFFER="$EDITOR $LBUFFER"
|
||||
LBUFFER="${LBUFFER#s}"
|
||||
else
|
||||
LBUFFER="sudo $LBUFFER"
|
||||
fi
|
||||
|
2
.fehbg
2
.fehbg
@ -1,2 +0,0 @@
|
||||
#!/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
|
72
.profile
72
.profile
@ -2,35 +2,53 @@ export LC_ALL=en_GB.UTF-8
|
||||
export LANG=en_GB.UTF-8
|
||||
export LC_NUMERIC=en_GB
|
||||
|
||||
export CONFIG_DIR="$HOME/.config"
|
||||
export XDG_CONFIG_HOME="$CONFIG_DIR"
|
||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
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
|
||||
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
|
||||
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
|
||||
*) thisfile="$(find /proc/$$/fd/ | xargs readlink -f | grep .profile | head -n1)";;
|
||||
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep profile | head -n1)";;
|
||||
esac
|
||||
export DOTFILES="$(dirname "${thisfile:-$CONFIG_DIR/dotfiles}")"
|
||||
export PATH="${PATH}:$DOTFILES/scripts"
|
||||
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
|
||||
|
||||
# Allow Vim to load from ~/.config/vim
|
||||
export VIMDIR="$CONFIG_DIR/vim"
|
||||
export MYVIMRC="$VIMDIR/vimrc"
|
||||
export VIMINIT=":so $MYVIMRC"
|
||||
|
||||
export EDITOR="vim"
|
||||
export VISUAL="vim"
|
||||
export MANPAGER="less -+N"
|
||||
export TERMINAL="termite"
|
||||
export BROWSER="chromium"
|
||||
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
|
||||
export QT_QPA_PLATFORMTHEME=gtk2
|
||||
export GOPATH="$HOME/.cache/go"
|
||||
|
||||
# Override paths for non-compliant programs
|
||||
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
|
||||
|
||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
|
||||
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:$HOME/.local/share/surface-scripts:$GOPATH/bin"
|
||||
|
||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
|
||||
|
||||
# Configure less and add colours
|
||||
export LESS="-RI"
|
||||
export PAGER="less $LESS"
|
||||
export PAGER="less"
|
||||
export MANPAGER="less -+N"
|
||||
# Disable histfile
|
||||
export LESSHISTFILE=-
|
||||
|
||||
if exists tput; then
|
||||
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
|
||||
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
|
||||
@ -48,24 +66,16 @@ if exists tput; then
|
||||
fi
|
||||
|
||||
# Source secret keys and values into environment
|
||||
if [ -f "$CONFIG_DIR/secrets" ]; then
|
||||
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
|
||||
set -o allexport
|
||||
source $CONFIG_DIR/secrets
|
||||
source $XDG_CONFIG_HOME/secrets
|
||||
set +o allexport
|
||||
fi
|
||||
|
||||
# Merge system clipboards
|
||||
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
|
||||
autocutsel -fork
|
||||
autocutsel -selection PRIMARY -fork
|
||||
fi
|
||||
|
||||
# Start a dbus session daemon for programs that require it
|
||||
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
|
||||
eval $(dbus-launch --sh-syntax --exit-with-session)
|
||||
dbus-update-activation-environment --systemd DISPLAY
|
||||
dbus-update-activation-environment --systemd \
|
||||
DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
|
||||
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
|
||||
|
19
README.md
19
README.md
@ -1,17 +1,10 @@
|
||||
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
|
||||
# frebib/dotfiles
|
||||
|
||||
## Usage
|
||||
To quickly get started, clone this repo and run the setup scripts.
|
||||
To get started, clone this repo and link the relevant files/directories
|
||||
|
||||
```shell
|
||||
git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
|
||||
cd ~/.config/dotfiles
|
||||
|
||||
You can put the `dotfiles` directory anywhere, just be sure to update the `$DOTFILES` envvar in `.profile`
|
||||
|
||||
To link all the configuration files, run the init-dotfiles script:
|
||||
|
||||
**Be warned that this will destroy your current configs without warning**
|
||||
|
||||
scripts/init-dotfiles.sh
|
||||
|
||||
To install all of my packages & programs, check out my other repo <https://github.com/frebib/arch-install/> and the [`userinstall`](https://github.com/frebib/arch-install/blob/master/userinstall) script
|
||||
ln -sfv .config/dotfiles/.config/* .config/
|
||||
ln -sfv .config/dotfiles/.profile .zprofile
|
||||
```
|
||||
|
185
aliases
185
aliases
@ -1,28 +1,9 @@
|
||||
#!/usr/bin/zsh
|
||||
|
||||
# Common Aliases
|
||||
# Global aliases for ZSH
|
||||
if alias -g 2>/dev/null; then
|
||||
alias -g ...=../..
|
||||
alias -g ....=../../..
|
||||
alias -g .....=../../../..
|
||||
alias -g ......=../../../../..
|
||||
|
||||
alias ..la="cd ..;la"
|
||||
alias ..ll="cd..;ll"
|
||||
alias ..l="..ll"
|
||||
|
||||
alias l=ll
|
||||
alias ll="ls -lFh --group-directories-first"
|
||||
alias la="ls -lAFh --group-directories-first"
|
||||
alias lt='ls -lAFh --sort=time'
|
||||
alias lsz='ls -lAFh --sort=size'
|
||||
alias al=la # No, I don't need the Mono Assembly Linker
|
||||
|
||||
alias md="mkdir -p"
|
||||
alias rd="rmdir -p"
|
||||
mcd(){ mkdir -p $@ && cd $@; }
|
||||
alias -- -='cd -'
|
||||
alias cdt='cd `mktemp -d`'
|
||||
alias grep='grep --color'
|
||||
alias -g H='| head'
|
||||
alias -g T='| tail'
|
||||
alias -g G='| grep'
|
||||
@ -37,9 +18,38 @@ 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 <<< "$@"; }
|
||||
fi
|
||||
|
||||
# File default aliases
|
||||
if alias -s 2>/dev/null; then
|
||||
alias -s pdf="open"
|
||||
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"
|
||||
fi
|
||||
|
||||
alias ..la="cd ..;la"
|
||||
alias ..ll="cd..;ll"
|
||||
alias ..l="..ll"
|
||||
|
||||
alias l=ll
|
||||
alias ls='ls --color=auto'
|
||||
alias ll="ls -lFh --group-directories-first"
|
||||
alias la="ls -lAFh --group-directories-first"
|
||||
alias lt='ls -lAFh --sort=time'
|
||||
alias lsz='ls -lAFh --sort=size'
|
||||
alias al=la # No, I don't need the Mono Assembly Linker
|
||||
|
||||
alias md="mkdir -p"
|
||||
alias rd="rmdir -p"
|
||||
alias -- -='cd -'
|
||||
alias cdt='cd `mktemp -d`'
|
||||
|
||||
alias svi=sudoedit
|
||||
alias svim=sudoedit
|
||||
# This will enable us to use aliases in sudo.
|
||||
# (If alias finishes with a space or tab, the shell will check if the next command is also aliased.)
|
||||
# Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh
|
||||
@ -47,69 +57,80 @@ alias sudo='sudo -E '
|
||||
alias open=xdg-open
|
||||
|
||||
# Command rewrites
|
||||
alias ls='ls --color=always'
|
||||
alias rm='rm -i'
|
||||
alias mv='mv -i'
|
||||
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 env='env | sort'
|
||||
alias ssh="ssh -tt"
|
||||
alias vim="vim --servername vim -p"
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
|
||||
alias vi=vim
|
||||
alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
|
||||
alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
|
||||
alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
|
||||
exists gopass && alias pass='gopass'
|
||||
alias abuild='docker run -ti --rm \
|
||||
alias alpine-sdk='docker run -ti --rm \
|
||||
-e USER \
|
||||
-e UID="$(id -u)" \
|
||||
-e PWD \
|
||||
-e HOME \
|
||||
-w $PWD \
|
||||
-v $PWD:$PWD \
|
||||
-v ~/.abuild:$HOME/.abuild \
|
||||
frebib/alpine-sdk:edge abuild'
|
||||
-v ~/.abuild/distfiles:/var/cache/distfiles \
|
||||
frebib/alpine-sdk:edge'
|
||||
alias abuild='alpine-sdk abuild'
|
||||
alias abuild-sign='alpine-sdk abuild-sign'
|
||||
alias apk='alpine-sdk apk'
|
||||
alias hddtemps='find /sys/block/ -name sd\* | sed "s|sys/block|dev|g" | sudo xargs hddtemp | sort -t: -k3'
|
||||
alias stripansi='sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g"'
|
||||
alias calc="noglob bc -l <<<" # noglob allows * without quoting
|
||||
|
||||
exists pacman && \
|
||||
alias pacman='pacman --color=always'
|
||||
exists yay && \
|
||||
alias p='yay'
|
||||
exists tree && \
|
||||
alias tree='tree --dirsfirst -C -F'
|
||||
exists make && \
|
||||
alias make="make -j$(nproc)"
|
||||
exists gopass && \
|
||||
alias pass='gopass'
|
||||
echo | busybox grep --color '' >/dev/null 2>&1 && \
|
||||
alias grep='grep --color'
|
||||
vim --version 2>/dev/null | command grep -q +clientserver && \
|
||||
alias vim="vim --servername vim -p"
|
||||
|
||||
# Function aliases
|
||||
env() { command env $@ | stripansi | sort; }
|
||||
mcd(){ mkdir -p -- $@ && cd -- $@; }
|
||||
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
|
||||
|
||||
# System aliases
|
||||
alias s="sudo systemctl"
|
||||
alias j=journalctl
|
||||
alias p=pacaur
|
||||
alias ps='ps aux'
|
||||
alias catn='tail -n +1 --'
|
||||
alias kl='killall -s 9'
|
||||
alias chx='chmod +x'
|
||||
|
||||
# File default aliases
|
||||
pdf() {
|
||||
evince $@ NE BG
|
||||
}
|
||||
alias -s pdf=pdf
|
||||
alias -s zip="unzip -l"
|
||||
alias -s rar="unrar l"
|
||||
alias -s tar="tar tf"
|
||||
alias -s gz="tar tf"
|
||||
alias -s jar="java -jar"
|
||||
alias -s git="git clone --recursive"
|
||||
|
||||
# Git Aliases
|
||||
alias g=git
|
||||
alias gignore='$EDITOR .gitignore'
|
||||
alias gitc='$EDITOR ~/.config/git/config'
|
||||
alias ggignore='$EDITOR ~/.config/git/gitignore'
|
||||
alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
|
||||
alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
|
||||
alias gcl="git clone --recursive"
|
||||
alias gco="git checkout"
|
||||
alias gcom="git checkout master"
|
||||
alias ga="git add"
|
||||
alias gap="git add -p"
|
||||
alias gau="git add -u"
|
||||
alias gaN="git add -N"
|
||||
alias gaa="ga -A"
|
||||
alias grm="git rm"
|
||||
alias gc="git commit"
|
||||
alias gcm="gc -m"
|
||||
gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
|
||||
alias gca="git commit --amend"
|
||||
alias gcn="git commit --no-edit"
|
||||
alias gcan="git commit --amend --no-edit"
|
||||
alias gcam="git commit --amend -m"
|
||||
alias gst="git status"
|
||||
@ -128,14 +149,7 @@ alias gpsuom="git push --set-upstream origin master"
|
||||
alias gpall="git remote | xargs -L1 git push"
|
||||
alias gl="git pull --rebase"
|
||||
alias glp="gl && gp"
|
||||
gd() {
|
||||
local commit=$1
|
||||
if [ -z "$commit" ] || [ ${commit:0:1} != '@' ]; then
|
||||
git diff $@
|
||||
else
|
||||
git diff "@~${commit:1}^!"
|
||||
fi
|
||||
}
|
||||
alias gd="git diff"
|
||||
alias gds="git diff --staged"
|
||||
alias gsh="git show"
|
||||
alias glg="git log --stat --color"
|
||||
@ -169,21 +183,25 @@ alias dbl='docker build --pull'
|
||||
alias dbl.='docker build --pull .'
|
||||
alias drun='docker run -ti'
|
||||
alias dkl='docker kill'
|
||||
dklrm() { docker kill $@ ; docker rm $@ }
|
||||
dklrm() { docker kill $@ ; docker rm $@; }
|
||||
alias dst='docker stop'
|
||||
alias drst='docker restart'
|
||||
alias dnet='docker network'
|
||||
alias dvol='docker volume'
|
||||
alias dlg='docker logs -f'
|
||||
alias dalpine='docker run -ti --rm alpine /bin/sh'
|
||||
alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh'
|
||||
alias drm-stopped='docker container prune'
|
||||
alias drmi-untag='docker image prune'
|
||||
alias dprune='docker system prune -f'
|
||||
alias dsh='_CMD=dsh _dsh exec'
|
||||
alias drsh='_CMD=drsh _dsh run --rm --entrypoint='
|
||||
_dsh() {
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2
|
||||
dsh() { do_dsh 2 exec $@; return $?; }
|
||||
_dsh() { __docker_complete_running_containers $@; }
|
||||
drsh() { do_dsh 4 run --rm --entrypoint= $@; return $?; }
|
||||
_drsh() { __docker_container_subcommand $@; }
|
||||
do_dsh() {
|
||||
local minargs=$1
|
||||
shift
|
||||
if [ $# -lt $minargs ]; then
|
||||
echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
|
||||
return 64
|
||||
fi
|
||||
|
||||
@ -216,18 +234,20 @@ _dsh() {
|
||||
fi
|
||||
|
||||
if [ -z "$prog" ]; then
|
||||
set -o pipefail
|
||||
local rm=
|
||||
shell_args=()
|
||||
if [ "$dowhat" = 'run' ]; then
|
||||
rm='--rm --entrypoint='
|
||||
shell_args=(--rm --entrypoint=)
|
||||
fi
|
||||
for shell in bash sh; do
|
||||
if shell_path="$(eval "docker $dowhat $rm $host which $shell" <&- | sed 's|[\r\n]||g')"; then
|
||||
shell_path="$(set -o pipefail; docker $dowhat ${shell_args[@]} "$host" which "$shell" <&- | sed 's|[\r\n]||g')"
|
||||
retval=$?
|
||||
if [ $retval -eq 0 ]; then
|
||||
prog="$shell_path"
|
||||
break
|
||||
elif [ $retval -ge 125 ]; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
set +o pipefail
|
||||
if [ -z "$prog" ]; then
|
||||
echo "Warning: No shell found in path.. trying /bin/sh" >&2
|
||||
prog=/bin/sh
|
||||
@ -237,41 +257,32 @@ _dsh() {
|
||||
docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
|
||||
}
|
||||
|
||||
alias dm='docker-machine'
|
||||
dm-con() {
|
||||
eval $(docker-machine env $1)
|
||||
}
|
||||
alias dmc=dm-con
|
||||
|
||||
alias dc='docker-compose'
|
||||
alias dm='docker-machine'
|
||||
alias dmc='eval $(docker-machine env $1)'
|
||||
|
||||
# ZFS aliases
|
||||
alias zfs='sudo zfs'
|
||||
alias zpool='sudo zpool'
|
||||
alias z=zfs
|
||||
alias zp=zpool
|
||||
zl() { (set -o pipefail; command zfs list $@ | grep -Ev 'docker/[0-9a-f]{64}'); return $?; }
|
||||
_zl() { _zfs "list $@"; }
|
||||
|
||||
# General Aliases
|
||||
alias ssha='eval `ssh-agent` ; ssh-add'
|
||||
alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
|
||||
alias vimrc="$EDITOR $MYVIMRC"
|
||||
alias zshrc="$EDITOR ~/.zshrc ; exec zsh"
|
||||
alias gitrc="$EDITOR ~/.config/git/config"
|
||||
alias xinitrc="$EDITOR ~/.xinitrc"
|
||||
alias xresources="$EDITOR ~/.Xresources ; xrdb merge ~/.Xresources"
|
||||
alias xsession="$EDITOR ~/.xsession"
|
||||
alias vimrc="$EDITOR $VIMRC"
|
||||
alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh"
|
||||
alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config"
|
||||
alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
|
||||
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
|
||||
alias sshc="$EDITOR ~/.ssh/config"
|
||||
alias dotfiles="cd $DOTFILES"
|
||||
alias i3c="$EDITOR ~/.config/i3/config ; i3-msg restart"
|
||||
alias i3bc="$EDITOR ~/.config/i3/blocks/config ; i3-msg restart"
|
||||
i3b() {
|
||||
$EDITOR ~/.config/i3/blocks/$@
|
||||
}
|
||||
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
|
||||
|
||||
alias sf=screenfetch
|
||||
alias nf=neofetch
|
||||
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
|
||||
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
|
||||
|
||||
alias lab="ssh -tt tw '~/ctl' 2>/dev/null"
|
||||
|
||||
# vim: ft=sh
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lakesidesunrise.jpg
Normal file
BIN
lakesidesunrise.jpg
Normal file
Binary file not shown.
After 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 $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
|
||||
|
||||
[ -e ~/.fehbg ] && ~/.fehbg
|
||||
feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
|
||||
|
289
scripts/diff-highlight
Executable file
289
scripts/diff-highlight
Executable file
@ -0,0 +1,289 @@
|
||||
#!/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,6 +16,4 @@ xrandr --newmode $MODELINE 2>/dev/null || true
|
||||
xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
|
||||
xrandr --output $OUTPUT --mode $MODENAME
|
||||
|
||||
if [ -f ~/.fehbg -a -x ~/.fehbg ]; then
|
||||
~/.fehbg
|
||||
fi
|
||||
feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
|
||||
|
31
scripts/dpi
Executable file
31
scripts/dpi
Executable file
@ -0,0 +1,31 @@
|
||||
#!/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
|
@ -27,23 +27,4 @@ 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
|
||||
ln -sfv $DOTFILES/surfacetools .
|
||||
|
@ -4,7 +4,7 @@
|
||||
# century is about apparently...
|
||||
#
|
||||
# Requirements:
|
||||
# rofi, xsel, xdotool, curl, xmllint
|
||||
# rofi, xclip, xdotool, curl, xmllint
|
||||
#
|
||||
# Usage:
|
||||
# 1. Download all emoji
|
||||
@ -21,10 +21,9 @@
|
||||
#
|
||||
|
||||
# Where to save the emojis file.
|
||||
EMOJI_FILE="$HOME/.cache/emojis.txt"
|
||||
EMOJI_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/emojis.txt"
|
||||
|
||||
# Urls of emoji to download.
|
||||
# You can remove what you don't need.
|
||||
URLS=(
|
||||
'https://emojipedia.org/people/'
|
||||
'https://emojipedia.org/nature/'
|
||||
@ -39,7 +38,9 @@ URLS=(
|
||||
|
||||
|
||||
function download() {
|
||||
echo "" > "$EMOJI_FILE"
|
||||
notify "$(basename "$0")" 'Downloading all emoji for your pleasure'
|
||||
|
||||
echo -n > "$EMOJI_FILE"
|
||||
|
||||
for url in "${URLS[@]}"; do
|
||||
echo "Downloading: $url"
|
||||
@ -58,20 +59,51 @@ function download() {
|
||||
|
||||
echo "$emojis" >> "$EMOJI_FILE"
|
||||
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() {
|
||||
emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
|
||||
line=$(echo "$emoji" | rofi -dmenu -i -p emoji -kb-custom-1 Ctrl+c $@)
|
||||
update="⏫ Update emoji cache"
|
||||
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=$?
|
||||
|
||||
if [ "${line[@]}" == "$update" ]; then
|
||||
download
|
||||
exit 0
|
||||
fi
|
||||
|
||||
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
|
||||
xdotool type --clearmodifiers "${line[0]}"
|
||||
xdotool type --clearmodifiers "$emojis"
|
||||
echo -n "$emojis" | xclip -i
|
||||
elif [ $exit_code == 10 ]; then
|
||||
echo -n "${line[0]}" | xsel -i -b
|
||||
echo -n "$emojis" | xclip -i
|
||||
fi
|
||||
}
|
||||
|
||||
|
94
scripts/rofi-fontawesome
Executable file
94
scripts/rofi-fontawesome
Executable file
@ -0,0 +1,94 @@
|
||||
#!/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
|
55
scripts/screenshot
Executable file
55
scripts/screenshot
Executable file
@ -0,0 +1,55 @@
|
||||
#!/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"
|
||||
git submodule update --init --recursive
|
||||
./install.py --system-libclang --clang-completer
|
||||
./install.py --system-libclang --clang-completer --go-completer --rust-completer --js-completer --java-completer
|
||||
|
1
surface-scripts
Submodule
1
surface-scripts
Submodule
Submodule surface-scripts added at f94e25f0b8
1
surface3-scripts
Submodule
1
surface3-scripts
Submodule
Submodule surface3-scripts added at bd6eaf1fb0
Reference in New Issue
Block a user