relocate
This commit is contained in:
parent
2e08513f72
commit
2a244b46ff
@ -1,81 +0,0 @@
|
||||
#define AMBER #FFBD00
|
||||
#define BLACK #000000
|
||||
#define PINK #FFDBDB
|
||||
#define WHITE #FFFFFF
|
||||
|
||||
#define FOREGROUND PINK
|
||||
#define BACKGROUND BLACK
|
||||
|
||||
! unscii font
|
||||
*faceName: unscii:antialias=false
|
||||
*faceSize: 12
|
||||
|
||||
*cursorColor: FOREGROUND
|
||||
*Foreground: FOREGROUND
|
||||
*Background: BACKGROUND
|
||||
|
||||
! xterm specific stuff
|
||||
xterm*loginshell: true
|
||||
xterm*locale: UTF-8
|
||||
xterm*titleModes: 16
|
||||
xterm*metaSendsEscape: true
|
||||
xterm*utf8: 1
|
||||
xterm*utf8Fonts: 1
|
||||
xterm*utf8Title: true
|
||||
|
||||
! I used to use these but they make it really hard to see default Lynx.
|
||||
|
||||
! "quantified colors" but every nybble
|
||||
! is decremented ======================
|
||||
! black/dark-gray
|
||||
!*.color0: #000000
|
||||
!*.color8: #343434
|
||||
! red/orange
|
||||
!*.color1: #DE9591
|
||||
!*.color9: #D09E74
|
||||
! green/aquamarine
|
||||
!*.color2: #70B880
|
||||
!*.color10: #49BB9E
|
||||
! amber/yellow
|
||||
!*.color3: #958350
|
||||
!*.color11: #B7B763
|
||||
! blue/violet
|
||||
!*.color4: #92A7DE
|
||||
!*.color12: #BB9BDC
|
||||
! magenta/rose
|
||||
!*.color5: #D592CB
|
||||
!*.color13: #E190B1
|
||||
! cyan/azure
|
||||
!*.color6: #40B9BC
|
||||
!*.color14: #63B2D3
|
||||
! gray/white
|
||||
!*.color7: #707070
|
||||
!*.color15: #B0B0B0
|
||||
! =====================================
|
||||
|
||||
! "quantified colors" =================
|
||||
! black/dark-gray
|
||||
!*.color0: #101010
|
||||
!*.color8: #454545
|
||||
! red/orange
|
||||
!*.color1: #EFA6A2
|
||||
!*.color9: #E0AF85
|
||||
! green/aquamarine
|
||||
!*.color2: #80C990
|
||||
!*.color10: #5ACCAF
|
||||
! amber/yellow
|
||||
!*.color3: #A69460
|
||||
!*.color11: #C8C874
|
||||
! blue/violet
|
||||
!*.color4: #A3B8EF
|
||||
!*.color12: #CCACED
|
||||
! magenta/rose
|
||||
!*.color5: #E6A3DC
|
||||
!*.color13: #F2A1C2
|
||||
! cyan/azure
|
||||
!*.color6: #50CACD
|
||||
!*.color14: #74C3E4
|
||||
! gray/white
|
||||
!*.color7: #808080
|
||||
!*.color15: #C0C0C0
|
||||
! =====================================
|
@ -1,46 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# audio drive
|
||||
#alias audio="sudo mount -L 'AUDIO' /mnt/audio"
|
||||
|
||||
alias awk="nawk"
|
||||
alias b="$BROWSER"
|
||||
alias cls="clear"
|
||||
alias cp="cp -iv"
|
||||
alias doas="$SUDO"
|
||||
alias e="$EDITOR"
|
||||
alias ipconfig="ifconfig"
|
||||
#alias ls="9 ls"
|
||||
alias ls="ls -1A"
|
||||
alias mpv="LIBGL_ALWAYS_SOFTWARE=1 mpv --vo=x11"
|
||||
alias mullvad="curl https://am.i.mullvad.net/connected"
|
||||
alias mv="mv -iv"
|
||||
alias p="ping 1.1.1.1"
|
||||
|
||||
# media hard drive
|
||||
alias partone="sudo mount -L 'PARTONE' /mnt/partone"
|
||||
alias prat="$HOME/src/packrat/prat"
|
||||
|
||||
pyenv() {
|
||||
eq $# 0 \
|
||||
&& . ./bin/activate \
|
||||
|| . $1/bin/activate
|
||||
}
|
||||
|
||||
alias sensors="watch sensors"
|
||||
alias sudo="$SUDO"
|
||||
|
||||
# Wacom Intuos 2
|
||||
#alias taboff="xsetwacom set 'Wacom Intuos2 6x8 Pen stylus' MapToOutput LVDS-1"
|
||||
#alias tabon="xsetwacom set 'Wacom Intuos2 6x8 Pen stylus' MapToOutput VGA-1"
|
||||
|
||||
alias units="units --history /dev/null"
|
||||
alias v="$VISUAL"
|
||||
alias weather="curl wttr.in/lewiston+maine?m"
|
||||
|
||||
webm() {
|
||||
ffmpeg -i $1 -c:v libvpx -b:v 1M -c:a libvorbis "$(printf "%b" "$1" | awk -F '.' '{print $1}')".webm
|
||||
}
|
||||
|
||||
alias y=youtube-dl
|
||||
alias yay="paru"
|
@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
bspc config active_border_color '#FFCACA'
|
||||
bspc config focus_follows_pointer true
|
||||
bspc config focused_border_color '#FFFFFF'
|
||||
bspc config normal_border_color '#FFDBDB'
|
||||
bspc config window_gap 0
|
||||
bspc monitor -d 1 2 3 4 5 6 7 8 9 10
|
||||
bspc rule -a XClock manage=off # thanks emanuele6
|
||||
bspc rule -a xload manage=off
|
||||
xdo lower -NXClock
|
||||
xdo lower -Nxload
|
||||
data | lemonbar -bf '-*-unscii-*-*-*-*-*-*-*-*-*-*-*-*' -F '#FFDBDB'
|
@ -1,22 +0,0 @@
|
||||
set -x
|
||||
# load X default stuff
|
||||
! [ -e $HOME/.Xresources ] \
|
||||
|| xrdb -load $HOME/.Xresources
|
||||
# wallpaper
|
||||
WALLPAPER="$HOME/Pictures/Wallpapers/nosebleed.jpg"
|
||||
! [ -e "$WALLPAPER" ] \
|
||||
|| feh --bg-center "$WALLPAPER"
|
||||
# internal display
|
||||
xrandr \
|
||||
--output "$(xrandr | grep ' connected ' | awk '{print $1}' | grep LVDS)" \
|
||||
--mode 1280x800 --rate 60.00
|
||||
# VGA monitor
|
||||
if xrandr | grep " connected " | awk '{ print$1 }' | grep "VGA" >/dev/null 2>&1; then
|
||||
! [ "$MONITOR" = "MV720" ] \
|
||||
|| xrandr \
|
||||
--output "$(xrandr | grep ' connected ' | awk '{print $1}' | grep VGA)" \
|
||||
--above "$(xrandr | grep ' connected ' | awk '{print $1}' | grep LVDS)" \
|
||||
--mode 1024x768 --rate 85.00
|
||||
fi
|
||||
# keybind manager
|
||||
pgrep -x sxhkd >/dev/null || sxhkd &
|
@ -1 +0,0 @@
|
||||
exec bspwm
|
@ -1,3 +0,0 @@
|
||||
. "$DISPLAYM_CONFIG/merge_xinitrc.sh"
|
||||
. "$DISPLAYM_CONFIG/merge_sxhkdrc.sh"
|
||||
startx
|
@ -1,22 +0,0 @@
|
||||
# thanks weedsmokingjew
|
||||
|
||||
mod1 + {_,shift + }F4
|
||||
bspc node -{c,k}
|
||||
|
||||
mod1 + {_,shift + }{1-4,q,w,e,r,a,s}
|
||||
bspc {desktop -f,node -d} '^{1-4,5,6,7,8,9,10}'
|
||||
|
||||
mod1 + shift + e
|
||||
[ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit? This will end your X session.") ] && bspc quit
|
||||
|
||||
mod1 + f
|
||||
bspc node -t '~fullscreen'
|
||||
|
||||
mod1 + {h,j,k,l}
|
||||
bspc node -f {west,south,north,east}
|
||||
|
||||
mod1 + shift + {h,j,k,l}
|
||||
bspc node -s {west,south,north,east}
|
||||
|
||||
mod1 + shift + r
|
||||
bspc wm -r && pkill -USR1 -x sxhkd
|
@ -1,7 +0,0 @@
|
||||
# xclock
|
||||
xclock -geometry 180x180-10+10 -update 1 &
|
||||
# xload
|
||||
xload -geometry 180x180-10+200 -update 1 &
|
||||
# bar
|
||||
data | lemonbar -bf '-*-unscii-*-*-*-*-*-*-*-*-*-*-*-*' -F '#FFDBDB' &
|
||||
exec ctwm
|
@ -1,3 +0,0 @@
|
||||
. "$DISPLAYM_CONFIG/merge_xinitrc.sh"
|
||||
. "$DISPLAYM_CONFIG/default_sxhkdrc.sh"
|
||||
startx
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
cp "$DISPLAYM_CONFIG/sxhkdrc" "$HOME/.config/sxhkd/sxhkdrc"
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
cp "$DISPLAYM_CONFIG/.xinitrc" "$HOME/.xinitrc"
|
@ -1 +0,0 @@
|
||||
exec i3
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$DISPLAYM_CONFIG/merge_xinitrc.sh"
|
||||
. "$DISPLAYM_CONFIG/merge_sxhkdrc.sh"
|
@ -1,27 +0,0 @@
|
||||
mod1 + F4
|
||||
i3-msg kill
|
||||
|
||||
mod1 + {h,j,k,l}
|
||||
i3-msg focus {left,down,up,right}
|
||||
|
||||
mod1 + f
|
||||
i3-msg fullscreen toggle
|
||||
mod1 + F11
|
||||
i3-msg fullscreen toggle
|
||||
|
||||
mod1 + {s,w}
|
||||
i3-msg layout {stacking,tabbed}
|
||||
mod1 + e
|
||||
i3-msg layout toggle split
|
||||
|
||||
mod1 + space
|
||||
i3-msg focus mode_toggle
|
||||
|
||||
mod1 + shift + space
|
||||
i3-msg floating toggle
|
||||
|
||||
mod1 + shift + {h,j,k,l}
|
||||
i3-msg move {left,down,up,right}
|
||||
|
||||
mod1 + shift + e
|
||||
[ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit? This will end your X session.") ] && i3-msg exit
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
cat "$DISPLAYM_CONFIG/sxhkdrc" "$DISPLAYM_CONFIG/$WM/sxhkdrc" \
|
||||
>"$HOME/.config/sxhkd/sxhkdrc"
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
cat "$DISPLAYM_CONFIG/.xinitrc" "$DISPLAYM_CONFIG/$WM/.xinitrc" >"$HOME/.xinitrc"
|
@ -1,50 +0,0 @@
|
||||
XF86AudioMute
|
||||
volume m
|
||||
XF86Audio{Lower,Raise}Volume
|
||||
volume r {-5,5}
|
||||
XF86Launch1
|
||||
$TERMINAL
|
||||
|
||||
XF86TaskPane
|
||||
rotate LVDS1
|
||||
|
||||
control + shift + Escape
|
||||
$TERMINAL -e htop
|
||||
Print
|
||||
scrot
|
||||
|
||||
mod1 + {9,0}
|
||||
volume r {-5,5}
|
||||
# cred 4 https://github.com/patrickbolle/dotfiles/
|
||||
mod1 + equal
|
||||
light -A 5
|
||||
mod1 + shift + equal
|
||||
light -A 1
|
||||
mod1 + minus
|
||||
light -U 5
|
||||
mod1 + shift + minus
|
||||
light -U 1
|
||||
|
||||
mod1 + shift + r
|
||||
pkill -USR1 sxhkd
|
||||
|
||||
mod1 + t
|
||||
dmenu="dmenu -fn unscii -nb '#000' -nf '#FFDBDB' -sb '#FFDBDB' -sf '#000'" autotranslate
|
||||
|
||||
mod1 + shift + i
|
||||
pkill dmenubar
|
||||
|
||||
mod1 + d
|
||||
dmenu_run -fn unscii -nb '#000' -nf '#FFDBDB' -p '$' -sb '#FFDBDB' -sf '#000'
|
||||
|
||||
mod1 + Return
|
||||
$TERMINAL
|
||||
|
||||
mod1 + v
|
||||
$TERMINAL -e aiomixer
|
||||
|
||||
mod1 + b
|
||||
$BROWSER
|
||||
|
||||
mod1 + m
|
||||
volume m
|
@ -1,144 +0,0 @@
|
||||
# i3 config file (v4)
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod1
|
||||
|
||||
# Font for window titles
|
||||
font pango:unscii 12
|
||||
|
||||
# keybindings
|
||||
exec_always --no-startup-id sxhkd
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start pulseaudio
|
||||
exec --no-startup-id pulseaudio --start
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# 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 [ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.") ] && i3-msg exit
|
||||
|
||||
# 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 window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym h resize shrink width 10 px or 10 ppt
|
||||
bindsym j resize grow height 10 px or 10 ppt
|
||||
bindsym k resize shrink height 10 px or 10 ppt
|
||||
bindsym l resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r 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
|
||||
separator_symbol " // "
|
||||
|
||||
# defaults
|
||||
# colors {
|
||||
# background #ffffff
|
||||
# statusline #000000
|
||||
# separator #ff0000
|
||||
# focused_workspace #4c7899 #285577 #ffffff
|
||||
# active_workspace #333333 #5f676a #ffffff
|
||||
# inactive_workspace #333333 #222222 #888888
|
||||
# urgent_workspace #2f343a #900000 #ffffff
|
||||
# binding_mode #2f343a #900000 #ffffff
|
||||
# }
|
||||
|
||||
colors {
|
||||
background #ffdbdb
|
||||
statusline #000000
|
||||
separator #ff0000
|
||||
# border bg text
|
||||
focused_workspace #ff0000 #ff0000 #ffffff
|
||||
active_workspace #ffffff #ffffff #000000
|
||||
inactive_workspace #000000 #000000 #ffffff
|
||||
urgent_workspace #2f343a #900000 #ff0000
|
||||
binding_mode #2f343a #900000 #ffffff
|
||||
}
|
||||
}
|
||||
|
||||
# color customization
|
||||
# class border bg text indicator child_border
|
||||
client.focused #ff0000 #ffffff #ff0000 #2e9ef4 #ff0000
|
||||
client.focused_inactive #ffffff #ffffff #000000 #484e50 #000000
|
||||
client.unfocused #000000 #000000 #ff0000 #292d2e #ffffff
|
||||
client.urgent #900000 #900000 #ffffff #900000 #900000
|
||||
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
|
||||
|
||||
client.background #ffffff
|
||||
|
||||
# Wallpaper
|
||||
exec --no-startup-id feh --bg-center /home/trinity/Pictures/Wallpapers/akirablast.jpg
|
||||
|
||||
# moving workspaces
|
||||
bindsym $mod+Shift+greater move container to output right
|
||||
bindsym $mod+Shift+less move container to output left
|
||||
|
||||
# Gaps
|
||||
#gaps inner 10
|
||||
#gaps outer 10
|
||||
#gaps horizontal 10
|
||||
#gaps vertical 10
|
||||
#gaps top 10
|
||||
#gaps right 10
|
||||
#gaps bottom 10
|
||||
#gaps left 10
|
||||
|
||||
# disables titlebars
|
||||
new_window 1pixel
|
@ -1,53 +0,0 @@
|
||||
# i3status configuration file.
|
||||
# see "man i3status" for documentation.
|
||||
|
||||
# It is important that this file is edited as UTF-8.
|
||||
# The following line should contain a sharp s:
|
||||
# ß
|
||||
# If the above line is not correctly displayed, fix your editor first!
|
||||
|
||||
general {
|
||||
colors = false
|
||||
interval = 5
|
||||
}
|
||||
|
||||
#order += "ipv6"
|
||||
order += "wireless _first_"
|
||||
order += "ethernet _first_"
|
||||
order += "battery all"
|
||||
order += "disk /"
|
||||
#order += "load"
|
||||
order += "memory"
|
||||
order += "tztime local"
|
||||
|
||||
wireless _first_ {
|
||||
format_up = "wlan0: (%quality at %essid) %ip"
|
||||
format_down = "wlan0 DOWN"
|
||||
}
|
||||
|
||||
ethernet _first_ {
|
||||
format_up = "eth0: %ip (%speed)"
|
||||
format_down = "eth0 DOWN"
|
||||
}
|
||||
|
||||
battery all {
|
||||
format = "%status %percentage %remaining"
|
||||
}
|
||||
|
||||
disk "/" {
|
||||
format = "%avail"
|
||||
}
|
||||
|
||||
#load {
|
||||
# format = "%1min"
|
||||
#}
|
||||
|
||||
memory {
|
||||
format = "%used/%available"
|
||||
threshold_degraded = "1G"
|
||||
format_degraded = "MEMORY < %available"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%Y-%m-%dT%H:%M:%S"
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
XF86AudioMicMute
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
XF86AudioMute
|
||||
pactl -- set-sink-mute @DEFAULT_SINK@ toggle
|
||||
XF86Audio{Lower,Raise}Volume
|
||||
pactl set-sink-volume @DEFAULT_SINK@ {"-5%","+5%"}
|
||||
XF86Audio{Play,Pause,Next,Prev}
|
||||
playerctl {play,pause,next,previous}
|
||||
XF86Launch1
|
||||
$TERMINAL
|
||||
|
||||
control + shift + Escape
|
||||
$TERMINAL -e htop
|
||||
Print
|
||||
scrot
|
||||
|
||||
# cred 4 https://github.com/patrickbolle/dotfiles/
|
||||
mod1 + equal
|
||||
light -A 5
|
||||
mod1 + shift + equal
|
||||
light -A 1
|
||||
mod1 + minus
|
||||
light -U 5
|
||||
mod1 + shift + minus
|
||||
light -U 1
|
||||
|
||||
mod1 + shift + r
|
||||
pkill -USR1 sxhkd
|
||||
|
||||
mod1 + i
|
||||
ps aux | grep dmenubar | grep -v grep && pkill dmenubar; \
|
||||
data | /home/trinity/src/dmenubar/dmenubar -b
|
||||
|
||||
mod1 + shift + i
|
||||
pkill dmenubar
|
||||
|
||||
mod1 + d
|
||||
dmenu_run
|
||||
|
||||
mod1 + Return
|
||||
$TERMINAL
|
||||
|
||||
mod1 + v
|
||||
$TERMINAL -e pulsemixer
|
||||
|
||||
mod1 + b
|
||||
$BROWSER
|
||||
|
||||
mod1 + m
|
||||
pactl -- set-sink-mute @DEFAULT_SINK@ toggle
|
||||
mod1 + shift + m
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
@ -1,8 +0,0 @@
|
||||
auto_refresh_feeds: -1
|
||||
cap: 200
|
||||
consumption_file_name: /home/trinity/.ytfeed/consumption.txt
|
||||
feed_directory: /home/trinity/.ytfeed/feeds/
|
||||
xml_storage_directory: /home/trinity/.ytfeed/feeds/
|
||||
video_downloader: youtube-dlp
|
||||
viewer: youtube-dl-mpv
|
||||
web_browser: firefox-developer-edition
|
@ -1,110 +0,0 @@
|
||||
# BEGIN ctwmrc
|
||||
# thanks to https://datagubbe.se/twm/
|
||||
NoDefaults
|
||||
DontShowWelcomeWindow
|
||||
|
||||
# fonts
|
||||
TitleFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||
ResizeFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||
MenuFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||
IconFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||
IconManagerFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||
|
||||
Color {
|
||||
TitleBackground "#FFDBDB"
|
||||
TitleForeground "#000000"
|
||||
BorderColor "#FFDBDB"
|
||||
BorderTileBackground "#206090"
|
||||
BorderTileForeground "#206090"
|
||||
|
||||
MenuBackground "Gray"
|
||||
MenuForeground "Black"
|
||||
MenuShadowColor "#004070"
|
||||
MenuTitleBackground "#C06077"
|
||||
MenuTitleForeground "White"
|
||||
}
|
||||
|
||||
WindowRing
|
||||
WindowRingExclude {
|
||||
"xload"
|
||||
"xclock"
|
||||
}
|
||||
|
||||
Cursors {
|
||||
Frame "left_ptr"
|
||||
Title "left_ptr"
|
||||
Icon "left_ptr"
|
||||
IconMgr "hand2"
|
||||
Move "fleur"
|
||||
Resize "fleur"
|
||||
Menu "sb_left_arrow"
|
||||
Button "hand2"
|
||||
Wait "watch"
|
||||
Select "dot"
|
||||
Destroy "pirate"
|
||||
}
|
||||
|
||||
NoBorder {
|
||||
"xclock"
|
||||
"xload"
|
||||
}
|
||||
|
||||
NoTitle {
|
||||
"TWM Icon Manager"
|
||||
"xload"
|
||||
"xclock"
|
||||
"feh"
|
||||
"xeyes"
|
||||
}
|
||||
|
||||
Function "move-and-raise" {
|
||||
f.move
|
||||
f.deltastop
|
||||
f.raise
|
||||
}
|
||||
|
||||
Function "deiconify-and-raise" {
|
||||
f.deiconify
|
||||
f.raise
|
||||
}
|
||||
Function "next-and-raise" {
|
||||
f.downiconmgr
|
||||
f.raise
|
||||
}
|
||||
|
||||
Button3 = : root : f.menu "apps"
|
||||
|
||||
Button1 = : title : f.function "move-and-raise"
|
||||
Button2 = : title : f.delete
|
||||
Button3 = : title : f.menu "winops"
|
||||
Button1 = : frame : f.function "move-and-raise"
|
||||
Button2 = : frame : f.nop
|
||||
Button3 = : frame : f.resize
|
||||
|
||||
Button1 = : iconmgr : f.function "deiconify-and-raise"
|
||||
Button2 = : iconmgr : f.lower
|
||||
Button3 = : iconmgr : f.iconify
|
||||
|
||||
# on NetBSD with non-modular Xorg, bitmaps are stored in
|
||||
# /usr/X11R7/include/X11/bitmaps
|
||||
LeftTitleButton ":xlogo" = f.menu "winops"
|
||||
RightTitleButton "vertmax.xbm" = f.zoom
|
||||
RightTitleButton "close.xbm" = f.delete
|
||||
|
||||
menu "winops" {
|
||||
"Delete" f.delete
|
||||
"Destroy" f.destroy
|
||||
"Fullscreen Zoom" f.fullscreenzoom
|
||||
"Full Zoom" f.fullzoom
|
||||
"Identify" f.identify
|
||||
"Initial size" f.initsize
|
||||
}
|
||||
|
||||
# Workspace Menu
|
||||
menu "apps" {
|
||||
"Workspace" f.title
|
||||
"Restart" f.restart
|
||||
"Exit" f.quit
|
||||
}
|
||||
|
||||
# END twmrc
|
@ -1,10 +0,0 @@
|
||||
if [ "$0" = "bash" ] || [ "$0" = "-bash" ]; then complete -c man which; fi
|
||||
|
||||
PS1="; "
|
||||
PS2="; "
|
||||
PS3="; "
|
||||
|
||||
set -o vi
|
||||
|
||||
. $HOME/.aliases
|
||||
. $HOME/.cargo/env
|
@ -1,13 +0,0 @@
|
||||
BROWSER=firefox; export BROWSER
|
||||
DOOMWADDIR=/mnt/partone/misc/doomwads/; export DOOMWADDIR
|
||||
EDITOR=ed; export EDITOR
|
||||
PAGER="less"; export PAGER
|
||||
PLAN9=/usr/local/plan9; export PLAN9
|
||||
PATH="$HOME/bin/:$HOME/bin/oneliners/:"$PATH":/usr/pkg/qt5/bin:$PLAN9/bin"; export PATH
|
||||
SUDO="doas"; export SUDO
|
||||
TERMINAL="uxterm"; export TERMINAL
|
||||
UNITS_SYSTEM="si"; export UNITS_SYSTEM
|
||||
VISUAL=vi; export VISUAL
|
||||
|
||||
ENV=$HOME/.env; export ENV
|
||||
. $ENV
|
@ -1,18 +0,0 @@
|
||||
set bg=dark
|
||||
set mouse=
|
||||
set nocp
|
||||
set noexpandtab
|
||||
set noim
|
||||
set nois
|
||||
set nu
|
||||
set relativenumber
|
||||
set rnu
|
||||
set ruler
|
||||
set tabstop=8
|
||||
set term=xterm
|
||||
set tf
|
||||
set title
|
||||
set tty=xterm
|
||||
set vb
|
||||
set nowrap
|
||||
syntax on
|
@ -1,19 +1,7 @@
|
||||
# devenblake/dotfiles
|
||||
# trinity/dotfiles
|
||||
Pretty config stuff.
|
||||
|
||||
![This is a screenshot of my desktop.](https://web.archive.org/web/20200926155417if_/https://i.redd.it/jwhsmokcfcp51.png)
|
||||
For this configuration, [posted on r/unixporn on 2020-09-25](https://www.reddit.com/r/unixporn/comments/izpvwp/i3gaps_basic_but_it_works/), refer to the [state of the repository around 2020-09-26](https://git.sr.ht/~trinity/dotfiles/tree/7d0a35b6d06c2bb46990087c6a6c4b2a2685d49c) or so.
|
||||
|
||||
My setup has changed drastically since then.
|
||||
|
||||
My shell aliases are in `.aliases` and my general shell configuration is in `.env`.
|
||||
I use `dash` as my shell. I sort of miss tab-completion but it's worth it so I know everything I do is reproducible.
|
||||
|
||||
Refer to `scripts/` for scripts that help me keep everything organized, except for `clone.sh` (which clones all my dotfiles to `~/src/dotfiles/`, where I keep my local copy of this repo).
|
||||
|
||||
A list of all the packages I use is available in `scripts/packages/`, organized by repository availability.
|
||||
|
||||
## License
|
||||
|
||||
See `LICENSE` for the repository license if you want but basically all code, unless otherwise stated, is released unencumbered into the public domain.
|
||||
A notable exception to this is `src/dmenu/config.h` which is licensed under the MIT/X Consortium license as is dmenu; this license can be found in `licenses/DMENU`.
|
||||
See [trinity/src](https://git.sr.ht/~trinity/src) where these dotfiles have relocated.
|
||||
|
@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -n "$dmenu" ] || dmenu=dmenu
|
||||
|
||||
lang="$LANG"
|
||||
# lots of potentially wrong assumptions here
|
||||
printf "%s\n" "$lang" | grep "_" >/dev/null 2>&1 \
|
||||
&& lang="$(printf "%s\n" "$lang" | cut -d '_' -f 1)" \
|
||||
|| lang=en
|
||||
|
||||
printf "%s\n" "$(xclip -o)" | translate auto $lang | "$($dmenu -p "Press Enter to dismiss.")"
|
@ -1,54 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
POLLING_FREQUENCY=1
|
||||
|
||||
# ISO 8601
|
||||
alias date="date '+%Y-%m-%dT%T'"
|
||||
|
||||
emit() {
|
||||
printf "[%s] " "$(date)"
|
||||
echo "$@"
|
||||
}
|
||||
get_current_level() {
|
||||
# adapted from other script i wrote, also in the public domain
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
# this is a dirty hack.
|
||||
# acpi | awk '{print $4}' will print the battery percentage,
|
||||
# and s/,$// strips the trailing comma.
|
||||
# acpi -a will just print the power adapter status.
|
||||
printf "%b" "$(acpi | awk '{print $4}' | sed 's/,$//')"
|
||||
return 0
|
||||
elif [ "$(uname)" = "NetBSD" ]; then
|
||||
printf "%b" "$(envstat -s acpibat0:charge \
|
||||
| sed 1,2d \
|
||||
| cut -d ':' -f 2 \
|
||||
| awk '{print $1}' \
|
||||
| cut -d '.' -f 1)"
|
||||
return 0
|
||||
else
|
||||
printf "get_battery_status: unsupported OS" >>/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
! get_current_level >/dev/null \
|
||||
&& printf "Unable to get battery status on this system.\n" >>/dev/stderr \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
|
||||
current_level=$(get_current_level)
|
||||
previous_level=$current_level
|
||||
|
||||
emit "$(printf "Current level: %d%%" "$current_level")"
|
||||
|
||||
while true; do
|
||||
current_level=$(get_current_level)
|
||||
if ! [ $current_level -eq $previous_level ]; then
|
||||
[ $current_level -lt $previous_level ] \
|
||||
&& emit "$(printf "Discharged: %d%% -> %d%%\n" $previous_level $current_level )" \
|
||||
|| emit "$(printf " Charged: %d%% -> %d%%\n" $previous_level $current_level )"
|
||||
previous_level=$current_level
|
||||
fi
|
||||
|
||||
sleep $POLLING_FREQUENCY
|
||||
done
|
@ -1,211 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# depends on https://git.sr.ht/~trinity/utilities (particularly fdivide(1),
|
||||
# gt(1), and stris(1))
|
||||
# there are issues with the POSIX shell implementations included in this script
|
||||
# and particularly with stris
|
||||
|
||||
# on Linux only:
|
||||
# these files (separated by newlines) will have the current CPU temperature
|
||||
# multiplied by $CPU_TEMP_SCALE. this script divides the file contents by scale
|
||||
# and displays that temperature (assumed to be in Celsius units)
|
||||
CPU_TEMP_FILES="/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp2_input
|
||||
/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp3_input"
|
||||
CPU_TEMP_SCALE=1000
|
||||
|
||||
# format for the date (by default in this script, ISO 8601)
|
||||
alias date="date '+%Y-%m-%dT%T'"
|
||||
|
||||
DELIMITER=" || "
|
||||
|
||||
# how fast to refresh the display (in seconds, will be substituted with 1 if
|
||||
# not an integer)
|
||||
INTERVAL=1
|
||||
|
||||
# enable if you have issues with missing `stris` etc. will save negligible time
|
||||
# with shells that don't spawn new processes for test(1)
|
||||
# fdivide_posix() may not be fully working yet, so it's not enabled by default
|
||||
#POSIXLY_CORRECT=1
|
||||
|
||||
# this URL will have in plain text the public IP address from which it was
|
||||
# accessed
|
||||
#PUBLIC_IP_FETCH_URL="http://ifconfig.io/"
|
||||
#PUBLIC_IP_FETCH_URL="https://ifconfig.io"
|
||||
#PUBLIC_IP_FETCH_URL="http://icanhazip.com"
|
||||
PUBLIC_IP_FETCH_URL="https://icanhazip.com"
|
||||
PUBLIC_IP6_FETCH_URL="$PUBLIC_IP_FETCH_URL"
|
||||
|
||||
get_battery_status() {
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
# this is a dirty hack.
|
||||
# acpi | awk '{print $4}' will print the battery percentage,
|
||||
# and s/,$// strips the trailing comma.
|
||||
# acpi -a will just print the power adapter status.
|
||||
printf "%b" "$(acpi | awk '{print $4}' | sed 's/,$//') ($(acpi -a))"
|
||||
return
|
||||
elif [ "$(uname)" = "NetBSD" ]; then
|
||||
printf "%b%%" "$(envstat -s acpibat0:charge \
|
||||
| sed 1,2d \
|
||||
| cut -d ':' -f 2 \
|
||||
| awk '{print $1}' \
|
||||
| cut -d '.' -f 1)"
|
||||
return
|
||||
else
|
||||
printf "get_battery_status: unsupported OS"
|
||||
fi
|
||||
}
|
||||
|
||||
get_cpu_temp() {
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
RETVAL=""
|
||||
# iterate over files, adjust, print out "%dC "
|
||||
for file in $CPU_TEMP_FILES;
|
||||
do RETVAL="$RETVAL$(fdivide $(cat $file) $CPU_TEMP_SCALE)C "
|
||||
done
|
||||
# in-line python (bet you've never seen that before) that
|
||||
# strips off trailing whitespace. could be done with sed but
|
||||
# this was more fun
|
||||
printf "%b" "$RETVAL" \
|
||||
| python -c "from sys import stdin; print(stdin.read().rstrip() + '\n')"
|
||||
return
|
||||
elif [ "$(uname)" = "NetBSD" ]; then
|
||||
printf "%bC" "$(envstat -s coretemp0:'cpu0 temperature' \
|
||||
| sed 1,2d \
|
||||
| cut -d ':' -f 2 \
|
||||
| awk '{print $1}' \
|
||||
| cut -d '.' -f 1)"
|
||||
return
|
||||
else
|
||||
printf "get_cpu_temp: unsupported OS"
|
||||
fi
|
||||
}
|
||||
|
||||
get_current_desktop() {
|
||||
case "$WM" in
|
||||
(bspwm) printf "[%b] " "$(bspc query -D -d focused --names)" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_memory_usage() {
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
printf "%b" \
|
||||
"$(free | head -n 2 | tail -n 1 \
|
||||
| awk '{print $3 " used / " $2 " total"}')"
|
||||
return
|
||||
fi
|
||||
}
|
||||
|
||||
get_public_ip() {
|
||||
PUBLIC_IP4="$(curl -4 "$PUBLIC_IP_FETCH_URL" --no-progress-meter 2>/dev/null \
|
||||
|| printf "-1")"
|
||||
PUBLIC_IP6="$(curl -6 "$PUBLIC_IP6_FETCH_URL" --no-progress-meter 2>/dev/null \
|
||||
|| printf "-1")"
|
||||
if [ "$PUBLIC_IP4" = "-1" ] && [ "$PUBLIC_IP6" = "-1" ]; then
|
||||
printf "[error fetching address]"
|
||||
elif [ "$PUBLIC_IP4" = "-1" ]; then
|
||||
printf "%b" "$PUBLIC_IP6"
|
||||
elif [ "$PUBLIC_IP6" = "-1" ]; then
|
||||
printf "%b" "$PUBLIC_IP4"
|
||||
else
|
||||
printf "%b / %b" "$PUBLIC_IP4" "$PUBLIC_IP6"
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
# slow, so fetch it in advance
|
||||
PUBLIC_IP="$(get_public_ip)"
|
||||
|
||||
printbar() {
|
||||
printf "%b" "$(get_current_desktop)"
|
||||
printf "%b" "$(date)"
|
||||
printf "%b" "$DELIMITER"
|
||||
printf "%b" "BAT: $(get_battery_status)"
|
||||
printf "%b" "$DELIMITER"
|
||||
printf "%b" "CPU: $(get_cpu_temp)"
|
||||
printf "%b" "$DELIMITER"
|
||||
printf "%b" "PuIP: $PUBLIC_IP"
|
||||
#printf "%b" "$DELIMITER"
|
||||
#printf "%b" "MEM: $(get_memory_usage)"
|
||||
printf "\n"
|
||||
return
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# the following is for error prevention and doesn't need to be changed #
|
||||
###############################################################################
|
||||
|
||||
# POSIX shell version of fdivide
|
||||
fdivide_posix() {
|
||||
[ -n "$2" ] && [ -n "$1" ] && [ -z "$3" ] \
|
||||
|| return 1
|
||||
printf "%b\n" "$(($1/$2))"
|
||||
return
|
||||
}
|
||||
|
||||
# [ -gt ] with better syntax
|
||||
gt_posix() {
|
||||
while [ -n "$2" ]; do
|
||||
[ "$1" -gt "$2" ] \
|
||||
|| return 1
|
||||
shift 1
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
# limited POSIX shell version of stris
|
||||
# BROKEN REGEX. MUSTFIX.
|
||||
stris_posix() {
|
||||
[ -n "$2" ] || return 1
|
||||
case "$1" in
|
||||
(int)
|
||||
# https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer
|
||||
printf "$2" | grep '^-?[0-9]+$' >/dev/null \
|
||||
&& return 0 \
|
||||
|| return 1
|
||||
;;
|
||||
(uint)
|
||||
printf "$2" | grep '^[0-9]+$' >/dev/null \
|
||||
&& return 0 \
|
||||
|| return 1
|
||||
;;
|
||||
(*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
return
|
||||
}
|
||||
|
||||
# check to make sure we have non-standard utilities
|
||||
|
||||
[ -n "$POSIXLY_CORRECT" ] || ! which fdivide >/dev/null 2>&1 \
|
||||
&& alias fdivide="fdivide_posix" \
|
||||
|| true
|
||||
|
||||
[ -n "$POSIXLY_CORRECT" ] || ! which gt >/dev/null 2>&1 \
|
||||
&& alias gt="gt_posix" \
|
||||
|| true
|
||||
|
||||
[ -n "$POSIXLY_CORRECT" ] || ! which stris >/dev/null 2>&1 \
|
||||
&& alias stris="stris_posix" \
|
||||
|| true
|
||||
|
||||
# check to make sure customizeable vars are in proper format
|
||||
|
||||
[ -n "$INTERVAL" ] && stris int "$INTERVAL" \
|
||||
|| INTERVAL=1
|
||||
|
||||
[ -n "$CPU_TEMP_SCALE" ] && stris int "$CPU_TEMP_SCALE" \
|
||||
&& gt "$CPU_TEMP_SCALE" 0 \
|
||||
|| CPU_TEMP_SCALE=1
|
||||
|
||||
[ -n "$CPU_TEMP_FILES" ] \
|
||||
|| alias get_cpu_temp="printf '[no temperature files specified]\n'"
|
||||
|
||||
# main loop
|
||||
|
||||
while true; do
|
||||
printbar
|
||||
sleep "$INTERVAL"
|
||||
done
|
@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
DEV="/dev"
|
||||
MNT="/mnt"
|
||||
# will not be split when used
|
||||
SUDO="doas"
|
||||
|
||||
# preliminary checks
|
||||
[ -n "$2" ] || [ -z "$1" ] \
|
||||
&& printf "Usage: %b [device in %b/]\n" "$0" "$DEV" >>/dev/stderr \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
|
||||
# no need to priviledge escalate if we're already root
|
||||
! [ "$(id -u)" = 0 ] \
|
||||
|| SUDO=""
|
||||
|
||||
# exhaustive checks to ensure $DEV/$1 exists and that $MNT/$1 can be safely used as a mountpoint
|
||||
! [ -d "$MNT/$1" ] && [ -a "$MNT/$1" ] \
|
||||
&& printf "%b: '%b/%b' already exists, but isn't a directory.\n" "$0" "$MNT" "$1" >>/dev/stderr \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
[ -d "$MNT/$1" ] \
|
||||
|| mkdir "$MNT/$1"
|
||||
! [ "$(ls -A "$MNT/$1" | wc -l | xargs echo)" = 0 ] \
|
||||
&& printf "%b: '%b/%b' is a directory, but isn't empty.\n" "$0" "$MNT" "$1" >>/dev/stderr \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
! [ -e "/dev/$1" ] \
|
||||
&& printf "%b: '%b/%b' doesn't exist.\n" "$0" "$DEV" "$1" >>/dev/stderr \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
|
||||
# ok, we're safe
|
||||
"$SUDO" mount "$DEV/$1" "$MNT/$1"
|
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# DistroTube's dm-radio fixed and in POSIX shell
|
||||
|
||||
alias nonzero="test -n"
|
||||
|
||||
nonzero "$MUSIC_PLAYER" || MUSIC_PLAYER=mpv
|
||||
nonzero "$DMENU" || DMENU=dmenu
|
||||
|
||||
# tab delimits name from URL
|
||||
STATIONS="\
|
||||
50s Rewind https://zeno.fm/radio/50s-rewind/
|
||||
60s Rewind https://zeno.fm/radio/60s-rewind/
|
||||
70s Rewind https://zeno.fm/radio/70s-rewind/
|
||||
80s Rewind https://zeno.fm/radio/80s-rewind/
|
||||
90s Rock https://zeno.fm/radio/90s-rock/
|
||||
The 2000s https://zeno.fm/radio/the-2000s/
|
||||
Classical Radio https://zeno.fm/radio/classical-radio/
|
||||
Classical Relaxation https://zeno.fm/radio/radio-christmas-non-stop-classical/
|
||||
Classic Rock https://zeno.fm/radio/classic-rockdnb2sav8qs8uv/
|
||||
Gangsta49 https://zeno.fm/radio/gangsta49/
|
||||
HipHop49 https://zeno.fm/radio/hiphop49/
|
||||
Madhouse Country Radio https://zeno.fm/radio/madhouse-country-radio/
|
||||
PopMusic https://zeno.fm/radio/popmusic74vyurvmug0uv/
|
||||
PopStars https://zeno.fm/radio/popstars/
|
||||
RadioMetal https://zeno.fm/radio/radio-metal/
|
||||
RocknRoll Radio https://zeno.fm/radio/rocknroll-radio994c7517qs8uv/
|
||||
Cancel nop://
|
||||
"
|
||||
|
||||
selection="$(printf "%s\n" "$STATIONS" | grep -F "$(printf "%s\n" "$STATIONS" | cut -f 1 | dmenu) ")"
|
||||
|
||||
if [ "$selection" = "Cancel nop://" ]
|
||||
then exit 0
|
||||
fi
|
||||
|
||||
pkill -f http || printf "%s: mpv not running.\n" "$0" 1>&2
|
||||
printf "%s\n" "$selection" | cut -f 2 | xargs mpv
|
@ -1,33 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
ROTATION_FILE="$HOME/.rotation"
|
||||
SCREEN="$1"
|
||||
|
||||
_core(){
|
||||
case "$1" in
|
||||
1) xrandr --output "$SCREEN" --rotate normal ;;
|
||||
2) xrandr --output "$SCREEN" --rotate left ;;
|
||||
3) xrandr --output "$SCREEN" --rotate inverted ;;
|
||||
4) xrandr --output "$SCREEN" --rotate right ;;
|
||||
*) return 1
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
|
||||
if [ -e "$ROTATION_FILE" ]
|
||||
then ROTATION="$(dd <"$ROTATION_FILE" 2>/dev/null)"
|
||||
if ! _core "$ROTATION"
|
||||
then _core 1
|
||||
ROTATION=2
|
||||
else ROTATION=$(printf "%s + 1\n" "$ROTATION" | bc)
|
||||
! [ "$ROTATION" -gt 4 ] \
|
||||
|| ROTATION=1
|
||||
fi
|
||||
else _core 1
|
||||
ROTATION=2
|
||||
fi
|
||||
|
||||
printf "%s\n" "$ROTATION" >"$ROTATION_FILE"
|
||||
|
||||
exit 0
|
@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
argv0="$0"
|
||||
usage(){
|
||||
printf "Usage: %s (un) [XRandR output]\n" "$argv0" 1>&2
|
||||
exit 64 # sysexits(3) EX_USAGE
|
||||
}
|
||||
if [ -n "$2" ] && [ "$1" = un ]
|
||||
then xrandr --output "$2" --transform none
|
||||
elif [ -n "$1" ]
|
||||
then "$DISPLAYM_CONFIG/xrandr_transform.sh" "$1"
|
||||
else usage
|
||||
fi
|
@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# googletrans comes with a translate(1) command line application but I don't
|
||||
# like its UI.
|
||||
|
||||
import sys;
|
||||
|
||||
stdin = sys.stdin;
|
||||
stdout = sys.stdout;
|
||||
stderr = sys.stderr;
|
||||
|
||||
_exit = exit;
|
||||
exit = sys.exit;
|
||||
|
||||
def printf(s, *args):
|
||||
return fprintf(stdout, s, *args);
|
||||
|
||||
def fprintf(f, s, *args):
|
||||
printing = s if len(args) == 0 else (s % args);
|
||||
return f.write(printing);
|
||||
|
||||
try:
|
||||
import googletrans;
|
||||
except:
|
||||
printf(
|
||||
"%s: This Python script requires the \"googletrans\" library.\n",
|
||||
sys.argv[0]
|
||||
);
|
||||
|
||||
def usage(name):
|
||||
fprintf(
|
||||
stderr, "Usage: %s [source language] [destination language]\n",
|
||||
name
|
||||
);
|
||||
exit(1);
|
||||
|
||||
def main(argc, argv):
|
||||
accepted_languages = set(list(googletrans.LANGCODES)
|
||||
+ list(googletrans.LANGUAGES) + [ "auto" ]);
|
||||
good = True;
|
||||
isatty = stdout.isatty();
|
||||
translator = googletrans.Translator();
|
||||
|
||||
if argc != 3:
|
||||
usage(argv[0]);
|
||||
|
||||
src = argv[1].lower();
|
||||
dest = argv[2].lower();
|
||||
for arg in [ src, dest ]:
|
||||
if not(arg in accepted_languages):
|
||||
good = False;
|
||||
fprintf(stderr,
|
||||
"%s: %s: Language not recognized.\n",
|
||||
argv[0], arg);
|
||||
if(not(good)):
|
||||
fprintf(stderr, "The following languages and language codes are"
|
||||
+ " recognized:\n");
|
||||
print(googletrans.LANGCODES);
|
||||
exit(1);
|
||||
|
||||
try:
|
||||
text = stdin.read().split('\n')[:-1]
|
||||
except KeyboardInterrupt:
|
||||
fprintf(stderr, "%s: Cancelled (keyboard interrupt).\n", argv[0]);
|
||||
exit(1);
|
||||
for line in text:
|
||||
try:
|
||||
translation = translator.translate(line, src=src, dest=dest);
|
||||
except:
|
||||
fprintf(stderr, "%s: %s ->%s\n\t%s\n",
|
||||
argv[0], line, dest, "Error trying to translate.");
|
||||
if isatty:
|
||||
fprintf(stdout,
|
||||
"%s -> %s\n"
|
||||
+ "\t%s -> %s\n"
|
||||
+ "\tGiven pronunciation: %s\n",
|
||||
translation.origin, translation.text,
|
||||
translation.src, translation.dest,
|
||||
translation.pronunciation
|
||||
);
|
||||
else:
|
||||
fprintf(stdout, "%s\n", translation.text);
|
||||
return 0;
|
||||
|
||||
exit(main(len(sys.argv), sys.argv));
|
@ -1,146 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
argv0="$0"
|
||||
|
||||
# ADDING A NEW SOUND SERVER/CLIENT/WHATEVERIDK
|
||||
# `volume a` and `volume s` are the system dependent functions.
|
||||
|
||||
# `volume a $2` must set the volume to $2, an integer value. This should be a
|
||||
# percentage, 100% being the loudest possible volume that can be output by
|
||||
# hardware without quality loss. Percentages above 100% will be allowable in
|
||||
# software if using percentage units. If percentage units are implausible to
|
||||
# implement, system units are okay (e.g. 0-$arbitrary scale versus 0-100).
|
||||
|
||||
# `volume s` must output the current volume in integer form in whatever units
|
||||
# are being used by `volume a` on the given system.
|
||||
|
||||
! command -v stris >/dev/null 2>/dev/null \
|
||||
&& printf "%b: Missing stris.\n" "$argv0" \
|
||||
&& exit 1 \
|
||||
|| true
|
||||
|
||||
VOLUME_TMP_FILE="$HOME/.volume-previous"
|
||||
|
||||
unknown_system(){
|
||||
printf "%s: Unknown system.\n" "$argv0" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
usage(){
|
||||
printf "\
|
||||
Usage: %b {function} (operand)\n" "$argv0"
|
||||
printf "\
|
||||
Functions:
|
||||
'+' - shortcut to \"relative \$2\"
|
||||
'-' - shortcut to \"relative -\$2\"
|
||||
absolute - change sound output to absolute unit
|
||||
help,'' - print this help output
|
||||
mute - toggle mute/unmute
|
||||
relative - change sound output relative to current status
|
||||
status - print current sound output in system unit \
|
||||
"
|
||||
printf "\
|
||||
The options are matched with [char]*. So \"%b help\"
|
||||
works the same as \"%b h\".
|
||||
|
||||
" "$argv0" "$argv0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# $1 becomes 'help' if previously empty
|
||||
[ -n "$1" ] \
|
||||
&& argv1="$1" \
|
||||
|| argv1=help
|
||||
|
||||
case "$argv1" in
|
||||
#
|
||||
# SYSTEM DEPENDENT
|
||||
#
|
||||
(a*)
|
||||
[ -n "$2" ] && [ -z "$3" ] && stris int "$2" || usage
|
||||
|
||||
if [ "$(uname)" = "NetBSD" ]; then
|
||||
# NetBSD 9.2 STABLE 2021-07
|
||||
audioctl -w play.gain=$2 >/dev/null
|
||||
|
||||
elif command -v pactl >/dev/null; then
|
||||
# pactl 15.0 compiled+linked with libpulse 15.0.0
|
||||
pactl set-sink-volume @DEFAULT_SINK@ $2%
|
||||
|
||||
else unknown_system; fi
|
||||
exit 0 ;;
|
||||
(s*)
|
||||
[ -z "$2" ] || usage
|
||||
|
||||
if [ "$(uname)" = "NetBSD" ]; then
|
||||
# hacky
|
||||
audioctl -a \
|
||||
| grep "play\.gain" \
|
||||
| cut -d '=' -f 2
|
||||
|
||||
elif command -v pactl >/dev/null; then
|
||||
# really hacky, gets the job done
|
||||
# gets the volume % of Lchan specifically
|
||||
pactl get-sink-volume @DEFAULT_SINK@ \
|
||||
| sed q \
|
||||
| cut -d '/' -f 2 \
|
||||
| xargs echo \
|
||||
| sed s/'%'//
|
||||
|
||||
else unknown_system; fi
|
||||
exit 0 ;;
|
||||
#
|
||||
# SYSTEM independent
|
||||
#
|
||||
(+)
|
||||
[ -n "$2" ] && [ -z "$3" ] && stris uint "$2" \
|
||||
&& "$argv0" r "$2" \
|
||||
|| usage
|
||||
;;
|
||||
(-)
|
||||
[ -n "$2" ] && [ -z "$3" ] && stris uint "$2" \
|
||||
&& "$argv0" r -"$2" \
|
||||
|| usage
|
||||
;;
|
||||
(m*)
|
||||
[ -z "$2" ] || usage
|
||||
# restore previous volume if there is one
|
||||
if [ -e "$VOLUME_TMP_FILE" ]; then
|
||||
"$argv0" a "$(cat "$VOLUME_TMP_FILE")" \
|
||||
&& rm "$VOLUME_TMP_FILE" \
|
||||
&& printf "Unmuted.\n" \
|
||||
&& exit 0 \
|
||||
|| printf "Error restoring previous volume.\n" \
|
||||
>/dev/stderr \
|
||||
&& exit 1
|
||||
fi
|
||||
|
||||
# otherwise, make new file with previous volume
|
||||
|
||||
# dd used rather than shell redirect so it's easy to determine
|
||||
# whether or not the file write worked
|
||||
if ! printf "%b" "$("$argv0" s)" \
|
||||
| dd >"$VOLUME_TMP_FILE" 2>/dev/null
|
||||
then
|
||||
printf "Error writing to file.\n" >/dev/stderr
|
||||
false
|
||||
fi
|
||||
|
||||
# and then of course mute
|
||||
"$argv0" a 0
|
||||
printf "Muted.\n"
|
||||
|
||||
exit 0 ;;
|
||||
(r*)
|
||||
[ -n "$2" ] && [ -z "$3" ] && stris int "$2" \
|
||||
|| usage
|
||||
|
||||
if ! newval=$(add $("$argv0" s) $2) || ! stris int "$newval"; then
|
||||
printf "%b: Error finding new value for volume.\n" "$argv0"
|
||||
exit 1
|
||||
fi
|
||||
"$argv0" a $newval
|
||||
exit $? ;;
|
||||
(h*) usage ;;
|
||||
(*) usage ;;
|
||||
esac
|
@ -1,24 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
alias cp="$(which cp)"
|
||||
SRC="$HOME"
|
||||
DEST="$(pwd)"
|
||||
[ "$(printf "Abort.\nContinue.\n" | dmenu -p "Copying from '$SRC' to '$DEST'. Continue?")" = "Continue." ] || exit
|
||||
set -x
|
||||
|
||||
for dir in $(cat manifest_dir); do
|
||||
if ! [ -d "$SRC/$dir" ]; then
|
||||
printf "Directory missing from SRC: %b\n" "$dir"
|
||||
false
|
||||
else
|
||||
mkdir -p "$DEST/$dir"
|
||||
fi
|
||||
done
|
||||
|
||||
for file in $(cat manifest_file); do
|
||||
if ! [ -e "$SRC/$file" ]; then
|
||||
printf "File missing from SRC: %b\n" "$file"
|
||||
false
|
||||
else
|
||||
cp "$SRC/$file" "$DEST/$file"
|
||||
fi
|
||||
done
|
@ -1,42 +0,0 @@
|
||||
On modern Linux systems most people use ALSA and PulseAudio for sound.
|
||||
This tends to work fine. This isn't always how it's been done but it's
|
||||
how it's done now.
|
||||
|
||||
I'm not an expert on Linux audio and I'm not gonna explain how this all
|
||||
works because I don't know myself. However I've noticed a lot of guides
|
||||
just gloss over what seem to be important parts of setup, so here it is.
|
||||
|
||||
This is also a living document and low quality.
|
||||
|
||||
Alpine Wiki says as of 2021-05-19 you'll need:
|
||||
|
||||
alsa-utils alsa-utils-doc alsa-lib alsaconf
|
||||
|
||||
Alpine splits documentation into their own packages from programs.
|
||||
|
||||
Alpine also says to add all system users including root to the audio group.
|
||||
|
||||
On Busybox systems this is `addgroup $USER audio`.
|
||||
On GNU this is `usermod -aG audio $USER`.
|
||||
|
||||
Alpine Wiki tells you to use `alsamixer` to find the ID number of your card
|
||||
in F6 menu and then change defaults.ctl.card and defaults.pcm.card in
|
||||
/usr/share/alsa/alsa.conf but mine was already the default.
|
||||
|
||||
You need to also add and start the alsa service:
|
||||
rc-service alsa start
|
||||
rc-update add alsa
|
||||
|
||||
It looks like I installed gstreamer too.
|
||||
|
||||
Now you need pulseaudio. Here's how to do that according to Alpine Wiki, add:
|
||||
|
||||
pulseaudio pulseaudio-alsa alsa-plugins-pulse
|
||||
|
||||
Make sure you set pulseaudio to start when you need audio.
|
||||
It freaks out at you if you try to set it systemwide.
|
||||
|
||||
I do this in my bspwmrc for bspwm (and .config/i3/config for i3wm) but
|
||||
I've heard this is an awful idea so ask your local user-group.
|
||||
|
||||
2021-06-04: This works on artix-openrc.
|
@ -1,32 +0,0 @@
|
||||
2021-06-04
|
||||
Had an issue with pacman missing some ubiquitous packages (esr's `ascii`, xorg-xev, etc).
|
||||
This fixed it. I don't really know why - maybe some issues with my repos?
|
||||
This was cleanly installed artix-openrc.
|
||||
|
||||
[5:46 PM] Bassman Leyla: So what I did is I went into /etc/pacman.d/mirrorlist-arch and uncommented a local mirror
|
||||
[5:46 PM] Bassman Leyla: Then I appended a config block a package maintainer gave me onto /etc/pacman.conf
|
||||
[5:46 PM] Bassman Leyla: I'll paste it in
|
||||
[5:47 PM] Bassman Leyla:
|
||||
```
|
||||
#
|
||||
# ARCHLINUX
|
||||
#
|
||||
|
||||
#[testing]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
```
|
@ -1,30 +0,0 @@
|
||||
MIT/X Consortium License
|
||||
|
||||
© 2006-2019 Anselm R Garbe <anselm@garbe.ca>
|
||||
© 2006-2008 Sander van Dijk <a.h.vandijk@gmail.com>
|
||||
© 2006-2007 Michał Janeczek <janeczek@gmail.com>
|
||||
© 2007 Kris Maglione <jg@suckless.org>
|
||||
© 2009 Gottox <gottox@s01.de>
|
||||
© 2009 Markus Schnalke <meillo@marmaro.de>
|
||||
© 2009 Evan Gates <evan.gates@gmail.com>
|
||||
© 2010-2012 Connor Lane Smith <cls@lubutu.com>
|
||||
© 2014-2020 Hiltjo Posthuma <hiltjo@codemadness.org>
|
||||
© 2015-2019 Quentin Rameau <quinq@fifth.space>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
@ -1,13 +0,0 @@
|
||||
.config/
|
||||
.config/bspwm/
|
||||
.config/displaym/
|
||||
.config/displaym/bspwm
|
||||
.config/displaym/ctwm
|
||||
.config/displaym/i3wm
|
||||
.config/i3/
|
||||
.config/i3status/
|
||||
.config/sxhkd/
|
||||
.config/sxhkd/
|
||||
.config/sxhkd/
|
||||
bin/
|
||||
src/dmenu/
|
@ -1,24 +0,0 @@
|
||||
.Xresources
|
||||
.aliases
|
||||
.ctwmrc
|
||||
.env
|
||||
.profile
|
||||
.vimrc
|
||||
.config/bspwm/bspwmrc
|
||||
.config/displaym/.xinitrc
|
||||
.config/displaym/sxhkdrc
|
||||
.config/displaym/bspwm/.xinitrc
|
||||
.config/displaym/bspwm/start.sh
|
||||
.config/displaym/bspwm/sxhkdrc
|
||||
.config/displaym/ctwm/.xinitrc
|
||||
.config/displaym/ctwm/start.sh
|
||||
.config/displaym/i3wm/.xinitrc
|
||||
.config/displaym/i3wm/sxhkdrc
|
||||
.config/i3/config
|
||||
.config/i3status/config
|
||||
bin/batterymonitor
|
||||
bin/data
|
||||
bin/displaym
|
||||
bin/mnt
|
||||
bin/volume
|
||||
src/dmenu/config.h
|
@ -1,17 +0,0 @@
|
||||
# Maintainer: deven <trinity at trinitydotmoe>
|
||||
# VERY LIGHTLY modified version of the AUR package opendoas-sudo
|
||||
pkgname=doas-sudo
|
||||
pkgver=1
|
||||
pkgrel=1
|
||||
pkgdesc="A symlink for using the port of BSD's doas(1) as a drop-in replacement to sudo"
|
||||
arch=('any')
|
||||
url="https://github.com/slicer69/doas"
|
||||
license=('MIT')
|
||||
depends=('doas')
|
||||
provides=('sudo')
|
||||
conflicts=('sudo')
|
||||
|
||||
package() {
|
||||
install -d "$pkgdir"/usr/bin
|
||||
ln -s $(which doas) "$pkgdir"/usr/bin/sudo
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# dotfiles/scripts
|
||||
# Basic scripts to rebuild a system.
|
||||
# Usage:
|
||||
# bash README.txt arch
|
||||
|
||||
# packages/bootstrap - bare minimum programs. Necessary for system use.
|
||||
# Install these before running this script.
|
||||
|
||||
mkdir -p $HOME/bin # executables
|
||||
mkdir -p $HOME/src # source code
|
||||
|
||||
if [ $1 = "arch" ]; then
|
||||
sudo pacman -S $(cat packages/all packages/*arch_pacman*)
|
||||
|
||||
bash arch_yay.sh
|
||||
yay -S $(cat packages/*arch_yay*)
|
||||
|
||||
bash doas-sudo.sh arch
|
||||
# you can undo this with pacman -S sudo
|
||||
|
||||
elif [ $1 = "artix" ]; then
|
||||
sudo pacman -S $(cat packages/all packages/*artix_pacman*)
|
||||
|
||||
bash arch_yay.sh
|
||||
yay -S $(cat packages/*artix_yay*)
|
||||
|
||||
bash doas-sudo.sh arch
|
||||
# you can undo this with pacman -S sudo
|
||||
|
||||
elif [ $1 = "debian" ]; then
|
||||
|
||||
fi
|
||||
|
||||
bash dotfiles.sh
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
source ./cdecho.sh
|
||||
|
||||
YAYURL="https://aur.archlinux.org/yay.git"
|
||||
|
||||
cde $HOME/src
|
||||
git clone $YAYURL || printf "yay already downloaded\n"
|
||||
cde yay
|
||||
git pull
|
||||
makepkg -si
|
||||
yay -V
|
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
CC="$(which cc)"
|
||||
|
||||
which tcc >/dev/null
|
||||
|
||||
if [ -h "$CC" ]; then
|
||||
unlink "$CC"
|
||||
ln -s "$(which tcc)" "$CC"
|
||||
else
|
||||
printf "$0: \$(which cc), $(which cc), is not a symbolic link\n" >/dev/stderr
|
||||
exit 1
|
||||
fi
|
@ -1,4 +0,0 @@
|
||||
cde() {
|
||||
cd $1
|
||||
printf "Entered %s.\n" $(pwd)
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
which sh >/dev/null 2>&1 \
|
||||
|| exit 1
|
||||
|
||||
SH_LOCATION="$(which sh)"
|
||||
|
||||
[ -L "$SH_LOCATION" ] \
|
||||
|| exit 1
|
||||
|
||||
which dash >/dev/null 2>&1 \
|
||||
|| exit 1
|
||||
|
||||
unlink "$SH_LOCATION"
|
||||
|
||||
ln -s "$(which dash)" "$SH_LOCATION"
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
source ./cdecho.sh
|
||||
|
||||
if [ $1 = "arch" ]; then
|
||||
mkdir -p $HOME/src/doas-sudo
|
||||
cp PKGBUILD_doas-sudo $HOME/src/doas-sudo/PKGBUILD
|
||||
|
||||
cde $HOME/src/doas-sudo
|
||||
makepkg -si
|
||||
fi
|
@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# could be more succinct in places but it works
|
||||
|
||||
source ./cdecho.sh
|
||||
|
||||
# retrieve dotfiles
|
||||
cde $HOME/src
|
||||
git clone https://github.com/devenblake/dotfiles.git
|
||||
cde dotfiles
|
||||
|
||||
# unscii
|
||||
curl http://pelulamu.net/unscii/unscii-16-full.ttf -o $HOME/.local/share/fonts/unscii-16-full.ttf
|
||||
fc-cache
|
||||
|
||||
# basic configs
|
||||
cp {.Xresources,.aliases,.bashrc,.profile} $HOME/
|
||||
ln -s $HOME/.Xresources $HOME/.Xdefaults
|
||||
|
||||
# dmenu
|
||||
cde $HOME/src
|
||||
if [ git clone https://git.suckless.org/dmenu ]; then
|
||||
cde dmenu
|
||||
cp $HOME/dotfiles/src/dmenu/config.h ./
|
||||
make
|
||||
[ "Yes." = $(printf "No.\nYes." | ./dmenu -p "Install dmenu?") ] && sudo make install
|
||||
fi
|
||||
|
||||
# i3wm
|
||||
mkdir -p $HOME/.config/i3
|
||||
mkdir $HOME/.config/i3status
|
||||
cde $HOME/.config/
|
||||
cp $HOME/src/dotfiles/.config/i3/config i3/
|
||||
cp $HOME/src/dotfiles/.config/i3status/config i3status/
|
||||
|
||||
# winamp skin (checks to see if audacious is installed first)
|
||||
sudo mkdir -p /usr/share/audacious/Skins/
|
||||
which audacious && sudo curl https://archive.org/download/winampskin_Sailor_Moon_Gang/Sailor_Moon_Gang.wsz -o /usr/share/audacious/Skins/Sailor_Moon_Gang.wsz || printf "[ERROR] Could not curl audacious skin.\n"
|
||||
|
||||
# wallpaper
|
||||
cde $HOME
|
||||
mkdir -p $HOME/Pictures/Wallpapers
|
||||
curl https://ia801502.us.archive.org/3/items/asuka-98/Asuka%2098.jpg -o Pictures/Wallpapers/Asuka\ 98.jpg || printf "[ERROR] Could not curl wallpaper.\n"
|
||||
|
||||
xrdb -load .Xresources
|
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
SIC_C=$HOME/src/sic/sic.c
|
||||
cp "$SIC_C" ./
|
||||
|
||||
sed -e 's/No channel to send to/No channel to which to send./' -e '170s/sic/dsic/' <sic.c >dsic.c
|
||||
|
||||
diff sic.c dsic.c
|
||||
[ "$(printf "No.\nYes.\n" | dmenu -p "Write changes?")" = "Yes." ] && mv "$SIC_C" "$SIC_C".bak && mv dsic.c "$SIC_C"
|
@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
# icon fetcher
|
||||
# i made this script to fetch icons for my grandmother and put them in icons/
|
||||
# so i wouldn't have to fetch the icons for her desktop when i made her a new
|
||||
# system.
|
||||
# i could have downloaded all the icons and put them into a repo for her but
|
||||
# this uses less space
|
||||
|
||||
# all these icons are on the internet archive so if the local sites change
|
||||
# they'll still be available
|
||||
|
||||
icons_folder="~/Pictures/icons/"
|
||||
|
||||
! which curl && printf "$0: missing dependency: curl\n" >/dev/stderr && exit 1
|
||||
|
||||
mkdir -p "$icons_folder"
|
||||
cd "$icons_folder"
|
||||
|
||||
curl -o "989wclz.com.png" "https://web.archive.org/web/20200629174002if_/https://989wclz.com/wp-content/themes/wclz/img/touch-icon-144.png"
|
||||
curl -o "amazon.com.ico" "https://web.archive.org/web/20200718050400if_/https://www.amazon.com/favicon.ico"
|
||||
curl -o "bangordailynews.com.png" "http://web.archive.org/web/20200721195123if_/https://i0.wp.com/bdn-data.s3.amazonaws.com/uploads/2020/06/BDN-logo_green-3-1.png"
|
||||
curl -o "theguardian.com.png" "https://web.archive.org/web/20200720041457if_/https://assets.guim.co.uk/images/favicons/fee5e2d638d1c35f6d501fa397e53329/152x152.png"
|
||||
curl -o "centralmaine.com.png" "https://web.archive.org/web/20200720023956if_/https://multifiles.pressherald.com/uploads/sites/2/2014/06/apple-touch-icon-iphone-retina-display.png"
|
||||
curl -o "dictionary.com.png" "https://web.archive.org/web/20200719135458if_/https://www.dictionary.com/hp-assets/dcom_favicon-1bff2f1b49c077ed504e55c3649f2a4b.png"
|
||||
curl -o "google.com.jpg" "https://web.archive.org/web/20170621105937if_/https://yt3.ggpht.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAAAAAA/OixOH_h84Po/s900-c-k-no/photo.jpg"
|
||||
curl -o "longfellowsgreenhouses.com.jpg" "https://web.archive.org/web/20200718173559im_/https://longfellowsgreenhouses.com/wp-content/uploads/2020/03/Longfellows-Logo-Light-Green.jpg"
|
||||
curl -o "mainepublic.org.png" "https://d3kle7qwymxpcy.cloudfront.net/images/broadcasts/e5/8e/30457/1/c300.png"
|
||||
curl -o "news.google.com.png" "https://upload.wikimedia.org/wikipedia/commons/0/0b/Google_News_icon.png"
|
||||
curl -o "newscentermaine.com.png" "https://web.archive.org/web/20200721190548if_/https://www.newscentermaine.com/assets/favicons/WCSH.png?ver=2.4.7.4"
|
||||
curl -o "pressherald.com.png" "https://multifiles.pressherald.com/uploads/sites/4/2014/06/apple-touch-icon-iphone-retina-display.png"
|
||||
curl -o "weather.com.png" "https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/The_Weather_Channel_logo_2005-present.svg/1200px-The_Weather_Channel_logo_2005-present.svg.png"
|
@ -1,38 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
argv0="$0"
|
||||
argv1="$1"
|
||||
argv2="$2"
|
||||
|
||||
FILE_NAME="image.img.gz"
|
||||
COMPACT="gzip -c"
|
||||
EXTRACT="gzip -cd"
|
||||
|
||||
usage() {
|
||||
printf "Usage: $argv0 {save,deploy} [device]
|
||||
|
||||
Examples:
|
||||
$argv0 save /dev/sda1 # images installation at /dev/sda1
|
||||
$argv0 deploy /dev/sda # deploys saved image to /dev/sda
|
||||
|
||||
In-program constants (edit this script to change them):
|
||||
\$FILE_NAME - where to save/read the image
|
||||
\$COMPACT - command to compact the image (such as \"gzip -c\" to
|
||||
compress with gzip)
|
||||
\$EXTRACT - command to extract the image (such as \"gzip -cd\" to
|
||||
extract gzip)\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -n "$argv2" ] || usage
|
||||
|
||||
set -x
|
||||
|
||||
case "$argv1" in
|
||||
(save) $COMPACT <"$argv2" >"$FILE_NAME" ;;
|
||||
(deploy) $EXTRACT <"$FILE_NAME" >"$argv2" ;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -1,8 +0,0 @@
|
||||
Welcome to Trinity's Thinkpad X200T.
|
||||
|
||||
Unauthorized access is a violation of
|
||||
United States federal law according to
|
||||
the Computer Fraud and Abuse Act, 18
|
||||
USC Section 1030.
|
||||
|
||||
Mess with the best, die like the rest.
|
@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# builds and installs nmap 7.80 because the fucking pieces of shit that
|
||||
# maintain nmap decided to make 7.90+ NONFREE.
|
||||
# i do like nmap and i have nothing personal against the actual maintainers.
|
||||
# but come ON.
|
||||
|
||||
# anyway...
|
||||
|
||||
set -e
|
||||
|
||||
FILENAME="nmap-7.80.tar.bz2"
|
||||
ORIGINAL_DIST_BZ2="https://nmap.org/dist/nmap-7.80.tar.bz2"
|
||||
ARCHIVED_DIST_BZ2="http://web.archive.org/web/20200922062002/https://nmap.org/dist/nmap-7.80.tar.bz2"
|
||||
|
||||
cd $HOME/src
|
||||
|
||||
curl "$ORIGINAL_DIST_BZ2" >"$FILENAME" || curl "$ARCHIVED_DIST_BZ2" >"$FILENAME"
|
||||
|
||||
bzip2 -cd <"$FILENAME" | tar -x
|
||||
|
||||
# see, i could do complicated math to determine this based on the filename, or
|
||||
# i could hard-code this and let it error if i've inexplicably grabbed
|
||||
# nmap-7.8.1
|
||||
|
||||
cd "nmap-7.8.0"
|
||||
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
@ -1,45 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This is the place for the scripts that are a bit more involved than can be
|
||||
# expressed in shell aliases or functions, or that I want to access from dmenu.
|
||||
# These are pretty messy but most of them work. Pretty easy for bugs to hide in
|
||||
# here so I go in with pesticide often.
|
||||
|
||||
set -x
|
||||
mkdir -p $HOME/bin/oneliners || exit
|
||||
cd $HOME/bin/oneliners
|
||||
|
||||
SUDO=doas
|
||||
SHEBANG="#!/bin/sh\n"
|
||||
BASH_SHEBANG="#!/bin/bash\n"
|
||||
|
||||
DMENU_LINES="40"
|
||||
|
||||
# private bookmarks
|
||||
printf $SHEBANG'$BROWSER file://$HOME/bookmarks.html\n' >bmarks
|
||||
|
||||
# deemix
|
||||
printf $SHEBANG'python $HOME/src/deemix-pyweb/deemix-pyweb.py\n' >deemix
|
||||
|
||||
# settings for specific monitors
|
||||
printf $SHEBANG'xrandr --output HDMI-1 --auto --mode 720x480 --right-of LVDS-1\n' >1702
|
||||
printf $SHEBANG'xrandr --output VGA-1 --auto --right-of LVDS-1\n' >mv720
|
||||
|
||||
# more monitor settings
|
||||
printf $SHEBANG"xrandr --output HDMI-1 --off\n" >hdmioff
|
||||
printf $SHEBANG"xrandr --output VGA-1 --off\n" >vgaoff
|
||||
|
||||
# youtube-dl stuff
|
||||
printf $SHEBANG"youtube-dl --add-metadata -i -o \"$HOME/%%(upload_date)s %%(title)s.%%(ext)s\" \"\$@\"\n" >youtube-dlo
|
||||
printf $SHEBANG"youtube-dlo -f \"bestvideo[vcodec=vp9]+bestaudio[acodec=opus]\" \"\$@\"\n" >youtube-dlp
|
||||
printf $SHEBANG"youtube-dlp -f \$(youtube-dl -F \$1 | tail +4 | dmenu -p \"Choose a format.\" -l $DMENU_LINES | awk '{ print \$1 }') \"\$@\"\n" >youtube-dl-interactive
|
||||
printf $SHEBANG"youtube-dl-interactive \"\$@\" -o - | mpv -\n" >youtube-dl-mpv
|
||||
|
||||
# sxhkd
|
||||
printf $SHEBANG"cd '$HOME/.config/sxhkd/'
|
||||
cat sxhkdrc-base sxhkdrc-bspwm >sxhkdrc
|
||||
pkill sxhkd -USR1\n" >sxhkd-bspwm-reload
|
||||
|
||||
set +x
|
||||
|
||||
ls && [ $(printf "Yes.\nNo." | dmenu -p "Any risky files?") = "No." ] && printf "Making executable.\n" && chmod +x *
|
@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
mkdir -p $HOME/src
|
||||
cd $HOME/src
|
||||
git clone https://git.suckless.org/sic
|
||||
cd $HOME/src/dotfiles/scripts
|
||||
./dsic.sh # apply patches
|
@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
# creates an 8GB empty file in the root dir
|
||||
# that way when the alarm bells go off you can delete it to save a couple
|
||||
# minutes before the system really runs out of disk
|
||||
BS=512; COUNT=16777216 # 512 * 16777216 = 8GB
|
||||
! [ -e /spacer.img ] || return 1 || exit 1
|
||||
dd bs=$BS count=$COUNT </dev/zero >spacer.img
|
||||
$SUDO mv ./spacer.img /spacer.img
|
@ -1,74 +0,0 @@
|
||||
alsa-plugins-nice
|
||||
alsa-utils
|
||||
anki
|
||||
audacious
|
||||
curl
|
||||
dvdbackup
|
||||
ed
|
||||
feh
|
||||
ffmpeg
|
||||
gcc
|
||||
git
|
||||
gparted
|
||||
gperf
|
||||
gwenview
|
||||
htop
|
||||
inetutils
|
||||
iptables
|
||||
k3b
|
||||
kate
|
||||
kdenlive
|
||||
krita
|
||||
lame
|
||||
linux-headers
|
||||
lynx
|
||||
macchanger
|
||||
make
|
||||
man-pages
|
||||
mercurial
|
||||
moc
|
||||
moreutils
|
||||
mpv
|
||||
net-tools
|
||||
nmap
|
||||
p7zip
|
||||
pkgfile
|
||||
powertop
|
||||
progress
|
||||
pulseaudio
|
||||
pulseaudio-alsa
|
||||
pulseaudio-utils
|
||||
pulsemixer
|
||||
python3
|
||||
qbittorrent
|
||||
qemu
|
||||
rsync
|
||||
s-tui
|
||||
screen
|
||||
scrot
|
||||
sed
|
||||
smartmontools
|
||||
thunar
|
||||
thunderbird
|
||||
ttf-liberation
|
||||
tlp
|
||||
twin
|
||||
units
|
||||
unrar
|
||||
unzip
|
||||
util-linux
|
||||
vim
|
||||
virt-manager
|
||||
vlc
|
||||
wget
|
||||
wireguard-tools
|
||||
xclip
|
||||
xf86-input-libinput
|
||||
xf86-input-wacom
|
||||
xf86-video-intel
|
||||
xscreensaver
|
||||
xterm
|
||||
zathura
|
||||
zathura-cb
|
||||
zathura-djvu
|
||||
zathura-ps
|
@ -1,12 +0,0 @@
|
||||
build-base
|
||||
consolekit2
|
||||
dbus
|
||||
dbus-x11
|
||||
firefox
|
||||
libx11-dev
|
||||
libxft-dev
|
||||
libxinerama-dev
|
||||
neofetch
|
||||
tcc
|
||||
udev
|
||||
xorg-xserver
|
@ -1 +0,0 @@
|
||||
virtualbox-host-modules-arch
|
@ -1,7 +0,0 @@
|
||||
acpid
|
||||
acpid-openrc
|
||||
fuse-openrc
|
||||
iwd-openrc
|
||||
libvirt-openrc
|
||||
openresolv
|
||||
wireguard-openrc
|
@ -1,8 +0,0 @@
|
||||
bash
|
||||
coreutils
|
||||
ed
|
||||
gcc
|
||||
git
|
||||
less
|
||||
linux
|
||||
make
|
@ -1,35 +0,0 @@
|
||||
asp
|
||||
base-devel
|
||||
clisp
|
||||
cpupower
|
||||
dhcpcd
|
||||
firefox-developer-edition
|
||||
fuse2
|
||||
gvim
|
||||
i3status
|
||||
iputils
|
||||
iw
|
||||
iwd
|
||||
jre11-openjdk
|
||||
jre8-openjdk
|
||||
kimageformats
|
||||
libreoffice-fresh
|
||||
light
|
||||
ntfs-3g
|
||||
otf-ipafont
|
||||
pulseaudio-alsa
|
||||
pulseaudio-bluetooth
|
||||
python-pip
|
||||
qemu-arch-extra
|
||||
qt5-imageformats
|
||||
stalonetray
|
||||
ttf-dejavu
|
||||
vi
|
||||
which
|
||||
wireshark-cli
|
||||
xorg-server
|
||||
xorg-xauth
|
||||
xorg-xinit
|
||||
xorg-xrdb
|
||||
youtube-dl
|
||||
zathura-pdf-mupdf
|
@ -1,24 +0,0 @@
|
||||
aic94xx-firmware
|
||||
bitwarden
|
||||
bitwarden-cli
|
||||
bitwarden-dmenu
|
||||
dashbinsh
|
||||
discord_arch_electron
|
||||
doas
|
||||
freedownloadmanager
|
||||
google-chrome
|
||||
gzdoom
|
||||
i3-gaps
|
||||
i3-swallow
|
||||
instagram-scraper
|
||||
iwgtk
|
||||
lemonbar-git
|
||||
makebootfat
|
||||
minecraft-launcher
|
||||
mullvad-vpn-beta
|
||||
multimc5
|
||||
spotify
|
||||
steam
|
||||
tor-browser
|
||||
wd719x-firmware
|
||||
zoom
|
@ -1,2 +0,0 @@
|
||||
moon-buggy
|
||||
syncterm
|
@ -1,5 +0,0 @@
|
||||
build-essential
|
||||
fonts-dejavu
|
||||
libreoffice
|
||||
linux-tools-common
|
||||
linux-tools-generic
|
@ -1,27 +0,0 @@
|
||||
/* Licensed under the MIT/X Consortium license. For the full license details
|
||||
* see the file `licenses/DMENU` in my (Deven Blake's) dotfiles repository or
|
||||
* the file `LICENSE` in suckless's dmenu repository. */
|
||||
|
||||
static const char *colors[SchemeLast][2] = { /* { foreground, background } */
|
||||
[SchemeNorm] = { "#ff0000", "#000000" },
|
||||
[SchemeSel] = { "#ff0000", "#ffffff" },
|
||||
[SchemeOut] = { "#000000", "#ffffff" },
|
||||
};
|
||||
|
||||
/* default font */
|
||||
static const char *fonts[] = {
|
||||
"unscii:antialias=false:size=12",
|
||||
"monospace:size=10"
|
||||
};
|
||||
|
||||
/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
|
||||
static unsigned int lines = 0;
|
||||
|
||||
static const char *prompt = NULL;
|
||||
|
||||
/* if topbar == 0 it becomes a bottom bar */
|
||||
static int topbar = 1;
|
||||
|
||||
/* Characters not considered part of a word while deleting words
|
||||
* for example: " /?\"&[]" */
|
||||
static const char worddelimiters[] = " ";
|
Loading…
Reference in New Issue
Block a user