Merge remote-tracking branch 'LukeSmithxyz/master'

This commit is contained in:
Vlad Doster 2020-03-27 09:58:31 -05:00
commit 86eeb87d97
62 changed files with 643 additions and 167 deletions

156
.config/Xresources Normal file
View File

@ -0,0 +1,156 @@
!! Transparency (0-1):
*.alpha: 0.8
!! Set a default font and font size as below:
*.font: monospace:size=10
/* name dark light */
/* black 0 8 */
/* red 1 9 */
/* green 2 10 */
/* yellow 3 11 */
/* blue 4 12 */
/* purple 5 13 */
/* cyan 6 14 */
/* white 7 15 */
/* !! gruvbox: */
/* *.color0: #1d2021 */
/* *.color1: #cc241d */
/* *.color2: #98971a */
/* *.color3: #d79921 */
/* *.color4: #458588 */
/* *.color5: #b16286 */
/* *.color6: #689d6a */
/* *.color7: #a89984 */
/* *.color8: #928374 */
/* *.color9: #fb4934 */
/* *.color10: #b8bb26 */
/* *.color11: #fabd2f */
/* *.color12: #83a598 */
/* *.color13: #d3869b */
/* *.color14: #8ec07c */
/* *.color15: #ebdbb2 */
/* *.color256: #1d2021 */
/* *.color257: #ebdbb2 */
/* !! gruvbox light: */
/* *.color0: #fbf1c7 */
/* *.color1: #cc241d */
/* *.color2: #98971a */
/* *.color3: #d79921 */
/* *.color4: #458588 */
/* *.color5: #b16286 */
/* *.color6: #689d6a */
/* *.color7: #7c6f64 */
/* *.color8: #928374 */
/* *.color9: #9d0006 */
/* *.color10: #79740e */
/* *.color11: #b57614 */
/* *.color12: #076678 */
/* *.color13: #8f3f71 */
/* *.color14: #427b58 */
/* *.color15: #3c3836 */
/* *.background: #fbf1c7 */
/* *.foreground: #282828 */
/* st.alpha: 0.9 */
/* !! brogrammer: */
/* *.foreground: #d6dbe5 */
/* *.background: #131313 */
/* *.color0: #1f1f1f */
/* *.color8: #d6dbe5 */
/* *.color1: #f81118 */
/* *.color9: #de352e */
/* *.color2: #2dc55e */
/* *.color10: #1dd361 */
/* *.color3: #ecba0f */
/* *.color11: #f3bd09 */
/* *.color4: #2a84d2 */
/* *.color12: #1081d6 */
/* *.color5: #4e5ab7 */
/* *.color13: #5350b9 */
/* *.color6: #1081d6 */
/* *.color14: #0f7ddb */
/* *.color7: #d6dbe5 */
/* *.color15: #ffffff */
/* *.colorBD: #d6dbe5 */
/* ! base16 */
/* *.color0: #181818 */
/* *.color1: #ab4642 */
/* *.color2: #a1b56c */
/* *.color3: #f7ca88 */
/* *.color4: #7cafc2 */
/* *.color5: #ba8baf */
/* *.color6: #86c1b9 */
/* *.color7: #d8d8d8 */
/* *.color8: #585858 */
/* *.color9: #ab4642 */
/* *.color10: #a1b56c */
/* *.color11: #f7ca88 */
/* *.color12: #7cafc2 */
/* *.color13: #ba8baf */
/* *.color14: #86c1b9 */
/* *.color15: #f8f8f8 */
/* !! solarized */
/* *.color0: #073642 */
/* *.color1: #dc322f */
/* *.color2: #859900 */
/* *.color3: #b58900 */
/* *.color4: #268bd2 */
/* *.color5: #d33682 */
/* *.color6: #2aa198 */
/* *.color7: #eee8d5 */
/* *.color9: #cb4b16 */
/* *.color8: #fdf6e3 */
/* *.color10: #586e75 */
/* *.color11: #657b83 */
/* *.color12: #839496 */
/* *.color13: #6c71c4 */
/* *.color14: #93a1a1 */
/* *.color15: #fdf6e3 */
/* !! xterm */
/* *.color0: #000000 */
/* *.color1: #cd0000 */
/* *.color2: #00cd00 */
/* *.color3: #cdcd00 */
/* *.color4: #0000cd */
/* *.color5: #cd00cd */
/* *.color6: #00cdcd */
/* *.color7: #e5e5e5 */
/* *.color8: #4d4d4d */
/* *.color9: #ff0000 */
/* *.color10: #00ff00 */
/* *.color11: #ffff00 */
/* *.color12: #0000ff */
/* *.color13: #ff00ff */
/* *.color14: #00ffff */
/* *.color15: #aabac8 */
/* *.background: #000000 */
/* ! Dracula Xresources palette */
/* *.foreground: #F8F8F2 */
/* *.background: #282A36 */
/* *.color0: #000000 */
/* *.color8: #4D4D4D */
/* *.color1: #FF5555 */
/* *.color9: #FF6E67 */
/* *.color2: #50FA7B */
/* *.color10: #5AF78E */
/* *.color3: #F1FA8C */
/* *.color11: #F4F99D */
/* *.color4: #BD93F9 */
/* *.color12: #CAA9FA */
/* *.color5: #FF79C6 */
/* *.color13: #FF92D0 */
/* *.color6: #8BE9FD */
/* *.color14: #9AEDFE */
/* *.color7: #BFBFBF */
/* *.color15: #E6E6E6 */
/* *.background: .color0 */
/* *.color256: 0#1d2021 */
/* *.color257: 15#ebdbb2 */

40
.config/bspwm/bspwm/bspwmrc Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
# If refreshing bspwm, remove all previous rules to prevent doubling up.
bspc rule -r "*"
xsetroot -cursor_name left_ptr
# We look for a non-laptop monitor to use for default, but use the laptop
# screen (LVDS) if there's nothing else. This is because I assume that if you
# have an extra screen attached to a laptop, you want to use that.
mainmonitor="$(bspc query --monitors --names | grep -v LVDS | head -n 1)"
# if ! echo "$mainmonitor" | grep LVDS >/dev/null 2>&1; then
# xrandr --output "$mainmonitor" --auto --output LVDS1 --off
# else
# mainmonitor="LVDS1"
# xrandr --output LVDS1 --auto
# fi
# Start workspaces on the main monitor.
bspc monitor $mainmonitor -d 1 2 3 4 5 6 7 8 9 10
bspc desktop -f 1
# If you want a multi-monitor display or something else, I leave that to you to
# arrange. I have this sensible default for most people's use cases.
bspc config border_width 3
bspc config window_gap 15
bspc config top_padding 24 # top_padding I set equal to polybar's height
bspc config focus_follows_pointer true
bspc rule -a Zathura state=tiled
dropdownname="dropdown"
bspc query -N -n .hidden >/dev/null || setsid $TERMINAL -n "$dropdownname" -e dropdown >/dev/null 2>&1 &
bspc rule -a St:$dropdownname hidden=on
bspc rule -a St:$dropdownname sticky=on
bspc rule -a St:$dropdownname state=floating
bspc config external_rules_command "$(which floaters)"

View File

@ -1,30 +1,37 @@
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer><family>Source Code Pro</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Source Code Pro</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>Source Code Pro</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Source Code Pro</family></prefer>
</alias>
<!-- This sets Symbola as the final fallback font for the monospace font family. -->
<match target="pattern">
<test name="family"><string>monospace</string></test>
<edit name="family" mode="append"><string>Symbola</string></edit>
</match>
<alias>
<family>serif</family>
<prefer>
<family>Linux Libertine</family>
<family>Joy Pixels</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Linux Biolinum</family>
<family>Joy Pixels</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>sans</family>
<prefer>
<family>Linux Biolinum</family>
<family>Joy Pixels</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Liberation Mono</family>
<family>Inconsolata</family>
<family>Joy Pixels</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
</fontconfig>

View File

@ -1,7 +1,7 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/luke/.gtkrc-2.0.mine"
include "~/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Gruvbox"
gtk-icon-theme-name="Adwaita"
gtk-font-name="Sans 10"

View File

@ -18,6 +18,11 @@ set $mod Mod4
set $netrefresh --no-startup-id sudo -A systemctl restart NetworkManager
set $stoprec --no-startup-id dmenurecord kill
# #---Gaps---# #
for_window [class="^.*"] border pixel 2
gaps inner $inner_gaps
gaps outer $outer_gaps
# #---Dropdown Windows---# #
# General dropdown window traits. The order can matter.
for_window [instance="dropdown_*"] floating enable

View File

@ -70,5 +70,5 @@ map <c-r> reload
map <enter> shell
map x $$f
map X !$f
map o &mimeopen $f
map O $mimeopen --ask $f
map o &mimeopen "$f"
map O $mimeopen --ask "$f"

View File

@ -1,15 +1,22 @@
[Default Applications]
# xdg-open will use these settings to determine how to open filetypes.
# These .desktop entries can also be seen and changed in ~/.local/share/applications/
text/x-shellscript=text.desktop;
x-scheme-handler/magnet=torrent.desktop;
application/x-bittorrent=torrent.desktop;
x-scheme-handler/mailto=mail.desktop;
text/plain=text.desktop;
text/x-shellscript=text.desktop;
application/postscript=pdf.desktop;
application/pdf=pdf.desktop;
image/png=img.desktop;
image/jpeg=img.desktop;
image/gif=img.desktop;
application/rss+xml=rss.desktop
video/x-matroska=video.desktop
x-scheme-handler/lbry=lbry.desktop
inode/directory=file.desktop
[Added Associations]
text/plain=code-oss.desktop;

28
.config/wal/postrun Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
source "${HOME}/.cache/wal/colors.sh"
mkdir -p "${HOME}/.config/dunst"
mkdir -p "${HOME}/.config/zathura"
ln -sf "${HOME}/.cache/wal/dunstrc" "${HOME}/.config/dunst/dunstrc"
ln -sf "${HOME}/.cache/wal/zathurarc" "${HOME}/.config/zathura/zathurarc"
fix_sequences() {
e=$'\e'
sequences=$(cat)
foreground_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]10[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
background_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]11[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
cursor_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]12[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
for term in /dev/pts/{0..9}*
do
echo -e "\e]4;256;${cursor_color}\a\c" > "${term}" 2>/dev/null
echo -e "\e]4;258;${background_color}\a\c" > "${term}" 2>/dev/null
echo -e "\e]4;259;${foreground_color}\a\c" > "${term}" 2>/dev/null
done
}
fix_sequences <"${HOME}/.cache/wal/sequences"
pkill dunst
dunst &

View File

@ -0,0 +1,152 @@
[global]
monitor = 0
follow = keyboard
geometry = "350x5-0+24"
indicate_hidden = yes
shrink = yes
transparency = 20
notification_height = 0
separator_height = 2
padding = 0
horizontal_padding = 8
frame_width = 3
frame_color = "{color4}"
# 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
idle_threshold = 120
font = Monospace 14
line_height = 0
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 = left
show_age_threshold = 60
word_wrap = yes
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = true
show_indicators = yes
icon_position = left
max_icon_size = 40
#icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Adwaita/256x256/status/
sticky_history = yes
history_length = 20
dmenu = /usr/bin/dmenu -p dunst:
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
title = Dunst
class = Dunst
startup_notification = false
force_xinerama = false
[experimental]
per_monitor_dpi = false
[shortcuts]
close = ctrl+space
close_all = ctrl+shift+space
history = ctrl+grave
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 = "{background}"
foreground = "{foreground}"
timeout = 5
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "{background}"
foreground = "{foreground}"
timeout = 5
[urgency_critical]
background = "{background}"
foreground = "{foreground}"
frame_color = "#fabd2f"
timeout = 0
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = 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
#
# vim: ft=cfg

View File

@ -0,0 +1,33 @@
set statusbar-h-padding 0
set statusbar-v-padding 0
set page-padding 1
map u scroll half-up
map d scroll half-down
map D toggle_page_mode
map r reload
map R rotate
map K zoom in
map J zoom out
map i recolor
map p print
set default-bg "{background}"
set default-fg "{foreground}"
set statusbar-bg "{background}"
set statusbar-fg "{foreground}"
set inputbar-bg "{background}"
set inputbar-fg "{foreground}"
set notification-bg "{background}"
set notification-fg "{foreground}"
set notification-error-bg "{background}"
set notification-error-fg "{foreground}"
set notification-warning-bg "{background}"
set notification-warning-fg "{foreground}"
set highlight-color "{color3}"
set highlight-active-color "{color4}"
set completion-bg "{color3}"
set completion-fg "{color4}"
set completion-highlight-bg "{color3}"
set completion-highlight-fg "{color4}"
set recolor-lightcolor "{background}"
set recolor-darkcolor "{foreground}"

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# This script will compile or run another finishing operation on a document. I
# have this script run via vim.

View File

@ -8,4 +8,4 @@ When you add them as cronjobs, I recommend you precede the command with commands
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus; export DISPLAY=:0; . $HOME/.zprofile; then_command_goes_here
```
This ensures that notifications will display, xdotool commands will function and environmental varialbes will work as well.
This ensures that notifications will display, xdotool commands will function and environmental variables will work as well.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Syncs repositories and downloads updates, meant to be run as a cronjob.
ping -q -c 1 1.1.1.1 > /dev/null || exit

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Notify me with notify-send if my battery is below 25%.
# You can set this to run via cron.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Toggles all cronjobs off/on.
# Stores disabled crontabs in ~/.consaved until restored.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Set as a cron job to check for new RSS entries for newsboat.
# If newsboat is open, sends it an "R" key to refresh.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# A UI for detecting and selecting all displays. Probes xrandr for connected
# displays and lets user select one to use. User may also select "manual

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Feed this script a link and it will give dmenu
# some choice programs to use to open it.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Gives a dmenu prompt to mount unmounted drives and Android phones. If
# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# This script is the SUDO_ASKPASS variable, meaning that it will be used as a
# password prompt if needed.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Usage:
# `$0`: Ask for recording type via dmenu

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# A dmenu prompt to unmount drives.
# Provides you with mounted partitions, select one to unmount.
# Drives mounted at /, /boot and /home will not be options to unmount.

View File

@ -1,18 +1,18 @@
#!/usr/bin/env sh
#!/bin/sh
# The famous "get a menu of emojis to copy" script.
# Must have xclip installed to even show menu.
xclip -h >/dev/null || exit
xclip -h 2>/dev/null || exit 1
chosen=$(grep -v "#" ~/.local/share/larbs/emoji | dmenu -i -l 20 -fn Monospace-18)
chosen=$(cut -d ';' -f1 ~/.local/share/larbs/emoji | dmenu -i -l 20 | sed "s/ .*//")
[ "$chosen" != "" ] || exit
c=$(echo "$chosen" | sed "s/ .*//")
echo "$c" | tr -d '\n' | xclip -selection clipboard
notify-send "'$c' copied to clipboard." &
s=$(echo "$chosen" | sed "s/.*; //" | awk '{print $1}')
echo "$s" | tr -d '\n' | xclip
notify-send "'$s' copied to primary." &
# If you run this command with an argument, it will automatically insert the character.
if [ -n "$1" ]; then
xdotool key Shift+Insert
else
echo "$chosen" | tr -d '\n' | xclip -selection clipboard
notify-send "'$chosen' copied to clipboard." &
fi

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# A general, all-purpose extraction script. Not all extraction programs here
# are installed by LARBS automatically.
@ -24,7 +24,8 @@ fi
if [ -f "$archive" ] ; then
case "$archive" in
*.tar.bz2|*.tar.xz|*.tbz2) tar xvjf "$archive" ;;
*.tar.bz2|*.tbz2) tar xvjf "$archive" ;;
*.tar.xz) tar -xf "$archive" ;;
*.tar.gz|*.tgz) tar xvzf "$archive" ;;
*.lzma) unlzma "$archive" ;;
*.bz2) bunzip2 "$archive" ;;

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
cat ~/.local/share/larbs/getkeys/"$1" 2>/dev/null && exit
echo "Run command with one of the following arguments for info about that program:"
ls ~/.local/share/larbs/getkeys

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Toggle floating dropdown terminal in i3, or start if non-existing.
# $1 is the script run in the terminal.

View File

@ -1,2 +1,3 @@
#!/usr/bin/env sh
#!/bin/sh
ifinstalled bc && echo "Welcome to the Calculator." && bc -lq

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
[ -z "$1" ] && exit # If $1 is left, hovers in the bottom left, if right, the bottom right
current=$(xdotool getwindowfocus)
newwidth=$(($(xdotool getdisplaygeometry | awk '{print $2}') / 3))

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# This script was made by `goferito` on Github.
# Some cleanup by Luke.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# This is the script that i3 runs to either start tmux in
# the dropdown terminal or log into a previous session.
tmux a || tmux

View File

@ -0,0 +1,10 @@
#!/bin/sh
# Toggles the LARBS welcome message.
PIC="$HOME/.local/share/larbs/larbs.png"
grep LARBSWELCOME "$HOME/.xprofile" &&
( sed -i "/LARBSWELCOME/d" ~/.xprofile && notify-send -i "$PIC" "LARBS welcome message" "Welcome message disabled. Press Super+Shift+F1 again to reverse." ) ||
( echo "notify-send -i \"$PIC\" \"Welcome to LARBS\" \"Press super+F1 for the help menu.\" # LARBSWELCOME" >> ~/.xprofile &&
notify-send -i "$PIC" "LARBS welcome message" "Welcome message re-enabled." )

View File

@ -1,3 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# If $1 command is not available, error code and notify.
command -v "$1" >/dev/null || { notify-send "📦 $1" "must be installed for this function." && exit 1 ;}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Terminate already running bar instances
killall -q polybar

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Feed script a url or file location.
# If an image, it will view in sxiv,

27
.local/bin/lmc Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
NUM="${2:-5}"
# Uncomment the following line to use Pulseaudio.
# PULSE=true
if [ "$PULSE" ]; then
toggle() { pulsemixer --toggle-mute ;}
mute() { pulsemixer --mute ;}
up() { pulsemixer --change-volume +"$NUM" ;}
down() { pulsemixer --change-volume -"$NUM" ;}
else
toggle() { amixer sset Master toggle ;}
mute() { amixer sset Master mute ;}
up() { amixer sset Master "$NUM"%+ ;}
down() { amixer sset Master "$NUM"%- ;}
fi
case "$1" in
toggle) toggle ;;
mute) mute ;;
up) up ;;
down) down ;;
esac >/dev/null
pkill -RTMIN+10 "${STATUSBAR:?}" &

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# This is bound to Shift+PrintScreen by default, requires maim. It lets you
# choose the kind of screenshot to take, including copying the image or even

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# This loop will update the mpd statusbar module whenever a command changes the
# music player's status. mpd must be running on X's start for this to work.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# opout: "open output": A general handler for opening a file's intended output,
# usually the pdf of a compiled document. I find this useful especially
@ -7,8 +7,7 @@
basename="$(echo "$1" | sed 's/\.[^\/.]*$//')"
case "$1" in
*.tex|*.md|*.[rR]md|*.ms|*.me|*.mom) setsid "$READER" "$basename".pdf >/dev/null 2>&1 & ;;
*.[0-9]) setsid "$READER" "$basename".pdf >/dev/null 2>&1 & ;;
*.html) setsid $BROWSER "$basename".html >/dev/null 2>&1 & ;;
*.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid xdg-open "$basename".pdf >/dev/null 2>&1 & ;;
*.html) setsid "$BROWSER" "$basename".html >/dev/null 2>&1 & ;;
*.sent) setsid sent "$1" >/dev/null 2>&1 & ;;
esac

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# You might notice all mpv commands are aliased to have this input-ipc-server
# thing. That's just for this particular command, which allows us to pause

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# entr command to run `queueandnotify` when newsboat queue is changed
[ "$(pgrep -x $(basename $0) | wc -l)" -gt 2 ] && exit

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# A dmenu binary prompt script.
# Gives a dmenu prompt labeled with $1 to perform command $2.
# For example:

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# $1 is a url; $2 is a command
[ -z "$1" ] && exit
base="$(basename "$1")"

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# Podboat sucks. This script replaces it.
# It reads the newsboat queue, queuing downloads with taskspooler.
# It also removes the junk from extentions.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Refresh the dwmbar.
# Send SIGTRAP signal to dwmbar script, which will handle it with a trap.

View File

@ -1,5 +1,6 @@
#!/usr/bin/env sh
# This script is called by i3 on startup to remap keys.
#!/bin/sh
# This script is called on startup to remap keys.
# Increase key speed via a rate change
xset r rate 300 50
# Map the caps lock key to super...

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# When I open an image from the file manager in sxiv (the image viewer), I want
# to be able to press the next/previous keys to key through the rest of the

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
! echo "$1" | grep "https*://\S\+\.[A-Za-z]\+\S*" >/dev/null &&
notify-send "That doesn't look like a full URL." && exit
RSSFILE="$HOME/.config/newsboat/urls"

View File

@ -1,5 +1,8 @@
#!/usr/bin/env sh
#!/bin/sh
# Open a terminal window in the same directory as the currently active window.
PID=$(xprop -id "$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')" | grep -m 1 PID | cut -d " " -f 3)
PID=$(echo "$(pstree -lpA "$PID" | tail -n 1)" | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g')
cd "$(readlink /proc/"$PID"/cwd)"
PID="$(pstree -lpA "$PID" | tail -n 1 | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g')"
cd "$(readlink /proc/"$PID"/cwd)" || return 1
"$TERMINAL"

View File

@ -1,9 +1,12 @@
#!/usr/bin/env sh
#!/bin/sh
# In LARBS, ~/.config/wall.png is the location of the system wallpaper. This
# script, if given an argument, moves it there. This script without an
# argument sets ~/.config/wall.png as the wallpaper, which is required on login
# if you don't want a blakc screen.
# if you don't want a black screen.
#
# You may also give a directory name to select a random image from that
# directory as a wallpaper. Be careful that the directory only has images.
[ ! -z "$1" ] && cp "$1" ~/.config/assets/wallpaper.png && notify-send -i "$HOME/.config/assets/wallpaper.png" "Wallpaper changed."
xwallpaper --focus ~/.config/assets/wallpaper.png

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# Output locations. Unactivated progs should go to /dev/null.
shell_shortcuts="$HOME/.config/shortcutrc"

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Display contents of selection via dunst if running.
# Separate script for i3.

17
.local/bin/statusbar/moonphase Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
mnphs=$(pom $1 | grep -o 'New\|Waxing Crescent\|First Quarter\|Waxing Gibbous\|Full\|Waning Gibbous\|Last Quarter\|Waning Crescent' | grep -m1 '.')
prcnt=$(pom $1 | grep -o '[[:digit:]]*%')
case "$mnphs" in
"New") icon="🌑" prcnt="0%" ;;
"Waxing Crescent") icon="🌒" ;;
"First Quarter") icon="🌓" prcnt="50%" ;;
"Waxing Gibbous") icon="🌔" ;;
"Full") icon="🌕" prcnt="100%" ;;
"Waning Gibbous") icon="🌖" ;;
"Last Quarter") icon="🌗" prcnt="50%" ;;
"Waning Crescent") icon="🌘" ;;
*) echo errorrrr ;;
esac
printf "%s %s\\n" "$icon" "$prcnt"

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
# If transmission-daemon is running, will ask to kill, else will ask to start.
if pgrep -x transmission-da >/dev/null ;
then

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Clears the build files of a LaTeX/XeLaTeX build.
# I have vim run this file whenever I exit a .tex file.

View File

@ -1,6 +1,7 @@
#!/usr/bin/env sh
ifinstalled transmission-remote-cli transmission-cli || exit
#!/bin/sh
ifinstalled tremc transmission-cli || exit
! pgrep -x transmission-da >/dev/null && transmission-daemon && notify-send "Starting torrent daemon..." && sleep 3 && pkill -RTMIN+7 "${STATUSBAR:?}"
$TERMINAL -e transmission-remote-cli
$TERMINAL -e tremc

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# Mimeapp script for adding torrent to transmission-daemon, but will also start the daemon first if not running.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh
#!/bin/sh
#original artwork by http://www.sanderfocus.nl/#/portfolio/tech-heroes
#converted to shell by #nixers @ irc.unix.chat
@ -22,4 +23,4 @@ cat << 'eof'
/ / %%%%%%;, \%%l%%;// _/%;, dmr
/ %%%;, <;\-=-/ /
;, l
eof
eof

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=File Manager
Exec=/usr/local/bin/st -e lf %u

View File

@ -8,7 +8,7 @@
.DOCTYPE DEFAULT
.COPYSTYLE FINAL
.PRINTSTYLE TYPESET
.PT_SIZE 10
.PT_SIZE 12
.START
Use vim keys (\f(CWh/j/k/l\fP) to navigate this document.
Pressing \f(CWs\fP will fit it to window width (\f(CWa\fP to revert).
@ -16,7 +16,7 @@ Pressing \f(CWs\fP will fit it to window width (\f(CWa\fP to revert).
\f(CWSuper+f\fP to toggle fullscreen.
\f(CWf\fP will highlight links to follow which are selectable by typing the number that appears plus \f(CWEnter\fP.
\f(CWq\fP to quit.
(These are general shortcuts of \f(CWzathura\fP, the pdf reader.)
(These are general binds set for \fBzathura\fP, the pdf reader.)
.LI
.ITEM
\f(CWMod+F1\fP will show this document at any time.
@ -24,20 +24,6 @@ Pressing \f(CWs\fP will fit it to window width (\f(CWa\fP to revert).
By \f(CWMod\fP I mean the Super Key, usually known as "the Windows Key."
.LIST OFF
.PP
Questions or suggestions? Email me at
.PDF_WWW_LINK "mailto:luke@lukesmith.xyz" "luke@lukesmith.xyz"
.LI
.ITEM
LARBS website:
.PDF_WWW_LINK "https://larbs.xyz"
.ITEM
My website:
.PDF_WWW_LINK "https://lukesmith.xyz"
.ITEM
Donate:
.PDF_WWW_LINK "https://lukesmith.xyz/donate" "https://lukesmith.xyz/donate"
(It makes a difference!)
.LIST OFF
FAQs are at the end of this document.
.HEADING 1 "Welcome!"
.HEADING 2 "Basic goals and principles of this system:"
@ -71,7 +57,8 @@ but you can also hold it down and it will act as another Windows/super/mod key.
The menu button (usually between the right Alt and Ctrl) is an alternative Super/Mod button.
This is to make one-handing on laptops easier.
.LIST OFF
If you'd like to change any of these keyboard changes, you need only open and change \f(CW~/.xprofile\fP.
If you'd like to change any of these keyboard changes, you need only open and change the \f(CWremaps\fP script.
All custom scripts in LARBS are located in \f(CW~/.local/bin/\fP.
Actually, this should go without saying, but \fIeverything\fP here can easily be changed.
Below in this document, there is information about where to change programs/components.
.PP
@ -80,23 +67,18 @@ If you want to learn more of this, run \f(CWMod+Shift+E\fP and type and select t
This setting can be changed if you don't like it by deleting or commenting out the contents of \f(CW~/.config/inputrc\fP.
.HEADING 2 "The Status Bar"
.PP
If you're new to dwm, notice the status bar on the top of the screen.
To the left side, you'll see the numbers of your current workspace/tag(s).
On the right side, you'll see various system status notifiers, the date, volume, even music and local weather if possible, etc.
To the left, you'll see the numbers of your current workspace/tag(s).
On the right, you'll see various system status notifiers, the date, volume, even music and local weather if possible, etc.
Each module on the right of the status bar is a script located in \f(CW~/.local/bin/statusbar/\fP.
You can see what they do and modify them from there.
I'm sure you can figure it out.
The script that sets the bar is \f(CW~/.local/bin/dwmbar\fP.
You can read the specifics there or change it if you want.
If you edit and save changes to that file in vim, vim will automatically kill and update it.
.PP
In i3, the program i3blocks controls what modules appear in the statusbar; its config file is in \f(CW~/.config/i3blocks/config\fP.
.HEADING 2 "Deeper Tutorials"
.PP
Press \f(CWmod+shift+e\fP at any time to get a menu of programs to watch videos about streaming directly from YouTube.
You can also check the config files for programs which detail a lot of the specific bindings.
.HEADING 1 "Key Bindings"
.PP
First, the key bindings.
Key bindings are stored in two places.
The file \f(CW~/.config/sxhkd/sxhkdrc\fP contains most of them, which you can see and edit there if you like.
dwm-specific binds are compiled into dwm itself, but can be found in \f(CW~/repos/dwm/config.h\fP. You'll have to recompile dwm to change them.
.HEADING 2 "Window basics"
.PP
Notice the case sensitivity of the shortcuts\c
@ -108,9 +90,7 @@ To type capital letters, hold down the \f(CWShift\fP key\(emthat might sound lik
.ITEM
\f(CWMod+Enter\fP \(en Spawn terminal (the default terminal is \f(CWst\fP; run \f(CWman st\fP for more.)
.ITEM
\f(CWMod+q\fP \(en Close window
.ITEM
\f(CWMod+Q\fP \(en Force close window
\f(CWMod+q\fP \(en Close window (Hold down shift to force kill.)
.ITEM
\f(CWMod+d\fP \(en dmenu (For running commands or programs without shortcuts)
.ITEM
@ -139,19 +119,6 @@ To type capital letters, hold down the \f(CWShift\fP key\(emthat might sound lik
.ITEM
\f(CWMod+N\fP \(en Same as above, but for the bottom right corner.
.LIST OFF
.HEADING 2 "Window layouts"
.LI
.ITEM
\f(CWMod+t\fP \(en Tiling mode (active by default)
.ITEM
\f(CWMod+f\fP \(en Monocle mode (cycle through windows fullscreen)
.ITEM
\f(CWMod+y\fP \(en Fibbonacci mode (similar to tiling mode)
.ITEM
\f(CWMod+u\fP \(en Center the master window
.ITEM
\f(CWMod+o\fP \(en Center and float the master window
.LIST OFF
.HEADING 2 "Basic Programs"
.PP
\fINote:\fP LARBS will install nearly all of these programs by default, but some only come if you chose an extra option.
@ -160,23 +127,23 @@ Naturally, you can use \f(CWyay\fP to look for and install any you want to add.
.ITEM
\f(CWMod+r\fP \(en lf (file browser/manager)
.ITEM
\f(CWMod+e\fP \(en mutt (email; not installed by default, see below)
\f(CWMod+e\fP \(en neomutt (email) \(en Must be first configured by running \f(CWmw add\fP.
.ITEM
\f(CWMod+m\fP \(en ncmpcpp (music player)
.ITEM
\f(CWMod+w\fP \(en nmtui (for connecting to wireless internet)
.ITEM
\f(CWMod+a\fP \(en Dropdown calculator (hide with \f(CWmod+a\fP)
.ITEM
\f(CWMod+a\fP \(en htop (system info)
\f(CWMod+i\fP \(en htop (system info)
.ITEM
\f(CWMod+n\fP \(en newsboat (RSS feed reader)
.ITEM
\f(CWMod+A\fP \(en alsa (audio system control)
.ITEM
\f(CWMod+W\fP \(en Web Browser (Brave)
\f(CWMod+w\fP \(en Web Browser (Brave)
.ITEM
\f(CWMod+G\fP \(en GIMP (for general image manipulation)
\f(CWMod+W\fP \(en nmtui (for connecting to wireless internet)
.ITEM
\f(CWMod+G\fP \(en GIMP (for general image manipulation) \(en Not installed by default.
.LIST OFF
.HEADING 2 "System"
.LI
@ -187,13 +154,13 @@ Naturally, you can use \f(CWyay\fP to look for and install any you want to add.
.ITEM
\f(CWMod+Shift+Backspace\fP \(en reboot (will ask to confirm)
.ITEM
\f(CWMod+Shift+Escape\fP \(en exit the graphical environment (will ask to confirm)
\f(CWMod+Shift+Escape\fP \(en log out of the graphical environment (will ask to confirm)
.ITEM
\f(CWMod+F1\fP \(en Shows this document
.ITEM
\f(CWMod+Shift+F1\fP \(en Toggle the LARBS welcome message
.ITEM
\f(CWMod+F2\fP \(en Refresh dwm
\f(CWMod+F2\fP \(en Refresh/reload i3
.ITEM
\f(CWMod+F3\fP \(en Select screen/display to use
.ITEM
@ -244,16 +211,16 @@ I use ncmpcpp as a music player, which is a front end for mpd.
.ITEM
\f(CWMod+A\fP \(en alsamixer (general volume sink/source control)
.LIST OFF
.HEADING 2 "Tags/Workspaces"
.HEADING 2 "Workspaces"
.PP
There are nine tags, active tags are highlighted in the top left.
There are ten workspaces, active workspaces are highlighted in the top left.
.LI
.ITEM
\f(CWMod+(Number)\fP \(en Go to that number tag
\f(CWMod+(Number)\fP \(en Go to that number workspace
.ITEM
\f(CWMod+Shift+(Number)\fP \(en Send window to that tag
\f(CWMod+Shift+(Number)\fP \(en Send window to that workspace
.ITEM
\f(CWMod+Tab\fP \(en Go to previous tag
\f(CWMod+Tab\fP \(en Go to previous workspace (may also use \f(CW\\\fP for Tab)
.ITEM
\f(CWMod+g\fP \(en Go to left workspace
.ITEM
@ -274,9 +241,9 @@ previous recordings as their names are based on their exact times.
.ITEM
\f(CWMod+Delete\fP \(en Kills any recording started in the above way.
.ITEM
\f(CWMod+ScrollLock\fP \(en Turn on and off screenkey (if installed) for visual typing display
.ITEM
\f(CWMod+Shift+c\fP \(en Toggles a webcam in the bottom right for screencasting.
.ITEM
\f(CWMod+ScrollLock\fP \(en Toggle screenkey (if installed) to show keypresses
.LIST OFF
.HEADING 2 "Other buttons"
.PP
@ -285,17 +252,11 @@ buttons, screen brightness, email, web browsing buttons, etc.) to what you
would expect.
.HEADING 1 "Configuration"
.PP
Here's a brief reference as to what program does what and where you can modify them.
Some of the programs marked as "suckless" programs must be recompiled after being reconfigured.
That means you should go to their directory in \f(CW~/repos/\fP and run \f(CWmake && sudo make install\fP after making changes.
.LI
.ITEM
dwm: the window manager itself \(en \f(CW~/repos/dwm/\fP (suckless)
.ITEM
sxhkd: key bindings \(en \f(CW~/.config/sxhkd/sxhkdrc\fP, while some dwm-related commands are configured in dwm, the rest, most of them, are set by sxhkd.
.ITEM
lf: the file manager, \f(CW~/.config/lfrc\fP for the main config, \f(CW~/.config/scope\fP for file previews.
.LIST OFF
Dotfiles/settings files are located in \f(CW~/.config/\fP, note that dotfiles to programs not included in LARBS are there as well by requests of users. I do not necessarily maintain all these dotfiles, but they remain as legacy.
.PP
Suckless programs, st (the terminal) and dmenu among others do not have traditional config files, but have their source code location in \f(CW~/.local/src/\fP.
There you can modify their \f(CWconfig.h\fP files, then \f(CWsudo make install\fP to reinstall.
(You'll have to restart the program to see its effects obviously.)
.HEADING 1 "Frequently Asked Questions (FAQs)"
.HEADING 2 "My keyboard isn't working as expected!"
.PP
@ -305,7 +266,7 @@ These settings may override your preferred settings, so you should open this fil
.PP
On fresh install, the Linux audio system (ALSA) often mutes outputs.
You may want to unbind
You may also need to set your preferred default output sink which you can do by the command line, or by selecting one with \f(CWpulsemixer\fP (\f(CWmod+A\fP).
You may also need to set your preferred default output sink which you can do by the command line, or by selecting one with \f(CWalsamixer\fP (\f(CWmod+A\fP).
If you have a more complex audio setup and can't be bothered to figure out ALSA, you might want to install and enable PulseAudio, which general "just werks".
.HEADING 2 "How do I copy and paste?"
@ -314,7 +275,7 @@ Copying and pasting is always program-specific on any system.
In most graphical programs, copy and paste will be the same as they are on Windows: \f(CWctrl-c\fP and \f(CWctrl-v\fP.
In the Linux terminal, those binds have other more important purposes, so you can run \f(CWman st\fP to see how to copy and paste in my terminal build.
.PP
Additionally, I've set vim to use the clipboard as the default buffer, which means when you copy or delete something in vim, it will be in your system clipboard as well, so you can \f(CWctrl-v\fP it into your Firefox instance, etc. You can also paste material copied from other programs into vim with the typical vim bindings.
Additionally, I've set vim to use the clipboard as the default buffer, which means when you copy or delete something in vim, it will be in your system clipboard as well, so you can \f(CWctrl-v\fP it into your browser instance, etc. You can also paste material copied from other programs into vim with the typical vim bindings.
.HEADING 2 "How do I change the background/wallpaper?"
.PP
The system will always read the file \f(CW~/.config/wall.png\fP as the wallpaper.

View File

@ -37,6 +37,7 @@ bind-key -n C-left prev
bind-key -n C-right next
bind-key -n C-down next
set-window-option -g window-status-current-style bg=red
bind C-c new-window
bind C-j previous-window
bind C-k next-window
#bind-key C-a last-window # C-a C-a for last active window

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# xinitrc runs automatically when you run startx.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/sh
# This file runs when a DM logs you into a graphical session.
# If you use startx/xinit like a Chad, this file will also be sourced.