Initial commit

master
Quentin Duchemin 2018-05-03 20:23:53 +02:00
commit 2415fd2187
13 changed files with 980 additions and 0 deletions

153
.config/i3/config 100644
View File

@ -0,0 +1,153 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Roboto, Bold 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec rofi -show run
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+z layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+Shift+q focus parent
# switch to workspace
bindsym $mod+ampersand workspace 1
bindsym $mod+eacute workspace 2
bindsym $mod+quotedbl workspace 3
bindsym $mod+apostrophe workspace 4
bindsym $mod+parenleft workspace 5
bindsym $mod+minus workspace 6
bindsym $mod+egrave workspace 7
bindsym $mod+underscore workspace 8
bindsym $mod+ccedilla workspace 9
bindsym $mod+agrave workspace 10
# move focused container to workspace
bindsym $mod+Shift+ampersand move container to workspace 1
bindsym $mod+Shift+eacute move container to workspace 2
bindsym $mod+Shift+quotedbl move container to workspace 3
bindsym $mod+Shift+apostrophe move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+minus move container to workspace 6
bindsym $mod+Shift+egrave move container to workspace 7
bindsym $mod+Shift+underscore move container to workspace 8
bindsym $mod+Shift+ccedilla move container to workspace 9
bindsym $mod+Shift+agrave move container to workspace 10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# all windows (except non-float) have a 1px border
new_window pixel 1
# hide borders when touching edges
hide_edge_borders both
#do not sync mouse position and focus
focus_follows_mouse no
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
#status_command i3status
#}
#put workspace 1 on main screen
workspace 1 output DVI-D-0
#press the same combinaison for changing workspace to get back to old workspace (like cd -)
workspace_auto_back_and_forth yes
#start compositor
exec --no-startup-id compton
#start polybar
exec_always --no-startup-id $HOME/.config/polybar/scripts/launch_polybar.sh
#fr
exec setxkbmap fr
#numlock
exec numlockx on
#popup config Firefox
for_window [window_role="About"] floating enable
for_window [window_role="Organizer"] floating enable

View File

@ -0,0 +1,138 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Roboto, Bold 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec rofi -show run
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+z layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+Shift+q focus parent
# switch to workspace
bindsym $mod+ampersand workspace 1
bindsym $mod+eacute workspace 2
bindsym $mod+quotedbl workspace 3
bindsym $mod+apostrophe workspace 4
bindsym $mod+parenleft workspace 5
bindsym $mod+minus workspace 6
bindsym $mod+egrave workspace 7
bindsym $mod+underscore workspace 8
bindsym $mod+ccedilla workspace 9
bindsym $mod+agrave workspace 10
# move focused container to workspace
bindsym $mod+Shift+ampersand move container to workspace 1
bindsym $mod+Shift+eacute move container to workspace 2
bindsym $mod+Shift+quotedbl move container to workspace 3
bindsym $mod+Shift+apostrophe move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+minus move container to workspace 6
bindsym $mod+Shift+egrave move container to workspace 7
bindsym $mod+Shift+underscore move container to workspace 8
bindsym $mod+Shift+ccedilla move container to workspace 9
bindsym $mod+Shift+agrave move container to workspace 10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# all windows (except non-float) have a 1px border
new_window pixel 1
# hide borders when touching edges
hide_edge_borders both
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
#status_command i3status
#}
#put workspace 1 on main screen
workspace 1 output DVI-D-0
#press the same combinaison for changing workspace to get back to old workspace (like cd -)
workspace_auto_back_and_forth yes
#start compositor
exec compton -b

View File

@ -0,0 +1,343 @@
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[colors]
background = #1f1f1f
background-alt = #444
foreground = #eee
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
accent = #fba922
[bar/chostytopbar]
width = 100%
monitor = ${env:MONITOR:HDMI-0}
enable-ipc = true
height = 27
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
overline-size = 10
overline-color = ${self.background}
underline-size = 10
underline-color = ${self.background}
border-bottom-size = 1
border-bottom-color = #333
padding-left = 2
padding-right = 5
module-margin-left = 4
module-margin-right = 4
font-0 = NotoSans-Regular:size=10;2
font-1 = MaterialIcons-Regular:size=11;4
font-2 = Symbola:size=10;2
font-3 = Weather Icons:size=10;3
modules-left = powermenu system-uptime-pretty
modules-center = xwindow
modules-right = pulseaudio gmail system-usb-udev date
locale = fr_FR.UTF-8
tray-position = right
[bar/chostybottombar]
width = 100%
monitor = ${env:MONITOR:HDMI-0}
bottom = true
enable-ipc = true
height = 27
background = #1c1c1c
foreground = #eefafafa
line-size = 3
line-color = #f00
overline-size = 3
overline-color = ${colors.accent}
underline-size = 3
underline-color = ${colors.accent}
border-top-size = 3
border-top-color = #3d3d3d
spacing = 3
padding-left = 0
padding-right = 5
module-margin-left = 6
module-margin-right = 6
font-0 = Roboto:size=10;2
font-1 = Symbola:size=4;1
font-2 = Symbola:size=5;1
font-3 = MaterialIcons-Regular:size=11;4
font-4 = Font Awesome 5 Free:style=solid:size=10;2
modules-left = i3
;modules-center =
modules-right = wireless-network wired-network updates-arch-combined temperature cpu memory filesystem-custom
locale = fr_FR.UTF-8
[module/xwindow]
type = internal/xwindow
label = %{F#ddd}%title%
label-maxlen=100
[module/wireless-network]
type = internal/network
interface = wlp8s0
interval = 1
label-connected = %{F#ddd}%essid%  %local_ip% %{F#77dd77}%{F-}%downspeed% %{F#dd7777}%{F-}%upspeed%
label-disconnected = Ethernet disconnected
label-disconnected-foreground = #66
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
ws-icon-0 = term;
ws-icon-1 = web;
ws-icon-2 = code;
ws-icon-3 = music;
ws-icon-4 = irssi;
ws-icon-default = 
label-dimmed-underline = ${root.background}
label-focused = %icon% %name%
label-focused-foreground = #f3f3f3
label-focused-background = #3f3f3f
;label-focused-underline = #${colors.accent}
label-focused-underline = #9f78e1
label-focused-font = 0
label-focused-padding = 4
label-unfocused = %icon% %name%
label-unfocused-underline = #555555
label-unfocused-font = 0
label-unfocused-padding = 4
label-urgent = %icon% %name%
label-urgent-foreground = #000000
label-urgent-background = #bd2c40
label-urgent-underline = #9b0a20
label-urgent-font = 0
label-urgent-padding = 4
label-visible = %icon% %name%
label-visible-foreground = #55ffffff
label-visible-font = 0
label-visible-padding = 4
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-prefix-underline = ${colors.secondary}
label-layout = %layout%
label-layout-underline = ${colors.secondary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
mount-1 = /mnt/data
mount-2 = /mnt/backup
label-mounted = %{F#0a81f5}%mountpoint%%{F-} · %percentage_used%% ·%{F#555} %free% free
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}
spacing = 4
[module/cpu]
type = internal/cpu
interval = 0.5
format = <label> <ramp-coreload>
label = %{F#fba922}
ramp-coreload-0 = ▁
ramp-coreload-0-font = 3
ramp-coreload-0-foreground = #aaff77
ramp-coreload-1 = ▂
ramp-coreload-1-font = 3
ramp-coreload-1-foreground = #aaff77
ramp-coreload-2 = ▃
ramp-coreload-2-font = 3
ramp-coreload-2-foreground = #aaff77
ramp-coreload-3 = ▄
ramp-coreload-3-font = 3
ramp-coreload-3-foreground = #aaff77
ramp-coreload-4 = ▅
ramp-coreload-4-font = 3
ramp-coreload-4-foreground = #fba922
ramp-coreload-5 = ▆
ramp-coreload-5-font = 3
ramp-coreload-5-foreground = #fba922
ramp-coreload-6 = ▇
ramp-coreload-6-font = 3
ramp-coreload-6-foreground = #ff5555
ramp-coreload-7 = █
ramp-coreload-7-font = 3
ramp-coreload-7-foreground = #ff5555
[module/memory]
type = internal/memory
interval = 0.2
format = <label> <bar-used>
label = %{F#fba922}
bar-used-width = 50
bar-used-gradient = true
bar-used-foreground-0 = #55aa55
bar-used-foreground-1 = #557755
bar-used-foreground-2 = #f5a70a
bar-used-foreground-3 = #ff5555
bar-used-indicator =
bar-used-indicator-font = 2
bar-used-indicator-foreground = #fff
bar-used-fill =▐
bar-used-fill-font = 2
bar-used-empty =▐
bar-used-empty-font = 2
bar-used-empty-foreground = #444444
[module/date]
type = internal/date
interval = 1.0
date = " %A %d %B %Y"
time = %H:%M:%S
label = %{F#ddd} %date%  %time%
[module/pulseaudio]
type = internal/pulseaudio
format-volume = %{F#ddd}<ramp-volume> <label-volume>
label-volume = %percentage%%
format-muted-prefix = " "
label-muted = sound muted
ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 
ramp-volume-3 = 
ramp-headphones-0 = 
ramp-headphones-1 = 
[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60
interval = 0.5
format = <ramp> <label>
format-warn = <ramp> <label-warn>
label = %{F#77dd77} %{F-} %temperature-c%
label-warn = %{F#dd7777} %{F-} %temperature-c%
label-warn-foreground = #dd7777
ramp-0 =
ramp-1 =
ramp-2 =
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
format-padding = 3
label-open = %{F#dd7777}%{F#ddd}
label-close = %{F#dd7777}%{F#ddd}
label-separator = " · "
menu-0-0 = Terminate WM
menu-0-0-foreground = ${colors.accent}
menu-0-0-exec = bspc quit -1
menu-0-1 = Reboot
menu-0-1-foreground = ${colors.accent}
menu-0-1-exec = menu-open-1
menu-0-2 = Power off
menu-0-2-foreground = ${colors.accent}
menu-0-2-exec = menu-open-2
menu-1-0 = Cancel
menu-1-0-foreground = ${colors.accent}
menu-1-0-exec = menu-open-0
menu-1-1 = Reboot
menu-1-1-foreground = ${colors.accent}
menu-1-1-exec = systemctl reboot -i
menu-2-0 = Cancel
menu-2-0-foreground = ${colors.accent}
menu-2-0-exec = menu-open-0
menu-2-1 = Power off
menu-2-1-foreground = ${colors.accent}
menu-2-1-exec = systemctl poweroff
[module/system-usb-udev]
type = custom/script
exec = ~/.config/polybar/scripts/system-usb-udev.sh
tail = true
click-left = ~/.config/polybar/scripts/system-usb-udev.sh --mount
click-right = ~/.config/polybar/scripts/system-usb-udev.sh --unmount
[module/updates-arch-combined]
type = custom/script
exec = ~/.config/polybar/scripts/updates-arch-combined.sh
interval = 600
[module/filesystem-custom]
type = custom/script
exec = ~/.config/polybar/scripts/filesystem.sh
interval = 60
[module/gmail]
type = custom/script
exec = ~/.config/polybar/scripts/gmail/launch.py
tail = true
click-left = xdg-open https://mail.google.com
[module/system-uptime-pretty]
type = custom/script
exec = ~/.config/polybar/scripts/system-uptime-pretty.sh
interval = 30

View File

@ -0,0 +1,25 @@
#/bin/sh
icons=(  )
parts=(/ /mnt/data /mnt/backup)
output=""
for i in "${!parts[@]}"; do
avail=$(df -h ${parts[$i]} | tail -1 | tr -s ' ' | cut -d' ' -f4)
used=$(df -h ${parts[$i]} | tail -1 | tr -s ' ' | cut -d' ' -f5)
num=$(echo ${used} | cut -d'%' -f1)
if [ "$num" -gt 80 ] ; then
color="#dd7777"
elif [ "$num" -gt 50 ] ; then
color="#fba922"
else
color="#77dd77"
fi
output=$output"%{F${color}}${icons[$i]} $used%{F#555} · $avail%{F-}"
if [ $(($i + 1)) -ne "${#parts[@]}" ] ; then
output=$output" "
fi
done
echo "$output"

View File

@ -0,0 +1 @@
*.json

View File

@ -0,0 +1,28 @@
#!/usr/bin/env python
import os
import pathlib
import httplib2
import webbrowser
from oauth2client import client, file
SCOPE = 'https://www.googleapis.com/auth/gmail.readonly'
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
DIR = os.path.dirname(os.path.realpath(__file__))
CLIENT_SECRETS_PATH = os.path.join(DIR, 'client_secrets.json')
CREDENTIALS_PATH = os.path.join(DIR, 'credentials.json')
storage = file.Storage(CREDENTIALS_PATH)
if pathlib.Path(CREDENTIALS_PATH).is_file():
credentials = storage.get()
credentials.refresh(httplib2.Http())
print('Credentials successfully refreshed')
else:
flow = client.flow_from_clientsecrets(CLIENT_SECRETS_PATH, scope=SCOPE,
redirect_uri=REDIRECT_URI)
auth_uri = flow.step1_get_authorize_url()
webbrowser.open(auth_uri)
auth_code = input('Enter the auth code: ')
credentials = flow.step2_exchange(auth_code)
storage.put(credentials)
print('Credentials successfully created')

View File

@ -0,0 +1,50 @@
#!/usr/bin/env python
import os
import pathlib
import subprocess
import time
import argparse
from apiclient import discovery, errors
from oauth2client import client, file
from httplib2 import ServerNotFoundError
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--prefix', default='')
parser.add_argument('-c', '--color', default='#e06c75')
parser.add_argument('-ns', '--nosound', action='store_true')
args = parser.parse_args()
DIR = os.path.dirname(os.path.realpath(__file__))
CREDENTIALS_PATH = os.path.join(DIR, 'credentials.json')
unread_prefix = '%{F' + args.color + '}' + args.prefix + ' %{F-}'
error_prefix = '%{F' + args.color + '}\uf06a %{F-}'
count_was = 0
def update_count(count_was):
gmail = discovery.build('gmail', 'v1', credentials=file.Storage(CREDENTIALS_PATH).get())
labels = gmail.users().labels().get(userId='me', id='INBOX').execute()
count = labels['messagesUnread']
if count > 0:
print(unread_prefix + str(count), flush=True)
else:
print(args.prefix, flush=True)
if not args.nosound and count_was < count and count > 0:
subprocess.run(['canberra-gtk-play', '-i', 'message'])
return count
while True:
try:
if pathlib.Path(CREDENTIALS_PATH).is_file():
count_was = update_count(count_was)
time.sleep(10)
else:
print(error_prefix + 'credentials not found', flush=True)
time.sleep(2)
except (errors.HttpError, ServerNotFoundError, OSError) as error:
print(error_prefix + str(error), flush=True)
time.sleep(5)
except client.AccessTokenRefreshError:
print(error_prefix + 'revoked/expired credentials', flush=True)
time.sleep(5)

View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
names=("chostybottombar" "chostytopbar")
pkill polybar
if type "xrandr"; then
for monitor in $(xrandr --query | grep " connected" | cut -d" " -f1); do
for name in ${names[@]}; do
MONITOR=${monitor} polybar -q --reload ${name}&
done
done
else
polybar --reload ${name} &
fi

View File

@ -0,0 +1,3 @@
#!/bin/sh
echo "%{F#77dd77}%{F#ddd} " $(uptime --pretty | sed 's/up //')

View File

@ -0,0 +1,85 @@
#!/bin/sh
# Some updates by Quentin Duchemin on 18/03/07
# - Add label in lsblk selection
# - Add symbols from Material Google font
# - Remove term emulator opening and unused parts
# - Remove udiskctl power-off because we cannot mount again the removable device
# - Change printed name from vendor of the device to partition name (arbitrary choice)
usb_print() {
devices=$(lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR,LABEL)
output=""
counter=0
for unmounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == "1") | select(.mountpoint == null) | .name'); do
unmounted=$(echo "$devices" | jq -r '.blockdevices[] | select(.name == "'"$unmounted"'") | .label')
unmounted=$(echo "$unmounted" | tr -d ' ')
if [ $counter -eq 0 ]; then
space=""
else
space=" "
fi
counter=$((counter + 1))
output="$output$space$unmounted"
done
for mounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == "1") | select(.mountpoint != null) | .size'); do
if [ $counter -eq 0 ]; then
space=""
else
space=" "
fi
counter=$((counter + 1))
output="$output$space$mounted"
done
echo "%{F#ddd}$output"
}
usb_update() {
pid=$(pgrep -xf "/bin/sh /home/user/.config/scripts/polybar/system-usb-udev.sh")
if [ "$pid" != "" ]; then
kill -10 "$pid"
fi
}
case "$1" in
--update)
usb_update
;;
--mount)
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
for mount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == "1") | select(.mountpoint == null) | .name'); do
mountpoint=$(udisksctl mount --no-user-interaction -b "$mount")
done
usb_update
;;
--unmount)
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
for unmount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == "1") | select(.mountpoint != null) | .name'); do
udisksctl unmount --no-user-interaction -b "$unmount"
#power-off makes us unable to mount again...
#udisksctl power-off --no-user-interaction -b "$unmount"
done
usb_update
;;
*)
trap exit INT
trap "echo" USR1
while true; do
usb_print
sleep 1 &
wait
done
;;
esac

View File

@ -0,0 +1,15 @@
#!/bin/sh
updates_arch=$(checkupdates | wc -l)
if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then
updates_aur=0
fi
updates=$(("$updates_arch" + "$updates_aur"))
if [ "$updates" -gt 0 ]; then
echo "%{F#dd7777}%{F#ddd} $updates"
else
echo "%{F#77dd77}%{F#ddd} 0"
fi

View File

@ -0,0 +1,21 @@
[global_config]
enabled_plugins = TerminalShot, LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
[keybindings]
switch_to_tab_1 = None
switch_to_tab_2 = None
[layouts]
[[default]]
[[[child1]]]
parent = window0
type = Terminal
[[[window0]]]
parent = ""
type = Window
[plugins]
[profiles]
[[default]]
background_darkness = 0.85
background_type = transparent
cursor_color = "#aaaaaa"
scrollback_infinite = True
show_titlebar = False

105
.zshrc 100644
View File

@ -0,0 +1,105 @@
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"
# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
HIST_STAMPS="dd.mm.yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
colored-man-pages
colorize
command-not-found
copydir
cp
extract
history
fasd
docker
rand-quote
)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='nano'
else
export EDITOR='nano'
fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Do not print user@hostname if user is myself
DEFAULT_USER=chosto
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias cat="ccat"
alias cp="cpv"
# To use when .cfg contains a bare git repo.
# See this https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
eval "$(fasd --init auto)"