Compare commits

..

19 Commits

Author SHA1 Message Date
2f8ebb7b59 Add rofi config 2022-10-11 09:34:40 +02:00
4826e0de11 Update title 2022-10-11 08:40:30 +02:00
d3c5dde917 Fix link 2022-10-11 08:33:22 +02:00
9424c91dc0 Update image path 2022-10-11 08:32:29 +02:00
ce0180d283 Update mutt config 2022-10-11 08:30:13 +02:00
b07e3c902f Update syntax 2022-10-11 08:17:29 +02:00
330a9186bc Remove urxvt and add rofi 2022-10-11 08:16:14 +02:00
e1775316bd Update window manager config 2022-10-11 08:14:13 +02:00
c3257f8760 Remove old files 2022-10-11 07:39:15 +02:00
ef6a8377c1 Remove gpg-connect update 2022-10-11 07:38:47 +02:00
45f25d958a Update shortcut keys 2022-10-11 07:36:11 +02:00
f5a8c279a2 Use kawase blur 2022-10-11 07:32:27 +02:00
4f55cbe345 Update to latest config 2022-10-11 07:31:09 +02:00
Deon Spengler
cbf5cf82fa Add NERDTrees and TagBar 2022-10-11 07:25:54 +02:00
c59c54354d Initial config for dunst 2019-09-30 15:27:58 +02:00
f34c27cc5c Fixed error in prompt 2019-09-14 18:08:28 +02:00
b86846433e Updated to modules 2019-09-12 09:44:32 +02:00
8bfff9164c Removed blur and changed render 2019-09-12 09:41:50 +02:00
39ff90eb95 Changed editor and browser defaults; Changed bspwm socket location 2019-09-12 09:30:47 +02:00
16 changed files with 712 additions and 159 deletions

View File

@@ -1,8 +1,8 @@
My configs and scripts
======================
My desktop config
=================
This repository is a collection of configurations files and scripts that I use on my Arch Linux system to make my life easier. This is how my desktop currently looks like, if you see something that you like please feel free to use anything that might be of use to you.
![Image of my Desktop](https://github.com/deonspengler/dotfiles/raw/master/screenshot.png)
![Image of my Desktop](https://git.spengler.co.za/deon/dotfiles/raw/branch/master/screenshot.png)
Below is a brief description of some of the tools that I use in the hope that someone else might find this useful.

View File

@@ -1,8 +1,8 @@
#!/usr/bin/bash
# bspwm config
# config window apperance
bspc config border_width 2
bspc config window_gap 4
bspc config window_gap 18
bspc config split_ratio 0.50
bspc config borderless_monocle true
@@ -25,6 +25,9 @@ else
bspc monitor -d term web games misc
fi
# key used with mouse for moving and resizing windows
bspc config pointer_modifier mod4
# application rules
bspc rule -a Chromium desktop=web
bspc rule -a Steam follow=off state=floating desktop=games
@@ -32,12 +35,17 @@ bspc rule -a Galculator state=floating
bspc rule -a Nvidia-settings state=floating
bspc rule -a obs state=floating
bspc rule -a Pavucontrol state=floating
bspc rule -a "TeamSpeak 3" state=floating
bspc rule -a V4l2ucp state=floating
bspc rule -a Nitrogen state=floating
bspc rule -a Vividhue state=floating
#################################
# start the following application
#################################
# compositor
compton -b
picom --experimental-backends -b
# set cursor to expected left-pointer
xsetroot -cursor_name left_ptr
@@ -55,8 +63,13 @@ sxhkd &
dunst &
# clipboard manager
autocutsel -fork -selection CLIPBOARD
autocutsel -fork -selection PRIMARY
clipmenud &
# detect and mount external storage devices
udiskie &
# hide mouse when idle
unclutter &

View File

@@ -11,17 +11,17 @@ conky.config = {
conky.text = [[
S\
%{c}\
%{F\#a7a5a5}%{B\#000000}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} ${upspeedf enp2s0}K \
%{F\#a7a5a5}%{B\#90000000}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} ${upspeedf enp2s0}K \
%{F\#a7a5a5}%{B\#504e4e}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} ${downspeedf enp2s0}K \
%{F\#a7a5a5}%{B\#504e4e}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} ${exec cat /sys/class/hwmon/hwmon1/temp1_input | cut -c-2 }°\
%{F\#504e4e}%{B\#a7a5a5}%{F\#a7a5a5}%{B\#504e4e}%{F\#d6d3d2}%{B\#504e4e}  ${cpu cpu0}%\
%{F\#504e4e}%{B\#a7a5a5}%{F\#a7a5a5}%{B\#504e4e}%{F\#d6d3d2}%{B\#504e4e}  ${mem}\
%{F\#504e4e}%{B\#a7a5a5}%{F\#a7a5a5}%{B\#000000}\
%{F\#504e4e}%{B\#a7a5a5}%{F\#a7a5a5}%{B\#90000000}\
%{r}\
%{F\#a7a5a5}%{B\#000000}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} \
${texeci 24 ~/.config/bspwm/localtemp} \
%{F\#a7a5a5}%{B\#90000000}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} \
${texeci 60 ~/.config/bspwm/localtemp2} \
%{F\#a7a5a5}%{B\#504e4e}%{F\#504e4e}%{B\#a7a5a5}%{F\#d6d3d2}%{B\#504e4e} ${time %a %b %d, %T} \
%{F\#a7a5a5}%{B\#504e4e}%{B\#000000}\
%{F\#a7a5a5}%{B\#504e4e}%{B\#90000000}\
]]
-- vim: ts=4 sw=4 noet ai cindent syntax=lua

View File

@@ -4,10 +4,10 @@ PANEL_HEIGHT=16
PANEL_FONT="-misc-tamlin-medium-r-normal--16-116-100-100-c-80-iso10646-1"
PANEL_WM_NAME=bspwm_panel
COLOR_BLACK="#000000"
COLOR_GREY1="#d6d3d2"
COLOR_GREY2="#a7a5a5"
COLOR_GREY3="#504e4e"
COLOR_BLACK="#85000000"
COLOR_GREY1="#ffd6d3d2"
COLOR_GREY2="#ffa7a5a5"
COLOR_GREY3="#ff504e4e"
if xdo id -a "$PANEL_WM_NAME" > /dev/null ; then
printf "%s\n" "The panel is already running." >&2
@@ -21,8 +21,8 @@ mkfifo "$PANEL_FIFO"
num_mon=$(bspc query -M | wc -l)
conky -c ~/.config/bspwm/conky.conf > "$PANEL_FIFO" &
bspc config top_padding $PANEL_HEIGHT
conky -c ~/.config/bspwm/conky.conf > "$PANEL_FIFO" &
bspc subscribe report > "$PANEL_FIFO" &
while read -r line ; do

View File

@@ -1,41 +0,0 @@
# Backend
backend = "glx";
paint-on-overlay = true;
glx-no-stencil = true;
unredir-if-possible = true;
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.05;
fade-out-step = 0.05;
# Shadow
shadow = true;
no-dock-shadow = false;
no-dnd-shadow = true;
clear-shadow = true; # Zero the part of the shadow's mask behind the window (experimental).
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [ "n:e:Notification" ];
# Opacity
detect-client-opacity = true;
menu-opacity = 1.00;
opacity-rule = [ "65:class_g = 'Bspwm' && class_i = 'presel_feedback'" ];
# Blur
#blur-background = true;
#blur-background-fixed = true;
#blur-kern = "3,3,0.1,1,1,1,1,1,1,1";
# Window type settings
wintypes:
{
tooltip = { fade = true; shadow = false; };
menu = { shadow = false; };
dropdown_menu = { shadow = false; };
popup_menu = { shadow = false; };
utility = { shadow = false; };
};

454
dunstrc Normal file
View File

@@ -0,0 +1,454 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# 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
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 0
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# 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.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 10
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# 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.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# 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
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 64
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# 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
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#29292b80"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

33
mutt/filter.py Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python3
import re
import sys
# Read data from stdin
data = sys.stdin.read()
# Remove unwanted text
data = re.sub(r'\[-- Autoview.*--\]', '', data)
data = re.sub(r'\[-- Attachment #[0-9] --\]', '', data)
data = re.sub(r'\[cid\]', '', data)
data = re.sub(r'\[-- application.*unsupported.*--\]', '', data)
data = re.sub(r'\[-- image.*unsupported.*--\]', '', data)
data = re.sub(r'\[-- Type.*--\]', '', data)
# replace text for signed and encrypted email
data = re.sub(r'\[-- OpenSSL.*\nVerification successful\n.*',
'[-- Signed Email: Verification successful --]', data)
data = re.sub(r'\[-- The following data is S/MIME encrypted --\]',
'[-- Encrypted Email: S/MIME --]', data)
data = re.sub(r'\[-- The following data is signed --\]', '', data)
data = re.sub(r'\[-- End of signed data --\]', '', data)
data = re.sub(r'\[-- End of S/MIME encrypted data. --\]', '', data)
# Add line for quoted email
data = re.sub(r'(?<=\n)(From:.*)', '_'*80 + r'\n\1', data)
# clean up multiple blanks lines
data = re.sub(r'.*\n', '', data)
data = re.sub(r'\n\s*\n', r'\n\n', data)
# Output filtered text to stdout
sys.stdout.write(data)

View File

@@ -1,21 +1,29 @@
# connection options
set ssl_force_tls = yes
# encoding
set charset = "utf-8"
# ssl
set ssl_starttls = yes
# username and password
source "gpg -q -d ~/.mutt/passwords.asc |"
set imap_user = username@gmail.com
set smtp_url = smtp://username@smtp.gmail.com:587
# configure s/mime support
source /usr/share/doc/mutt/samples/smime.rc
set smime_ca_location = /etc/ca-certificates/extracted/tls-ca-bundle.pem
set smime_default_key = "05408192.0"
set crypt_autosign = no
set crypt_replysign = no
# setup from details
set from = username@gmail.com
set realname = "Real Name"
# setup cahce directories
# setup directories
set certificate_file = ~/.mutt/certificates
set tmpdir = ~/.mutt/tmp
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set tmpdir = ~/.mutt/tmp
# setup from details
set realname = "<User Name>"
set from = "<user@example.com>"
# authentication
set imap_user = "<user@example.com>"
source "gpg -dq ~/.mutt/<my-encrypted-password>.asc |"
# keep IMAP settings
set imap_keepalive = 300
@@ -23,60 +31,69 @@ set imap_passive = no
set imap_check_subscribed = yes
# how often to check for new mail (time in seconds)
set mail_check = 60
set mail_check = 300
# remote gmail folders
set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
# default mailbox
set use_from = yes
set folder = imap://<mail.example.com>
set smtp_url = smtp://<mail.example.com>
set spoolfile = "=Inbox"
set record = "=Sent"
set postponed = "=Drafts"
# set sort options
set sort = threads
set sort_aux = reverse-last-date-received
# setup helpers
# set mailcap
set mailcap_path = ~/.mutt/mailcap
# google address book support
set query_command = "goobook query '%s'"
bind editor "\t" complete-query
# prefer plain text
alternative_order text/plain text/enriched text/html
# view html emails
auto_view text/html
# index_format
set index_format="%3C %Z %[%b %d %H:%M] - %-22.22L %s"
# Header Options -------------------------------------
ignore * # ignore all headers
unignore from: to: cc: date: subject: # show only these
unhdr_order * # some distros order things by default
hdr_order from: to: cc: date: subject: # and in this order
# set editor
set editor='vim'
# Refresh/Sync
bind index U imap-fetch-mail
# set display filter
set display_filter="~/.mutt/filter.py"
# ldap address book
set query_command = "~/.mutt/ldapbook.py '%s'"
bind editor "\t" complete-query
# pager key binding
bind pager j next-line
bind pager k previous-line
# index_format
set index_format="%3C %Z %[%b %d %H:%M] - %-22.22L %s"
# header Options
ignore *
unignore from: to: cc: date: subject:
unhdr_order *
hdr_order from: to: cc: date: subject:
# Set colors to use
color hdrdefault blue black
color header green black "^From"
color header color111 black "^Subject"
color header brightmagenta black "^Date"
color quoted blue black
color signature blue black
color attachment green black
color message brightred black
color error brightred black
color indicator black white
color status brightgreen blue
color indicator white color237
color status black blue
color tree white black
color normal white black
color markers red black
color search white black
color tilde brightmagenta black
color index color33 black ~F
color index color33 black "~F"
color index color111 black "~N|~O"
# message headers
color hdrdefault white black
color header white black "^(From)"
color header color111 black "^(Subject)"
color index magenta black "~D"

44
picom.conf Normal file
View File

@@ -0,0 +1,44 @@
# Backend
backend = "glx";
unredir-if-possible = false;
# V-Sync
vsync = true;
vsync-use-glfinish = true;
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.05;
fade-out-step = 0.05;
# Shadow
shadow = true;
shadow-radius = 14;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [ "n:e:Notification" ];
# Opacity
detect-client-opacity = true;
opacity-rule = [
"65:class_g = 'Bspwm' && class_i = 'presel_feedback'",
"50:class_g = 'bspwm_panel'"
];
# Blur
blur-background = true;
blur-method = "dual_kawase";
blur-strength = 4;
# Window type settings
wintypes:
{
dock = { shadow = true; };
dnd = { shadow = false; };
tooltip = { fade = true; shadow = false; };
menu = { shadow = false; };
dropdown_menu = { shadow = false; opacity = 1.00; };
popup_menu = { shadow = false; opacity = 1.00; };
utility = { shadow = false; };
};

13
rofi/config.rasi Normal file
View File

@@ -0,0 +1,13 @@
configuration {
modi: "combi,drun,ssh";
disable-history: false;
max-history-size: 10;
sort: true;
sorting-method: "fzf";
matching: "normal";
display-combi: "run: ";
display-drun: "";
display-ssh: "ssh";
show-icons: true;
}
@theme "sidebar"

View File

@@ -39,54 +39,62 @@ alt + bracket{left,right}
bspc desktop -f {prev,next}
# preselection
alt + ctrl + {h,j,k,l}
super + {h,j,k,l}
bspc node -p {'~west','~south','~north','~east'}
# expand a window by moving one of its side outward
super + {h,j,k,l}
alt + ctrl + {h,j,k,l}
bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10}
# contract a window by moving one of its side inward
super + shift + {h,j,k,l}
alt + ctrl + shift + {h,j,k,l}
bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10}
# send active window to desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} ^{1-9,10}
# select workspace or send active window to workspace
super + {_,shift + }{q,w,e,r}
bspc {desktop -f,node -d} ^{1-4}
super + {_,shift + }{1-4}
bspc {desktop -f,node -d} ^{1-4}
########################
# wm independent hotkeys
########################
# urxvt terminal
# terminal
alt + Return
urxvtc
st
# application launcher
super + space
dmenu_run -fn "-misc-tamlin-medium-r-normal--16-116-100-100-c-80-iso10646-1" -nb "#000000" -sb "#517ba2"
alt + r
rofi -combi-modi drun,ssh -show combi
# clipboard manager
super + c
clipmenu -fn "-misc-tamlin-medium-r-normal--16-116-100-100-c-80-iso10646-1" -nb "#000000" -sb "#517ba2"
alt + c
clipmenu -p "clipboard: "
super + shift + c
clearclip
alt + shift + c
clipdel -d "."
# unmount all udisk2 managed devices
alt + u
udiskie-umount -a
# password manager
super + p
passmenu -fn "-misc-tamlin-medium-r-normal--16-116-100-100-c-80-iso10646-1" -nb "#000000" -sb "#517ba2"
alt + p
rofi-pass
# media controls
alt + {n,p,s}
alt + {n,b,s}
mpc --host=slainsmpdserver@shadowblade.lan --port 6600 {next,prev,toggle}
XF86Audio{Next,Prev,Play}
mpc --host=slainsmpdserver@shadowblade.lan --port 6600 {next,prev,toggle}
# file manager
alt + BackSpace
urxvtc -e ranger
alt + f
st -e ranger
# web browser
alt + shift + b
@@ -96,12 +104,16 @@ alt + shift + b
alt + shift + x
steam
# v4l2ucp
alt + shift + w
v4l2ucp
# notification for current song from mpd
alt + i
mpdnotify
# lock screen
ctrl + super + l
alt + ctrl + super + l
dm-tool switch-to-greeter
# blank monitors
@@ -113,9 +125,17 @@ XF86Audio{Raise,Lower}Volume
pamixer {-i5,-d5}
# mute toggle
alt + m
XF86AudioMute
pamixer -t
# close notification
ctrl + space
dunstctl close
# show recent notification
ctrl + grave
dunstctl history-pop
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd

View File

@@ -1,6 +1,6 @@
set -g status-bg black
set -g status-fg white
set-window-option -g window-status-current-fg colour067
set-window-option -g window-status-style fg=colour67
set -g status-left '#[default]'
set -g status-right '%H:%M %d/%m/%Y'

54
vimrc
View File

@@ -1,3 +1,6 @@
" set character encoding
set encoding=utf-8
" vim-plug automatic installationx
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
@@ -12,18 +15,16 @@ Plug 'honza/vim-snippets'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-fugitive'
Plug 'tmhedberg/SimpylFold'
Plug 'maralla/completor.vim'
Plug 'vim-syntastic/syntastic'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'jiangmiao/auto-pairs'
Plug 'preservim/nerdtree'
Plug 'nanotech/jellybeans.vim'
Plug 'rakr/vim-one'
Plug 'preservim/tagbar'
Plug 'ryanoasis/vim-devicons'
call plug#end()
" set encoding type
set encoding=utf-8
" be iMproved
set nocompatible
@@ -38,7 +39,7 @@ syntax on
autocmd FileType python set colorcolumn=80
" spell checking
imap <F5> <C-o>:setlocal spell! spelllang=en_us<CR>
map <F5> :setlocal spell! spelllang=en_us<CR>
autocmd FileType mail set spell spelllang=en_us
autocmd FileType text set spell spelllang=en_us
@@ -52,7 +53,7 @@ set cm=blowfish
set number
" toggle line numbers
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
nnoremap <F3> :set nonumber!<CR>:set foldcolumn=0<CR>
" set preview window at the bottom
set splitbelow
@@ -84,11 +85,26 @@ set ignorecase
set smartcase
" rebind <leader> key
let mapleader=","
let mapleader=";"
" NERDTrees
nnoremap <F2> :NERDTreeToggle /home/deon/Projects/<CR>
" NERDCommenter
nnoremap <leader>cc :NERDCommenterComment<CR>
nnoremap <leader>cu :NERDCommenterUncomment<CR>
" tagbar
nmap <F8> :TagbarToggle<CR>
" map sort function to a key
vnoremap <leader>s :sort<CR>
" easier buffer navigation
map <Tab> :bn<cr>
map <s-Tab> :bp<cr>
map ;d :bd<cr>
" easier moving of code block indentation
vnoremap < <gv
vnoremap > >gv
@@ -107,23 +123,17 @@ let g:airline#extensions#tabline#buffer_min_count = 2
" UltiSnips
let g:UltiSnipsExpandTrigger="<C-j>"
" Configure code folding for python
autocmd Syntax python normal zR
" configure syntastic
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 0
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 0
let g:syntastic_python_pylint_args = "--load-plugins pylint_django"
" bind <C-n> for nerdtree
map <C-n> :NERDTreeToggle<CR>
" set color scheme
set t_Co=256
colorschem jellybeans
" number line column color
highlight LineNr ctermfg=grey ctermbg=0
" NERDTrees File highlighting
autocmd filetype nerdtree syn match py_icon # # containedin=NERDTreeFlags
autocmd filetype nerdtree highlight py_icon ctermbg=none ctermfg=blue
" set color for printing
command Hardcopy call Hardcopy()
function! Hardcopy()

View File

@@ -5,20 +5,17 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
unset f
fi
# Start the gpg-agent if not already running
if ! pgrep -x -u "${USER}" gpg-agent &> /dev/null; then
eval $(gpg-agent --homedir "${HOME}/.gnupg" --daemon)
fi
# Merge X resources
xrdb -merge ~/.Xresources
# Disable monitor blanking
xset s off -dpms
# Run urxvt daemon
urxvtd -q -o -f
# Jack audio
jack_control start
# Export variables
export EDITOR=vim
export BROWSER=firefox
export EDITOR=/usr/bin/vim
export BROWSER=/usr/bin/chromium
export BSPWM_SOCKET=/run/user/$(id -u)/bspwm
export CM_LAUNCHER=rofi

View File

@@ -70,8 +70,7 @@ prompt_pure_precmd() {
# git info
vcs_info
#local prompt_pure_preprompt='\n%F{blue}\u250C\u2500[%~]%F{242}$vcs_info_msg_0_`prompt_pure_git_dirty` $prompt_pure_username%f %F{yellow}`prompt_pure_cmd_exec_time`%f'
local prompt_pure_preprompt='\n%F{blue}\u250C\u2500[%~]%F{242}\%(!. %n.)$vcs_info_msg_0_`prompt_pure_git_dirty` $prompt_pure_username%f %F{yellow}`prompt_pure_cmd_exec_time`%f'
local prompt_pure_preprompt='\n%F{blue}\u250C\u2500[%~]%F{242}$vcs_info_msg_0_`prompt_pure_git_dirty` $prompt_pure_username%f %F{yellow}`prompt_pure_cmd_exec_time`%f'
print -P $prompt_pure_preprompt
# check async if there is anything to pull

View File

@@ -12,12 +12,6 @@ export HISTSIZE=1000
export SAVEHIST=1000
setopt SHARE_HISTORY
# set correct gpg tty for ssh
if [ -n "$SSH_TTY" ]; then
export GPG_TTY=$SSH_TTY
gpg-connect-agent updatestartuptty /bye >/dev/null
fi
# add path to $fpath
fpath=("$HOME/.zsh/functions/prompts" $fpath)