mirror of
https://github.com/frebib/dotfiles.git
synced 2024-06-14 12:57:23 +00:00
Merge remote-tracking branch 'origin/master' into surface
This commit is contained in:
commit
7ec8be00be
@ -29,7 +29,7 @@
|
||||
*.color15: #eceff1
|
||||
|
||||
|
||||
Xft.dpi: 136
|
||||
Xft.dpi: 140
|
||||
Xft.antialias: true
|
||||
Xft.rgba: rgb
|
||||
Xft.hinting: true
|
||||
@ -43,7 +43,7 @@ Xcursor.theme: Breeze_Obsidian
|
||||
!!======================!!
|
||||
|
||||
urxvt.depth: 32
|
||||
urxvt.internalBorder: 6
|
||||
urxvt.internalBorder: 16
|
||||
urxvt.blurRadius: 25
|
||||
urxvt.saveLines: 10000
|
||||
urxvt.preeditType: Root
|
||||
|
@ -25,11 +25,11 @@ window:
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is not scaled
|
||||
# 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: 8
|
||||
y: 8
|
||||
x: 15
|
||||
y: 15
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
@ -120,20 +120,9 @@ font:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Scale the font size based on the monitor's DPI. This will lead to bigger text on HiDPI
|
||||
# screens and make reading text a little easier.
|
||||
# On X11 it is possible to change the DPI for each instance of alacritty by using
|
||||
# `WINIT_HIDPI_FACTOR=1.0 alacritty` to scale the font.
|
||||
scale_with_dpi: true
|
||||
|
||||
# Display the time it takes to redraw each frame.
|
||||
render_timer: false
|
||||
|
||||
# Use custom cursor colors. If `true`, the `colors.cursor.foreground` and
|
||||
# `colors.cursor.background` colors will be used to display the cursor.
|
||||
# Otherwise the cell colors are inverted for the cursor.
|
||||
custom_cursor_colors: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
@ -247,6 +236,22 @@ mouse:
|
||||
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: ",│`|:\"' ()[]{}<>"
|
||||
|
||||
@ -257,19 +262,18 @@ selection:
|
||||
|
||||
dynamic_title: true
|
||||
|
||||
hide_cursor_when_typing: false
|
||||
cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for 'style':
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
style: Block
|
||||
|
||||
# Cursor style
|
||||
#
|
||||
# Values for 'cursor_style':
|
||||
# - Block
|
||||
# - Underline
|
||||
# - Beam
|
||||
cursor_style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
unfocused_hollow_cursor: true
|
||||
# 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
|
||||
|
@ -31,9 +31,9 @@ alpha-step = 0.02; # XRender backend: Step size for alpha pictures. Increasin
|
||||
|
||||
# Blurring
|
||||
blur-method = "dual_kawase";
|
||||
blur-strength = 5;
|
||||
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-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 = false; # Do not let blur radius adjust based on window opacity.
|
||||
|
@ -1,5 +1,5 @@
|
||||
[global]
|
||||
font = sans-serif 9.5
|
||||
font = sans 9
|
||||
|
||||
# Allow a small subset of html markup:
|
||||
# <b>bold</b>
|
||||
@ -64,8 +64,8 @@
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
|
||||
# 58 = 30 + 28 (bar-height)
|
||||
geometry = "350x6-30+58"
|
||||
# 53 = 30 + 23 (bar-height)
|
||||
geometry = "560x5-30+30"
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
@ -74,7 +74,7 @@
|
||||
# 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.
|
||||
@ -118,7 +118,7 @@
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 12
|
||||
padding = 15
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 16
|
||||
@ -150,7 +150,7 @@
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices
|
||||
frame_width = 4
|
||||
frame_width = 0
|
||||
frame_color = "#404552"
|
||||
|
||||
[shortcuts]
|
||||
|
@ -4,7 +4,7 @@
|
||||
signingkey = CFBB6A86
|
||||
[core]
|
||||
autocrlf = input
|
||||
excludesfile = $HOME/.config/git/gitignore
|
||||
excludesfile = /home/frebib/.config/git/gitignore
|
||||
pager = diff-highlight | $PAGER
|
||||
[interactive]
|
||||
diffFilter = diff-highlight
|
||||
|
@ -1,5 +1,15 @@
|
||||
VteTerminal,
|
||||
TerminalScreen,
|
||||
vte-terminal {
|
||||
padding: 9px;
|
||||
padding: 1.3em;
|
||||
}
|
||||
|
||||
.window-frame, .window-frame:backdrop {
|
||||
margin: 0;
|
||||
border-style: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.titlebar {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
@ -1,21 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Set how much you want the brightness to change
|
||||
DELTA=2
|
||||
|
||||
# Get the current light level, rounded to an integer
|
||||
LIGHT=$(printf '%.*f' 0 $(xbacklight -get))
|
||||
NEW_LIGHT=$LIGHT
|
||||
|
||||
# If called from i3blocks, and scrolling, then change light level
|
||||
case $BLOCK_BUTTON in
|
||||
5) NEW_LIGHT=$(expr $LIGHT + $DELTA) ;;
|
||||
4) NEW_LIGHT=$(expr $LIGHT - $DELTA) ;;
|
||||
esac
|
||||
|
||||
xbacklight -set $NEW_LIGHT -time 0 -steps 1
|
||||
|
||||
# Output the new light level
|
||||
OUTPUT=$(printf '%.*f%%' 0 $(xbacklight -get))
|
||||
echo $OUTPUT
|
||||
echo $OUTPUT
|
@ -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,95 +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)";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# 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,88 +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=14
|
||||
|
||||
[volume]
|
||||
interval=persist
|
||||
signal=10
|
||||
|
||||
[iface]
|
||||
label=
|
||||
interval=60
|
||||
signal=15
|
||||
|
||||
[updates]
|
||||
label=
|
||||
interval=600
|
||||
signal=5
|
||||
|
||||
[cpu_usage]
|
||||
label=
|
||||
interval=persist
|
||||
|
||||
[memory]
|
||||
label=
|
||||
interval=10
|
||||
|
||||
[temperature]
|
||||
label=
|
||||
interval=10
|
||||
|
||||
[backlight]
|
||||
label=
|
||||
interval=30
|
||||
signal=12
|
||||
|
||||
[separator]
|
||||
|
||||
[rotation]
|
||||
interval=once
|
||||
|
||||
[separator]
|
||||
|
||||
[keyboard]
|
||||
label=
|
||||
interval=30
|
||||
|
||||
[separator]
|
||||
|
||||
[battery]
|
||||
interval=30
|
||||
signal=11
|
||||
|
||||
[separator]
|
||||
|
||||
[clock]
|
||||
interval=10
|
||||
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,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[[ $BLOCK_BUTTON -eq 1 ]] && `$DOTFILES/scripts/togglekeyboard`
|
||||
[[ $BLOCK_BUTTON -eq 3 ]] && onboard &
|
||||
|
||||
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--1} -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,20 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
lock="/tmp/rotlock"
|
||||
|
||||
[[ -e $lock ]] || echo "unlocked" > "$lock"
|
||||
|
||||
status=$(<$lock)
|
||||
|
||||
if [ $BLOCK_BUTTON -gt 0 ]; then
|
||||
case $status in
|
||||
"unlocked") status="locked" ;;
|
||||
"locked") status="unlocked";;
|
||||
esac
|
||||
echo $status > "$lock"
|
||||
fi
|
||||
|
||||
case $status in
|
||||
"locked") echo "";;
|
||||
"unlocked") echo "";;
|
||||
esac
|
@ -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=''
|
||||
|
||||
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
|
@ -94,27 +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 2
|
||||
height 28
|
||||
|
||||
output primary
|
||||
position top
|
||||
|
||||
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
|
||||
@ -126,11 +106,11 @@ 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 9
|
||||
gaps outer 1
|
||||
gaps inner 12
|
||||
gaps outer 4
|
||||
|
||||
focus_follows_mouse yes
|
||||
|
||||
@ -141,9 +121,9 @@ bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$
|
||||
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
|
||||
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
|
||||
bindsym $mod+Shift+p exec rofi-pass
|
||||
@ -152,7 +132,7 @@ 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 "termite -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
|
||||
bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
|
||||
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
|
||||
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
|
||||
|
||||
@ -170,7 +150,6 @@ bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3bloc
|
||||
|
||||
# app launch shortcuts
|
||||
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
|
||||
exec --no-startup-id "ip monitor | while read; do pkill -RTMIN+15 i3blocks; done"
|
||||
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
|
||||
|
||||
|
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
|
@ -1,5 +1,5 @@
|
||||
[options]
|
||||
font = monospace 9.8
|
||||
font = monospace 9.5
|
||||
scrollback_lines = 1000000
|
||||
cursor_blink = off
|
||||
size_hints = true
|
||||
|
43
.profile
43
.profile
@ -14,44 +14,37 @@ case "$(basename "$(readlink -f /proc/$$/exe)")" in
|
||||
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
|
||||
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep profile | head -n1)";;
|
||||
esac
|
||||
export DOTFILES="$(dirname "${thisfile:-$XDG_CONFIG_HOME/dotfiles/.profile}")"
|
||||
export PATH="${PATH}:/sbin:/usr/sbin:$DOTFILES/scripts:$HOME/.local/share/surface-scripts"
|
||||
|
||||
export EDITOR="vim"
|
||||
export VISUAL="vim"
|
||||
|
||||
# Override paths for non-compliant programs
|
||||
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
|
||||
# Vim
|
||||
|
||||
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 EDITOR="vim"
|
||||
export VISUAL="vim"
|
||||
# ZSH
|
||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||
# Gnupg
|
||||
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
|
||||
# X11
|
||||
export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority"
|
||||
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
|
||||
# GTK2
|
||||
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/settings.ini
|
||||
# Cargo/Rust
|
||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||
# Pass
|
||||
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
|
||||
# Python
|
||||
export PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
|
||||
# Weechat
|
||||
export WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
|
||||
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
|
||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||
|
||||
# Go configuration
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
export PATH="$PATH:$GOPATH/bin"
|
||||
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=-
|
||||
|
123
aliases
123
aliases
@ -1,8 +1,35 @@
|
||||
# Common Aliases
|
||||
alias -g ...=../..
|
||||
alias -g ....=../../..
|
||||
alias -g .....=../../../..
|
||||
alias -g ......=../../../../..
|
||||
# Global aliases for ZSH
|
||||
if alias -g 2>/dev/null; then
|
||||
alias -g ...=../..
|
||||
alias -g ....=../../..
|
||||
alias -g .....=../../../..
|
||||
alias -g ......=../../../../..
|
||||
alias -g H='| head'
|
||||
alias -g T='| tail'
|
||||
alias -g G='| grep'
|
||||
alias -g L="| less"
|
||||
alias -g C="| wc -l"
|
||||
alias -g S="| sort"
|
||||
alias -g U="| uniq"
|
||||
alias -g count="| wc -l"
|
||||
alias -g NO="1> /dev/null"
|
||||
alias -g NE="2> /dev/null"
|
||||
alias -g NUL="&> /dev/null"
|
||||
alias -g BG="&;disown"
|
||||
alias -g COL="| column -t"
|
||||
alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
|
||||
fi
|
||||
|
||||
# File default aliases
|
||||
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"
|
||||
@ -18,24 +45,8 @@ 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'
|
||||
alias -g L="| less"
|
||||
alias -g C="| wc -l"
|
||||
alias -g S="| sort"
|
||||
alias -g U="| uniq"
|
||||
alias -g count="| wc -l"
|
||||
alias -g NO="1> /dev/null"
|
||||
alias -g NE="2> /dev/null"
|
||||
alias -g NUL="&> /dev/null"
|
||||
alias -g BG="&;disown"
|
||||
alias -g COL="| column -t"
|
||||
alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
|
||||
|
||||
alias svi=sudoedit
|
||||
alias svim=sudoedit
|
||||
@ -49,20 +60,13 @@ alias open=xdg-open
|
||||
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 ssh="ssh -tt"
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
|
||||
vim --version 2>/dev/null | command grep -q +clientserver && \
|
||||
alias vim="vim --servername vim -p"
|
||||
alias vi=vim
|
||||
alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
|
||||
alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
|
||||
alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
|
||||
exists gopass && alias pass='gopass'
|
||||
alias alpine-sdk='docker run -ti --rm \
|
||||
-e USER \
|
||||
-e UID="$(id -u)" \
|
||||
@ -80,27 +84,34 @@ alias hddtemps='find /sys/block/ -name sd\* | sed "s|sys/block|dev|g" | sudo xar
|
||||
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
|
||||
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"
|
||||
|
||||
# Git Aliases
|
||||
alias g=git
|
||||
alias gignore='$EDITOR .gitignore'
|
||||
@ -111,6 +122,8 @@ 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"
|
||||
@ -136,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"
|
||||
@ -177,7 +183,7 @@ 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'
|
||||
@ -187,13 +193,15 @@ 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 2 exec'
|
||||
alias drsh='_CMD=drsh _dsh 4 run --rm --entrypoint='
|
||||
_dsh() {
|
||||
minargs=$1
|
||||
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: ${_CMD:-$0} [user@]container [program [args]]" >&2
|
||||
echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
|
||||
return 64
|
||||
fi
|
||||
|
||||
@ -249,11 +257,9 @@ _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'
|
||||
@ -261,7 +267,7 @@ 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 $@" }
|
||||
_zl() { _zfs "list $@"; }
|
||||
|
||||
# General Aliases
|
||||
alias ssha='eval `ssh-agent` ; ssh-add'
|
||||
@ -274,12 +280,9 @@ alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONF
|
||||
alias sshc="$EDITOR ~/.ssh/config"
|
||||
alias dotfiles="cd $DOTFILES"
|
||||
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
|
||||
alias i3bc="$EDITOR $XDG_CONFIG_HOME/i3/blocks/config ; i3-msg restart"
|
||||
i3b() { $EDITOR $XDG_CONFIG_HOME/i3/blocks/$@; }
|
||||
|
||||
alias sf=screenfetch
|
||||
alias nf=neofetch
|
||||
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
|
||||
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
|
||||
|
||||
# vim: ft=sh
|
||||
|
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
|
Loading…
Reference in New Issue
Block a user