Commit 8227a45f authored by Hund's avatar Hund

Changed folder structure to something more sane for the repository.

parent e86f5982
# Automatically save database on exit
set autosave=true
# Show all email addresses in list
set show_all_emails=true
# frequently used values:
# -1 disabled
# phone Home Phone
# workphone Work Phone
# fax Fax
# mobile Mobile Phone
# nick Nickname/Alias
# url URL
# Command used to start mutt
set mutt_command=mutt
# Return all email addresses to a mutt query
#set mutt_return_all_emails=true
# Command used to print
set print_command=lpr
# Command used to start the web browser
set www_command=w3m
# address style [eu|us|uk]
set address_style=eu
# use ASCII characters only
set use_ascii_only=false
# Prevent double entry
set add_email_prevent_duplicates=false
# field to be used with "sort by field" command
set sort_field=nick
# show cursor in main display
set show_cursor=false
set index_format=" {name:30} {mobile:20} {workphone:20} {email:35}"
# Keybindings
bind -f common u update-cache -f
# Alsa
set output_plugin=alsa
set dsp.alsa.device=default
set mixer.alsa.device=default
set mixer.alsa.channel=Master
# Colorscheme
colorscheme cmus-solmin
# UI
set format_current=Now playing: %a - %t%= %l (%y)
set format_statusline=%{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }} [%{total}] %{?volume>=0?| Vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle}
[global]
font = Monospace 9
# If markup is not allowed, those tags will be stripped out of the
# message.
allow_markup = yes
# Treat incoming notifications as plain text
plain_text = no
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "<b>%s</b>\n%b"
# Sort messages by urgency.
sort = yes
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# The frequency with which text that is longer than the notification
# window allows bounces back and forth.
# This option conflicts with "word_wrap".
# Set to 0 to disable.
bounce_freq = 0
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# Ignore newlines '\n' in notifications.
ignore_newline = no
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x1000-8+35"
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = 1
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 120
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Align icons left/right/off
icon_position = left
# Paths to default icons.
icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
[frame]
width = 1
color = "#4C7899"
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1".
history = ctrl+section
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#285577"
foreground = "#ffffff"
timeout = 10
[urgency_normal]
background = "#285577"
foreground = "#ffffff"
timeout = 10
[urgency_critical]
background = "#E74C3C"
foreground = "#ffffff"
timeout = 0
[ignore]
summary = "*is offline*"
format = ""
# This file is overwritten during software install.
# Persistent customizations should go in a .local file.
include /etc/firejail/palemoon.local
# Firejail profile for Pale Moon
noblacklist ~/.moonchild productions/pale moon
noblacklist ~/.cache/moonchild productions/pale moon
include /etc/firejail/disable-common.inc
include /etc/firejail/disable-programs.inc
include /etc/firejail/disable-devel.inc
include /etc/firejail/whitelist-common.inc
whitelist ${DOWNLOADS}
mkdir ~/.moonchild productions
whitelist ~/.moonchild productions
mkdir ~/.cache/moonchild productions/pale moon
whitelist ~/.cache/moonchild productions/pale moon
caps.drop all
netfilter
nogroups
nonewprivs
noroot
protocol unix,inet,inet6,netlink
seccomp
shell none
tracelog
private-bin palemoon
private-opt palemoon
#private-tmp - mask KDE problems
# These are uncommented in the Firefox profile. If you run into trouble you may
# want to uncomment (some of) them.
#whitelist ~/dwhelper
#whitelist ~/.zotero
#whitelist ~/.vimperatorrc
#whitelist ~/.vimperator
whitelist ~/.pentadactylrc
whitelist ~/.pentadactyl
#whitelist ~/.keysnail.js
#whitelist ~/.config/gnome-mplayer
#whitelist ~/.cache/gnome-mplayer/plugin
#whitelist ~/.pki
#whitelist ~/.lastpass
# For silverlight
#whitelist ~/.wine-pipelight
#whitelist ~/.wine-pipelight64
#whitelist ~/.config/pipelight-widevine
#whitelist ~/.config/pipelight-silverlight5.1
# experimental features
#private-etc passwd,group,hostname,hosts,localtime,nsswitch.conf,resolv.conf,gtk-2.0,pango,fonts,iceweasel,firefox,adobe,mime.types,mailcap,asound.conf,pulse
#private-dev (disabled for now as it will interfere with webcam use in palemoon)
# Firejail profile for Qutebrowser (Qt5-Webkit+Python) browser
#noblacklist=/usr/bin/aspell
noblacklist ~/.config/qutebrowser
noblacklist ~/.cache/qutebrowser
include /etc/firejail/disable-common.inc
include /etc/firejail/disable-programs.inc
#include /etc/firejail/disable-devel.inc
caps.drop all
netfilter
nonewprivs
noroot
protocol unix,inet,inet6,netlink
seccomp
tracelog
whitelist ${DOWNLOADS}
mkdir ~/.config/qutebrowser
whitelist ~/.config/qutebrowser
mkdir ~/.cache/qutebrowser
whitelist ~/.cache/qutebrowser
whitelist ~/.local/share/qutebrowser
include /etc/firejail/whitelist-common.inc
whitelist ~/.vimrc
whitelist ~/.vim
/etc/fonts/conf.avail/10-sub-pixel-rgb.conf
\ No newline at end of file
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable hinting -->i
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintfull</const>
</edit>
</match>
<match target="font">
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>
#!/usr/bin/sh
hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
monitors=$(herbstclient get_attr monitors.count)
if [ "$monitors" -gt 1 ]; then
hc remove_monitor 1
hc set_monitors 1920x1080+0
else
hc set_monitors 1280x1080+0 643x1067+1280+15
hc focus_monitor 1
hc use_index 8
fi
#!/usr/bin/sh
hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
monitors=$(herbstclient get_attr monitors.count)
tag="hc get_attr tags.focus.index"
if [ "$monitors" -gt 1 ]; then
hc focus_monitor 1
hc fullscreen off
hc remove_monitor 1
hc merge_tag media
hc use_index $tag
else
hc add_monitor 590x332+1330+748
hc add media
hc move_index 9
hc focus_monitor 1
hc use_index 9
hc fullscreen on
hc focus_monitor 0
hc use_index $tag
fi
#!/usr/bin/env bash
tag="${1:-floating}"
monitor=floating_monitor
hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
float_on() {
mrect=( $(hc monitor_rect) )
termwidth=${mrect[2]}
termheight=${mrect[3]}
rect=(
$termwidth
$termheight
${mrect[0]}
${mrect[1]}
)
hc add "$tag"
hc floating "$tag" on
hc add_monitor $(printf "%dx%d%+d%+d" "${rect[@]}") \
"$tag" $monitor 2> /dev/null
# remember which monitor was focused previously
hc new_attr string monitors.by-name."$monitor".my_prev_focus
local orig_monitor="$(hc get_attr monitors.focus.index)"
hc set_attr monitors.by-name."$monitor".my_prev_focus "${orig_monitor}"
hc lock
hc shift_to_monitor "$monitor"
hc raise_monitor "$monitor"
hc focus_monitor "$monitor"
hc unlock
hc lock_tag "$monitor"
}
float_off() {
# if q3terminal still is focused, then focus the previously focused monitor
# (that mon which was focused when starting q3terminal)
hc remove_monitor "$monitor"
hc raise_monitor "${1}"
hc focus_monitor "${1}"
hc merge_tag "$tag"
}
if orig="$(hc get_attr monitors.by-name."$monitor".my_prev_focus 2> /dev/null)"; then
float_off "${orig}"
else
float_on
fi
#!/usr/bin/env bash
hc() {
herbstclient "$@"
}
hc emit_hook reload
herbstclient set tree_style '╾│ ├└╼─┐'
hc set swap_monitors_to_get_tag 0
# xrandr
xrandr --dpi 96 --output DVI-I-1 --primary --output DVI-D-0 --left-of DVI-I-1 --output HDMI-0 --right-of DVI-I-1 &
# Configure monitors
herbstclient detect_monitors
herbstclient set_monitors 1920x1080+1920+0 1920x1080+0 1920x1080+3840+0
herbstclient rename_monitor 1 left
herbstclient rename_monitor 0 middle
herbstclient rename_monitor 2 right
#--------------------------------------------------#
# Theming
#--------------------------------------------------#
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
hc set frame_border_active_color '#0C1F25'
hc set frame_border_normal_color '#101010'
hc set frame_bg_normal_color '#0D4350'
hc set frame_bg_active_color '#657B83'
hc set frame_border_width 1
hc set always_show_frame 0
hc set frame_bg_transparent 1
hc set frame_transparent_width 3
hc set frame_gap 2
hc attr theme.active.color '#456A73'
hc attr theme.normal.color '#0D4350'
hc attr theme.urgent.color '#B58900'
hc attr theme.inner_width 1
hc attr theme.inner_color '#0C1F25'
hc attr theme.border_width 4
hc attr theme.floating.border_width 4
hc attr theme.floating.outer_width 1
hc attr theme.floating.outer_color black
hc attr theme.active.inner_color '#0C1F25'
hc attr theme.active.outer_color '#0C1F25'
hc attr theme.background_color '#141414'
hc set window_gap 0
hc set frame_padding 0
hc set smart_window_surroundings 0
hc set smart_frame_surroundings 1
hc set mouse_recenter_gap 0
#--------------------------------------------------#
# Keybindings
#--------------------------------------------------#
# remove all existing keybindings
hc keyunbind --all
# if you have a super key you will be much happier with Mod set to Mod4
Mod=Mod1 # Use alt as the main modifier
Super=Mod4 # Use the super key as the main modifier
# Reload Herbstluftwm
hc keybind $Mod-Shift-r reload
# Exit Herbstluftwm
hc keybind $Mod-Control-BackSpace quit
# Kill client/frame
#hc keybind $Mod-Shift-q close_and_remove
hc keybind $Mod-Shift-q close_or_remove
# Focus client
hc keybind $Mod-h focus left
hc keybind $Mod-j focus down
hc keybind $Mod-k focus up
hc keybind $Mod-l focus right
# Move client
hc keybind $Mod-Shift-h shift left
hc keybind $Mod-Shift-j shift down
hc keybind $Mod-Shift-k shift up
hc keybind $Mod-Shift-l shift right
# Create an empty frame at the specified direction
hc keybind $Mod-u split bottom 0.5
hc keybind $Mod-o split right 0.5
# Explode current frame into subframes
hc keybind $Mod-Control-space split explode
# Resizing frames
resizestep=0.03
hc keybind $Mod-Control-h resize left +$resizestep
hc keybind $Mod-Control-j resize down +$resizestep
hc keybind $Mod-Control-k resize up +$resizestep
hc keybind $Mod-Control-l resize right +$resizestep
hc keybind $Mod-Control-Left resize left +$resizestep
hc keybind $Mod-Control-Down resize down +$resizestep
hc keybind $Mod-Control-Up resize up +$resizestep
hc keybind $Mod-Control-Right resize right +$resizestep
hc keybind $Mod-r remove
# Toggle floating client
hc keybind $Mod-s spawn ~/.config/herbstluftwm/Scripts/toggle_single_float.sh
# Toggle fullscreen client
hc keybind $Mod-f fullscreen toggle
# Toggle window decoration on current focused client
hc keybind $Mod-t spawn sh ~/.config/herbstluftwm/Scripts/toggle_window_decoration.sh
hc keybind $Mod-space cycle_monitor -1
hc keybind $Mod-Shift-space cycle_monitor +1
# Tab between the two latest workspaces on the same monitor
hc keybind $Mod-Tab use_previous
# Jump to urgent client
hc keybind $Mod-Shift-a jumpto urgent
# Toggle floating media player
hc keybind $Mod-Shift-m spawn sh ~/.config/herbstluftwm/Scripts/toggle_floating_media.sh
# Toggle virtual dual monitors
#hc keybind $Mod-Shift-n spawn sh ~/.config/herbstluftwm/Scripts/toggle_dual_virtual_monitors.sh
#--------------------------------------------------#
# Applications
#--------------------------------------------------#
# Terminal
hc keybind $Mod-Return spawn urxvt
# Launcher
hc keybind $Mod-p spawn rofi -m -4 -show run -p "oeoeo" -font "xos4Terminus 12"
hc keybind $Mod-Shift-w spawn rofi -m 0 -bw 3 -show window -display-run "Window" -font "xos4Terminus 12"
hc keybind $Mod-Shift-p spawn ~/Scripts/rofi-scripts.sh
# Volume
hc keybind $Mod-plus spawn sh ~/Scripts/volume.sh up
hc keybind $Mod-minus spawn sh ~/Scripts/volume.sh down
hc keybind $Mod-Ctrl-m spawn sh ~/Scripts/volume.sh mute
# Suspend the computer
hc keybind $Mod-Ctrl-Esc spawn sh ~/Scripts/bin/suspend.sh
# Take a screenshot
hc keybind Print spawn sh ~/Scripts/scrot.sh
#--------------------------------------------------#
# Rules
#--------------------------------------------------#
hc unrule -F
hc rule focus=on # normally focus new clients
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
# Gimp
hc rule class=Gimp tag=7 index=01 pseudotile=on
hc rule class=Gimp windowrole~'gimp-(image-window|toolbox|dock)' \
pseudotile=off
hc rule class=Gimp windowrole=gimp-toolbox focus=off index=00
hc rule class=Gimp windowrole=gimp-dock focus=off index=1
# Firefox
hc rule class="Firefox" tag=8
# Minecraft
hc rule class="Minecraft 1.12.2" tag=4 fullscreen=on
# Unlock, just to be sure
hc unlock
#--------------------------------------------------#
# Tags
#--------------------------------------------------#
tag_names=( {1..9} )
tag_keys=( {1..9} 0 )
hc rename default "${tag_names[0]}" || true
for i in ${!tag_names[@]} ; do
hc add "${tag_names[$i]}"
key="${tag_keys[$i]}"
if ! [ -z "$key" ] ; then
hc keybind "$Mod-$key" use_index "$i"
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# Lock tag to a monitor
lock_tag_to_monitor 1 0
lock_tag_to_monitor 2 1
lock_tag_to_monitor 3 2
lock_tag_to_monitor 4 0
#lock_tag_to_monitor 5 0
lock_tag_to_monitor 6 0
#lock_tag_to_monitor 7 0
#lock_tag_to_monitor 8 0
lock_tag_to_monitor 9 2
# Lock tag to a monitor via keybinding
herbstclient keybind $Mod-t chain \
, new_attr string tags.focus.my_monitor \
, substitute M monitors.focus.index set_attr tags.focus.my_monitor M \
, try and \
. compare monitors.focus.name != "" \
. substitute M monitors.focus.name \
set_attr tags.focus.my_monitor M
# Tags on specic monitors
hc rename default "${tag_names[0]}" || true
for i in ${!tag_names[@]} ; do
hc add "${tag_names[$i]}"
key="${tag_keys[$i]}"
if ! [ -z "$key" ] ; then
# first check if the tag is locked to some monitor.
# if so, first focus the monitor
hc keybind "$Mod-$key" \
chain , silent substitute M tags."$i".my_monitor \
focus_monitor M \
, use_index "$i"
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# Statically define which tag should be send to which monitor
lock_tag_to_monitor() {
herbstclient chain \
, new_attr string tags.by-name."$1".my_monitor \
, set_attr tags.by-name."$1".my_monitor "$2"
}
#--------------------------------------------------#
# Panels
#--------------------------------------------------#
pkill dzen2
~/.config/herbstluftwm/panels/left.sh &
~/.config/herbstluftwm/panels/middle.sh &
~/.config/herbstluftwm/panels/right.sh &
#--------------------------------------------------#
# Mouse settings