Long time, no commit, big ol' changes though

This commit is contained in:
Geoffrey Frogeye 2018-04-10 15:38:18 +02:00
parent 3c9e2c3279
commit 501f1f4066
19 changed files with 271 additions and 352 deletions

42
bashrc
View file

@ -12,9 +12,9 @@ export BROWSER=qutebrowser
# Some programs need those changes
export PATH="/usr/lib/ccache/bin/:$PATH"
if [ -d $HOME/.gem/ruby/2.4.0/bin ]; then
export PATH="$HOME/.gem/ruby/2.4.0/bin/:$PATH"
fi
# if [ -d $HOME/.gem/ruby/2.4.0/bin ]; then
# export PATH="$HOME/.gem/ruby/2.4.0/bin/:$PATH"
# fi
if [ -d /data/data/com.termux/ ]; then
export PATH="$HOME/.termux/scripts:$HOME/.termux/bin:$PATH"
fi
@ -63,15 +63,30 @@ alias mc="machines"
alias tracefiles="strace -f -t -e trace=file"
# Superseding commands with better ones if they are present
if which vim &> /dev/null; then
alias vi='vim'
fi
if which gopass &> /dev/null; then
alias pass='gopass'
fi
if which wakeonlan &> /dev/null; then
alias wol='wakeonlan'
fi
function vi() {
if which vim &> /dev/null; then
alias vi='vim'
fi
vim "$@"
}
function pass() {
if which gopass &> /dev/null; then
alias pass='gopass'
fi
gopass "$@"
}
function wol() {
if which wakeonlan &> /dev/null; then
alias wol='wakeonlan'
fi
wakeonlan "$@"
}
function mutt() {
if which neomutt &> /dev/null; then
alias mutt='neomutt'
fi
neomutt "$@"
}
# SHELL CUSTOMIZATION
@ -88,7 +103,8 @@ shopt -s hostcomplete
export HISTSIZE=100000
export HISTFILESIZE=${HISTSIZE}
export HISTCONTROL=ignoreboth
export HISTCONTROL=ignorespace:erasedups
export HISTTIMEFORMAT="%d/%m/%y %H:%M:%S "
# PROMPT CUSTOMIZATION

View file

@ -1,300 +1,63 @@
[global]
font = Cantarell 10
# Allow a small subset of html markup:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the
# message.
allow_markup = yes
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "%s %p\n%b"
# Sort messages by urgency.
sort = no
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# The frequency with wich text that is longer than the notification
# window allows bounces back and forth.
# This option conflicts with "word_wrap".
# Set to 0 to disable.
bounce_freq = 5
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = no
# Ignore newlines '\n' in notifications.
ignore_newline = no
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "0x0-25+25"
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
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 = 17
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# default 120
idle_threshold = 120
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a windowmanager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
# The height of a single line. If the height is smaller than the
# font height, it will get raised to the font height.
# This adds empty space above and under the text.
line_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 1
# Padding between text and separator.
# padding = 8
padding = 8
# Horizontal padding.
horizontal_padding = 10
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = #2ECC71
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# dmenu path.
always_run_script = true
browser = /usr/bin/qutebrowser
class = Dunst
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = firefox
# Align icons left/right/off
ellipsize = middle
follow = none
font = DejaVu Sans 10
force_xinerama = false
format = "<b>%s %p</b>\n%b"
frame_color = "#A6E22E"
frame_width = 3
geometry = "500x5-30+20"
hide_duplicate_count = false
history_length = 20
horizontal_padding = 8
icon_path = /usr/share/icons/gnome/256x256/status/:/usr/share/icons/gnome/256x256/devices/
icon_position = left
# Paths to default icons.
icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
[frame]
width = 1
color = "#2ECC71"
idle_threshold = 120
ignore_newline = no
indicate_hidden = yes
line_height = 0
markup = full
max_icon_size = 48
monitor = 0
notification_height = 0
padding = 8
separator_color = frame
separator_height = 2
show_age_threshold = 60
show_indicators = yes
shrink = no
sort = yes
stack_duplicates = true
startup_notification = false
sticky_history = yes
title = Dunst
transparency = 0
verbosity = mesg
word_wrap = yes
[experimental]
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = mod4+n
# Close all notifications.
# close_all = ctrl+shift+space
close_all = ctrl+mod4+n
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1".
history = shift+mod4+n
# Context menu.
close = mod4+n
context = mod1+mod4+n
history = shift+mod4+n
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#000000"
foreground = "#888888"
background = "#272822"
foreground = "#F8F8F2"
frame_color = "#A6E22E"
timeout = 10
[urgency_normal]
background = "#000000"
foreground = "#ffffff"
background = "#272822"
foreground = "#F8F8F2"
frame_color = "#F4BF75"
timeout = 10
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
background = "#272822"
foreground = "#F8F8F2"
frame_color = "#F92672"
timeout = 0
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[Claws Mail]
# appname = claws-mail
# category = email.arrived
# urgency = normal
# background = "#2F899E"
# foreground = "#FFA247"
#
#[mute.sh]
# appname = mute
# category = mute.sound
# script = mute.sh
#
#[JDownloader]
# appname = JDownloader
# category = JD
# background = "#FFA247"
# foreground = "#FFFFFF"
#
#[newsbeuter]
# summary = *Feeds*
# background = "#A8EB41"
# foreground = "#FFFFFF"
#
[irc]
appname = weechat
timeout = 0
background = "#0033bb"
foreground = "#dddddd"
#
[weechat hl]
appname = weechat
category = weechat.HL
background = "#FF5C47"
foreground = "#FFFFFF"
#
[weechat pn]
appname = weechat
category = weechat.PM
background = "#D53B84"
foreground = "#FFFFFF"
#
#[CMUS]
# appname = CMUS
# category = cmus
# background = "#6C4AB7"
# foreground = "#FFE756"
#
#
# background = "#30AB70"
# foreground = "#F67245"
#
# vim: ft=cfg

55
config/i3/batteryNotify Executable file
View file

@ -0,0 +1,55 @@
#!/usr/bin/env bash
BATT="/sys/class/power_supply/BAT0"
LOW=10
CRIT=3
LASTSTATE="$HOME/.cache/batteryState"
function setState() { # state [...notify-send arguments]
state="$1"
last="$(cat "$LASTSTATE" 2> /dev/null)"
shift
echo "Battery state: $state"
if [ "$state" != "$last" ]
then
notify-send "$@"
echo "$state" > "$LASTSTATE"
fi
}
function computeState() {
acpiStatus="$(cat "$BATT/status")"
acpiCapacity="$(cat "$BATT/capacity")"
if [ "$acpiStatus" == "Discharging" ]
then
if [ $acpiCapacity -le $CRIT ]
then
setState "CRIT" -u critical -i battery-caution "Battery level is critical" "$acpiCapacity %"
elif [ $acpiCapacity -le $LOW ]
then
setState "LOW" -u critical -i battery-low "Battery level is low" "$acpiCapacity %"
else
setState "DISCHARGING" -i battery-good "Battery is discharging" "$acpiCapacity %"
fi
elif [ "$acpiStatus" == "Charging" ]
then
setState "CHARGING" -u normal -i battery-good-charging "Battery is charging" "$acpiCapacity %"
elif [ "$acpiStatus" == "Full" ]
then
setState "FULL" -u low -i battery-full-charged "Battery is full" "$acpiCapacity %"
fi
}
if [ "$1" == "-d" ]
then
while true
do
computeState
sleep 10
done
else
computeState
fi

View file

@ -22,8 +22,7 @@ hide_edge_borders both
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Source Code Pro 8
font pango:DejaVu Sans Mono 8
font pango:DejaVu Sans 8
font pango:Sans 8
# Use Mouse+$mod to drag floating windows
@ -361,18 +360,17 @@ bindsym $mod+F5 exec --no-startup-id xautolock -enable
# Autostart applications
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # Password remembering
exec --no-startup-id gnome-keyring-daemon # Password remembering
#exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # Password remembering
#exec --no-startup-id gnome-keyring-daemon # Password remembering
exec --no-startup-id numlockx on # Activate Num lock
#exec --no-startup-id nm-applet # Network manager tray icon
#exec --no-startup-id compton -b # Compositing manager
exec --no-startup-id unclutter # Hide mouse cursor after some time
exec --no-startup-id dunst # Notifications
#exec --no-startup-id dunst # Notifications (handled by systemd)
exec --no-startup-id keynav # Keyboard cursor controller
#exec --no-startup-id $HOME/.config/i3/clipmenud # Clipboard manager
exec --no-startup-id mpd # Music Player Daemon
#exec --no-startup-id mpd # Music Player Daemon (handled by systemd)
exec --no-startup-id ~/.config/i3/ashuffle # MPD Auto-refill
exec --no-startup-id autorandr --change # Screen configuration and everything that depends on it
exec --no-startup-id ~/.config/i3/batteryNotify -d # Battery state notification
set $ignore #ff00000

View file

@ -1,24 +1,7 @@
[calendars]
[[perso]]
path = ~/.vdirsyncer/calendars/perso/
color = light green
[[clubs]]
path = ~/.vdirsyncer/calendars/clubs/
color = yellow
[[cours]]
path = ~/.vdirsyncer/calendars/cours/
color = light blue
readonly = True
[[polytech]]
path = ~/.vdirsyncer/calendars/polytech/
color = dark blue
[[bnei]]
path = ~/.vdirsyncer/calendars/bnei/
color = light cyan
[[calendars]]
path = ~/.vdirsyncer/calendars/*
type = discover
# [[birthdays]]
# type=birthdays
@ -34,5 +17,18 @@ longdatetimeformat = %d/%m/%Y %H:%M
local_timezone = Europe/Paris
[default]
default_calendar = "Personnel"
default_command = interactive
highlight_event_days = True
show_all_days = True
timedelta = 7d
[highlight_days]
[view]
agenda_day_format = "{bold}{name}, {date-long}{reset}"
agenda_event_format = "{calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol} | {location}{reset}"
bold_for_light_color = False
event_format = "{calendar-color}{cancelled}{start}-{end} {title}{repeat-symbol} | {location}{reset}"
event_view_always_visible = True
frame = color

10
config/offlineimap.py Normal file
View file

@ -0,0 +1,10 @@
#! /usr/bin/env python2
from subprocess import check_output
def get_pass(account):
return check_output("pass " + account, shell=True).splitlines()[0]
def beep():
check_output("play -n synth sine E4 sine A5 remix 1-2 fade 0.5 1.2 0.5 2", shell=True)

12
config/polybar/bbswitch Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
state="$(grep -o '\w\+$' /proc/acpi/bbswitch)"
if [ "$state" == "ON" ]
then
echo ""
elif [ "$state" == "OFF" ]
then
echo ""
else
echo "?"
fi

View file

@ -76,7 +76,7 @@ enable-ipc = true
inherit = bar/base
modules-center = mpd
modules-right = vpncheck eth wlan bbswitch xbacklight volume battery date
modules-right = mail todo vpncheck eth wlan bbswitch xbacklight volume battery shortdate
tray-position = right
tray-padding = 2
@ -84,7 +84,7 @@ tray-transparent = false
[bar/secondary]
inherit = bar/base
modules-right = cpu memory temperature vpncheck ethMore wlanMore filesystem bbswitch xbacklight volume date
modules-right = cpu memory temperature vpncheck ethMore wlanMore filesystem linuxmismatch bbswitch xbacklight volume date
[module/filesystem]
@ -176,12 +176,35 @@ toggle-off-foreground = #55
[module/bbswitch]
type = custom/script
exec = grep -o '\w\+$' /proc/acpi/bbswitch
exec = ~/.config/polybar/bbswitch
exec-if = test -f /proc/acpi/bbswitch
interval = 5
prefix =
format-prefix =
format-foreground = ${theme.redF}
[module/todo]
type = custom/script
exec = ~/.config/polybar/todo
interval = 30
format-prefix = 
format-foreground = ${theme.yellowF}
[module/mail]
type = custom/script
exec = cat ~/.cache/mutt/status
interval = 1
format-prefix = 
format-foreground = ${theme.magentaF}
; format-background = ${theme.magentaB}
[module/linuxmismatch]
type = custom/script
exec = echo 
exec-if = ~/.config/polybar/linuxmismatch
interval = 30
format-foreground = ${theme.yellowF}
; format-background = ${theme.yellowF}
[module/xbacklight]
type = internal/xbacklight
output = ${env:display:LVDS1}
@ -201,7 +224,7 @@ card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 0.5
interval = 1
format = <ramp-coreload>
format-foreground = ${theme.redF}
ramp-coreload-0 = ▁
@ -215,7 +238,7 @@ ramp-coreload-7 = █
[module/memory]
type = internal/memory
interval = 2
interval = 1
format-foreground = ${theme.greenF}
label =  %gb_free%
@ -229,7 +252,7 @@ format-foreground = ${theme.blueF}
[module/eth]
type = internal/network
interface = ${env:ethI:eth0}
interval = 1
interval = 5
format-connected =  <label-connected>
label-connected = %local_ip%
@ -244,7 +267,7 @@ label-connected = ↑%upspeed% ↓%downspeed%
[module/wlan]
type = internal/network
interface = ${env:wlanI:wlan0}
interval = 1
interval = 5
format-connected = <ramp-signal> <label-connected>
label-connected = %local_ip% %essid%
@ -281,6 +304,11 @@ format-foreground = ${theme.cyanF}
label = %date% %time%
[module/shortdate]
inherit = module/date
date = " %d/%m"
[module/volume]
type = internal/volume
@ -307,11 +335,12 @@ label-full = 
format-charging = <ramp-capacity> <label-charging>
format-charging-foreground = ${theme.yellowF}
format-charging-prefix = 
label-charging = %percentage%% (%time%)
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-foreground = ${self.format-charging-foreground}
format-discharging-background = ${theme.redB}
; format-discharging-background = ${theme.redB}
label-discharging = %percentage%% (%time%)
format-full-prefix = " "

17
config/polybar/linuxmismatch Executable file
View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
if ! which pacman &> /dev/null
then
exit 1
fi
packageVersion=$(pacman -Q linux | cut -d' ' -f2)
runningVersion=$(uname -r)
if echo "$runningVersion" | grep "^$packageVersion" &> /dev/null
then
exit 1
else
exit 0
fi

21
config/polybar/todo Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
CALDIR="$HOME/.vdirsyncer/currentCalendars"
function status() {
ls "$CALDIR" | while read account
do
displayname="$(cat "$CALDIR/$account/displayname")"
color="$(cat "$CALDIR/$account/color")"
nb="$(todo list "$displayname" | grep -v "^$" | wc -l)"
if [ $nb -gt 0 ]
then
echo -n " %{F$color}$nb%{F-}"
fi
done
# Newline to tell polybar to update in any case
echo
}
status

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/dunst.service

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/mpd.service

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/offlineimap.service

View file

@ -1 +1 @@
/home/geoffrey/.local/share/systemd/user/syncthing.service
/usr/lib/systemd/user/syncthing.service

View file

@ -1 +1 @@
/home/geoffrey/.local/share/systemd/user/vdirsyncer.timer
/usr/lib/systemd/user/vdirsyncer.timer

View file

@ -1,4 +1,4 @@
[main]
path = ~/.vdirsyncer/calendars/*
default_list = perso
path = ~/.vdirsyncer/currentCalendars/*
default_list = Personnel
humanize = True

View file

@ -168,8 +168,8 @@ function altInst {
}
function systemdUserUnit {
mkdir -p ~/.local/share/systemd
ln -s /usr/lib/systemd/user/vdirsyncer.timer ~/.local/share/systemd/
systemctl enable "$1"
systemctl start "$1"
}
# Common CLI
@ -325,9 +325,8 @@ if [ $EXTRA == 1 ]; then
inst cmake clang llvm npm
# Extra CLI
inst ffmpeg youtube-dl optipng syncthing ccache
systemdUserUnit syncthing.service
inst ffmpeg youtube-dl optipng syncthing ccache mutt
systemdUserUnit syncthing.service
if [ $ARCH == 1 ]; then
inst jq
altInst pdftk translate-shell git-lfs js-beautify insect visidata-git
@ -335,8 +334,7 @@ if [ $EXTRA == 1 ]; then
# Orga
# TODO For others
inst vdirsyncer khard
altInst khal todoman
systemdUserUnit vdirsyncer.service
altInst khal todoman offlineimap
systemdUserUnit vdirsyncer.timer
else
# translate-shell

View file

@ -2,7 +2,7 @@
# Moves a file to another place and put a symbolic link in place
function proxy_help {
function rep_help {
echo "Usage: $0 SOURCE DEST"
echo
echo "Arguments:"
@ -17,9 +17,9 @@ ln -s "$2" "$1"
# MAIN
command="$1"
shift
if type "proxy_$command" &> /dev/null; then
"proxy_$command" "$@"
if type "rep_$command" &> /dev/null; then
"rep_$command" "$@"
else
proxy_help
rep_help
fi

1
vimrc
View file

@ -36,6 +36,7 @@ Plugin 'tomtom/tcomment_vim'
Plugin 'Shougo/denite.nvim'
Plugin 'tomlion/vim-solidity'
Plugin 'godlygeek/tabular'
Plugin 'jrozner/vim-antlr'
call vundle#end() " required
filetype plugin indent on " required