aboutsummaryrefslogtreecommitdiff
path: root/dotfiles
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles')
-rwxr-xr-xdotfiles/.config/bemenurc2
-rw-r--r--dotfiles/.config/mutt/muttrc5
-rw-r--r--dotfiles/.config/sway/config22
-rwxr-xr-xdotfiles/.config/sxiv/exec/key-handler76
-rw-r--r--dotfiles/.config/vimb/config49
-rw-r--r--dotfiles/.config/vimb/style.css25
-rw-r--r--dotfiles/.config/zsh/.zshrc6
-rw-r--r--dotfiles/.config/zsh/shortcuts11
-rwxr-xr-xdotfiles/.local/bin/menuman60
-rwxr-xr-xdotfiles/.local/bin/menuwebsurf21
-rwxr-xr-xdotfiles/.local/bin/menuworkspace12
-rwxr-xr-xdotfiles/.local/bin/workspace40
12 files changed, 267 insertions, 62 deletions
diff --git a/dotfiles/.config/bemenurc b/dotfiles/.config/bemenurc
index a05d7b2..9f4f283 100755
--- a/dotfiles/.config/bemenurc
+++ b/dotfiles/.config/bemenurc
@@ -22,4 +22,4 @@ BEMENU_HF="#151517"
## command for the terminal application to be used:
TERMINAL_CMD="terminal -e"
-BEMENU_MONITOR="-1"
+BEMENU_MONITOR="-2"
diff --git a/dotfiles/.config/mutt/muttrc b/dotfiles/.config/mutt/muttrc
index 207f7c4..b7c6935 100644
--- a/dotfiles/.config/mutt/muttrc
+++ b/dotfiles/.config/mutt/muttrc
@@ -20,6 +20,8 @@ set forward_quote # include message in forwards
set reverse_name # reply as whomever it was to
set include # include message in replies
set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
+shutdown-hook 'echo `killall -43 waybar`'
+unignore x-spam-status
auto_view text/html # automatically show html (mailcap uses lynx)
auto_view application/pgp-encrypted
#set display_filter = "tac | sed '/\\\[-- Autoview/,+1d' | tac" # Suppress autoview messages.
@@ -55,7 +57,7 @@ bind pager,browser gg top-page
bind pager,browser G bottom-page
bind index,pager,browser \CD half-down
bind index,pager,browser \CU half-up
-bind index,pager S sync-mailbox
+bind index,pager s sync-mailbox
bind index,pager R group-reply
bind index \031 previous-undeleted # Mouse wheel
bind index \005 next-undeleted # Mouse wheel
@@ -75,6 +77,7 @@ macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>printf 'Enter a search term to find with notmuch: '; read x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
#macro index A "<limit>all\n" "show all messages (undo limit)"
macro index,pager A ";<save-message>=Archive<enter>" "archive mail"
+macro index,pager S ";<save-message>=Spam<enter>" "send mail to spam"
# Sidebar mappings
set sidebar_visible = yes
diff --git a/dotfiles/.config/sway/config b/dotfiles/.config/sway/config
index 47a2e74..f440c0b 100644
--- a/dotfiles/.config/sway/config
+++ b/dotfiles/.config/sway/config
@@ -6,7 +6,7 @@
set $mod Mod4
set $alt Mod1
set $term foot
-set $browser qutebrowser
+set $browser `$BROWSER`
# set default desktop layout (default is tiling)
# workspace_layout tabbed <stacking|tabbed>
@@ -54,7 +54,11 @@ exec_always {
##### Startup scripts and programs #####
# Waybar
exec waybar_launch
-# music daemon
+# Audio
+exec pipewire
+exec pipewire-media-session
+exec pipewire-pulse
+# Music daemon
exec mpd
# Bluetooth adapter applet
exec_always blueman-applet
@@ -97,10 +101,6 @@ no_focus [title="mpvfloat"]
# Dropdown-like windows
-# VK Messenger
-for_window [instance="vk" window_role="browser-window"] floating enable, sticky enable
-# for_window [class="VK"] move scratchpad
-
# Telegram Desktop
for_window [app_id="telegramdesktop"] floating enable, sticky enable
# for_window [class="TelegramDesktop"] move scratchpad
@@ -171,9 +171,10 @@ bindsym --to-code {
$mod+Ctrl+Shift+space exec "makoctl restore"
# Start Applications
- $mod+Shift+w exec $browser
- $mod+Ctrl+w exec chromium -enable-features=UseOzonePlatform -ozone-platform=wayland
+ $mod+Shift+w exec menuwebsurf
+ $mod+Ctrl+w exec menuwebsurf paste
$mod+F1 exec menuman
+ $mod+Shift+F1 exec menuman -s
$mod+F2 exec menumako
$mod+F3 exec menudisplay
$mod+F4 exec menublk
@@ -184,16 +185,15 @@ bindsym --to-code {
$mod+s exec "xway steam"
$mod+m exec $term ncmpcpp
$mod+n exec $term -T "newsboat" newsboat && killall -42 waybar
- $mod+a exec $term -T "aerc" aerc
+ $mod+a exec $term -T "neomutt" neomutt
$mod+o exec notistats
$mod+c exec camtoggle
$mod+grave exec menuemoji
- $mod+Ctrl+grave exec menuwebsurf
- $mod+Shift+grave exec menuwebsurf paste
$mod+apostrophe exec menupass
$mod+Shift+apostrophe exec "menupass -l"
$mod+Ctrl+apostrophe exec "menupass -f"
$mod+Ctrl+Shift+apostrophe exec "menupass -s"
+ $mod+backslash exec "menuworkspace"
# Network management
$mod+Shift+c exec togglevpn
diff --git a/dotfiles/.config/sxiv/exec/key-handler b/dotfiles/.config/sxiv/exec/key-handler
index 17abf60..f20a143 100755
--- a/dotfiles/.config/sxiv/exec/key-handler
+++ b/dotfiles/.config/sxiv/exec/key-handler
@@ -9,39 +9,47 @@ rotate() {
esac
}
+if [ "$1" = "t" ]; then
+ while read file; do
+ files="$(printf "%s\n%s" "$files" "$file")"
+ done
+ dragon-drag-and-drop -a $files
+ exit 0
+fi
+
while read file; do
- case "$1" in
- "C-a" | "C-1")
- setbg "$file"
- exit ;;
- "C-2")
- setbg "$file" "2"
- exit ;;
- "C-s")
- setbglblur "$file"
- exit ;;
- "C-d")
- setbglsimple "$file"
- exit ;;
- "C-c")
- wl-copy < "$file"
- exit ;;
- "C-f")
- wl-copy "$file"
- exit ;;
- "C-r")
- # Move file to 'trash' directory, if the current directory's name is
- # JPEG, remove the NEF file as well
- dir="$(dirname "$file")"
- name="$(basename "$file")"
- base="${name%.*}"
- mv "$file" ~/.local/trash/
- if [ "JPEG" = "$(basename $dir)" ]; then
- mv $(dirname "$dir")/"$base".NEF ~/.local/trash/
- fi
- exit ;;
- "C-comma") rotate 270 $file ;;
- "C-period") rotate 90 $file ;;
- "C-slash") rotate 180 $file ;;
- esac
+ case "$1" in
+ "C-a" | "C-1")
+ setbg "$file"
+ exit ;;
+ "C-2")
+ setbg "$file" "2"
+ exit ;;
+ "C-s")
+ setbglblur "$file"
+ exit ;;
+ "C-d")
+ setbglsimple "$file"
+ exit ;;
+ "C-c")
+ wl-copy < "$file"
+ exit ;;
+ "C-f")
+ wl-copy "$file"
+ exit ;;
+ "C-r")
+ # Move file to 'trash' directory, if the current directory's name is
+ # JPEG, remove the NEF file as well
+ dir="$(dirname "$file")"
+ name="$(basename "$file")"
+ base="${name%.*}"
+ mv "$file" ~/.local/trash/
+ if [ "JPEG" = "$(basename $dir)" ]; then
+ mv $(dirname "$dir")/"$base".NEF ~/.local/trash/
+ fi
+ exit ;;
+ "C-comma") rotate 270 $file ;;
+ "C-period") rotate 90 $file ;;
+ "C-slash") rotate 180 $file ;;
+ esac
done
diff --git a/dotfiles/.config/vimb/config b/dotfiles/.config/vimb/config
new file mode 100644
index 0000000..29f07e2
--- /dev/null
+++ b/dotfiles/.config/vimb/config
@@ -0,0 +1,49 @@
+#set home-page=https://srx.yaroslavps.com/
+set home-page=about:blank
+
+set download-path=~/dls
+
+set editor-command=foot nvim %s
+
+set input-autohide=true
+
+set spell-checking=true
+set spell-checking-languages=en,es,ru
+
+set webgl=true
+
+set incsearch=true
+
+set default-font=monospace
+
+shortcut-add s=https://srx.yaroslavps.com/search?q=$0
+shortcut-add d=http://dict.cc/?s=$0
+shortcut-add y=http://www.youtube.com/results?search_query=$0
+shortcut-add duck=https://duckduckgo.com/?q=$0
+
+shortcut-default s
+
+nmap + zI
+nmap - zO
+nmap = zz
+
+set hint-keys-same-length=true
+set hint-keys=asdfghjkl
+set hint-timeout=0
+
+set x-hint-command=:sh! xdg-open <C-R>;
+
+set geolocation=never
+
+set cookie-accept=origin
+
+# GUI color settings
+# Color scheme: Base16 Eighties (https://github.com/chriskempson/base16)
+set completion-css=color:#6d974b;background-color:#151517;font:10pt monospace;
+set completion-hover-css=color:#6d974b;background-color:#232328;font:10pt monospace;
+set completion-selected-css=color:#6d974b;background-color:#515151;font:10pt monospace;
+set input-css=color:#6d974b;background-color:#393939;font:10pt monospace;
+set input-error-css=color:#b73030;background-color:#393939;font:10pt monospace;
+set status-css=color:#faf6e5;background-color:#393939;font:10pt monospace;
+set status-ssl-css=color:#99cc99;background-color:#393939;font:10pt monospace;
+set status-ssl-invalid-css=color:#f2777a;background-color:#393939;font:10pt monospace;
diff --git a/dotfiles/.config/vimb/style.css b/dotfiles/.config/vimb/style.css
new file mode 100644
index 0000000..3e3d0b4
--- /dev/null
+++ b/dotfiles/.config/vimb/style.css
@@ -0,0 +1,25 @@
+/* Hint mode color styling
+ *
+ * The precedence of the user style is lower than that of the website so you
+ * have to mark your style definition to have higher priority.
+ */
+span[vimbhint^='label'] {
+ background-color: #5b8277 !important;
+ border: 0 !important;
+ color: #151517 !important;
+ font: bold 10pt monospace !important;
+ opacity: 1 !important;
+ padding: .1em .4em !important;
+ text-transform: uppercase !important;
+}
+span[vimbhint='label focus'] {
+ font: bold 13pt monospace !important;
+}
+*[vimbhint^='hint'] {
+ background-color: #e6e3d6 !important;
+ color: #151517 !important;
+}
+*[vimbhint='hint focus'] {
+ background-color: #e2b55a !important;
+ color: #151517 !important;
+}
diff --git a/dotfiles/.config/zsh/.zshrc b/dotfiles/.config/zsh/.zshrc
index 727bfe0..ad70614 100644
--- a/dotfiles/.config/zsh/.zshrc
+++ b/dotfiles/.config/zsh/.zshrc
@@ -38,6 +38,12 @@ bindkey -M menuselect 'L' vi-forward-char
bindkey -M menuselect 'J' vi-down-line-or-history
bindkey -v '^?' backward-delete-char
+# History search
+bindkey "^[[A" history-beginning-search-backward
+bindkey "^[[B" history-beginning-search-forward
+bindkey -a "k" history-beginning-search-backward
+bindkey -a "j" history-beginning-search-forward
+
# Change cursor shape for different vi modes.
function zle-keymap-select {
if [[ ${KEYMAP} == vicmd ]] ||
diff --git a/dotfiles/.config/zsh/shortcuts b/dotfiles/.config/zsh/shortcuts
index 9ec350c..199faee 100644
--- a/dotfiles/.config/zsh/shortcuts
+++ b/dotfiles/.config/zsh/shortcuts
@@ -29,9 +29,9 @@ alias spw="setsid $TERMINAL >/dev/null 2>&1 &"
alias testinet="ping -c2 example.com"
# Fuzzy finder
-alias fzd='cd "$(find . -type d | fzf || echo ".")"'
-alias fzv='nvim $(find . -type f | fzf)'
-alias fzo='op $(find . -type f | fzf)'
+alias fzd='cd "$(find . -type d -path "*/\.*" -prune -o -not -name ".*" -type d | fzf || echo ".")"'
+alias fzv='nvim "$(find . -type d -path "*/\.*" -prune -o -not -name ".*" -type f | fzf)"'
+alias fzo='op "$(find . -type d -path "*/\.*" -prune -o -not -name ".*" -type f | fzf)"'
# Function for changing working dir after exiting lf
lfcd () {
@@ -68,6 +68,11 @@ alias yta="youtube-dl --add-metadata -xic" # Download only audio
alias YT="youtube-viewer"
alias starwars="telnet towel.blinkenlights.nl"
+# git
+gitcc () {
+ git clone "$(wl-paste --no-newline)"
+}
+
# Audio and Music
alias mute="lmc mute"
alias vu="lmc up"
diff --git a/dotfiles/.local/bin/menuman b/dotfiles/.local/bin/menuman
index acad4c4..98efc02 100755
--- a/dotfiles/.local/bin/menuman
+++ b/dotfiles/.local/bin/menuman
@@ -1,19 +1,67 @@
#!/bin/sh
# Search and open man page
+# Options:
+# -t use in terminal with fzf otherwise launch bemenu.
+# -s search with apropos.
-list="$(man -k . | awk '{ print $1$2 }')"
+# Source settings from .bemenurc
+. ~/.config/bemenurc
-if [ "$1" = "-t" ]; then
- chosen=$(printf "$list" | fzf)
+issearch=
+isterminal=
+
+printusage() {
+ echo "Options:" >&2
+ echo " -t use in terminal with fzf otherwise launch bemenu." >&2
+ echo " -s search with apropos." >&2
+}
+
+while getopts "st" curopt "$@"; do
+ case "$curopt" in
+ "s")
+ issearch=1
+ continue;;
+ "t")
+ isterminal=1
+ continue;;
+ "?")
+ printusage
+ exit 1;;
+ esac
+done
+
+if [ ! -z "$issearch" ]; then
+ if [ ! -z "$isterminal" ]; then
+ printf "Enter query:\t"
+ read query
+ else
+ query="$(echo "" | bemenu -p "Enter apropos query:" -i --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")"
+ fi
+ if [ -z "$query" ]; then
+ echo "Empty query" >&2
+ exit 1
+ fi
+ list="$(apropos "$query")"
else
- # Source settings from .bemenurc
- . ~/.config/bemenurc
+ list="$(man -k . | awk '{ print $1$2 }')"
+fi
- chosen=$(printf "$list" | bemenu -p "Select man page:" -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")
+if [ ! -z "$isterminal" ]; then
+ chosen=$(printf "$list" | fzf)
+else
+ chosen=$(printf "$list" | bemenu -p "Select man page:" -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")
fi
if [ -z "$chosen" ]; then
exit 0
fi
+if [ ! -z "$issearch" ]; then
+ chosen="$(printf "$chosen" | sed "s/\(.* ([a-zA-Z0-9]*)\)\s*-.*/\1/")"
+fi
+
+if [ ! -z "$isterminal" ]; then
+ man "$chosen" && exit
+fi
+
$TERMINAL -T "man $chosen" man $chosen
diff --git a/dotfiles/.local/bin/menuwebsurf b/dotfiles/.local/bin/menuwebsurf
index bef9890..9e1a7a9 100755
--- a/dotfiles/.local/bin/menuwebsurf
+++ b/dotfiles/.local/bin/menuwebsurf
@@ -5,18 +5,27 @@
# Source settings from .bemenurc
. ~/.config/bemenurc
-prompt="🌐"
+searchurl="https://srx.yaroslavps.com/search?q="
# Have to use this "hack" because bemenu doesn't know how to paste
if [ "$1" = "paste" ]; then
- prompt="$(wl-paste)"
+ prompt="$(wl-paste)"
+else
+ qmarks="$HOME/.config/qutebrowser/quickmarks"
+ hist="$HOME/.local/share/qutebrowser/history.sqlite"
+ prompt="$(sqlite3 -separator ' ' "$hist" \
+ 'select title, url from CompletionHistory' |
+ cat "$qmarks" -)"
fi
-choice=$(echo "$prompt" | bemenu -i -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") || exit 1
+choice=$(printf "%s" "$prompt" |
+ bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") || exit 1
-if [ "$choice" = "🌐" ]; then
- $BROWSER
+if echo "$choice" | egrep ".*://.*" >/dev/null 2>&1; then
+ choice="$(echo "$choice" | sed -E 's/[^ ]+ +//g' |
+ grep -E "https?:" || echo "$choice")"
+ mimeo "$choice"
else
- mimeo "$choice"
+ $BROWSER "$choice"
fi
diff --git a/dotfiles/.local/bin/menuworkspace b/dotfiles/.local/bin/menuworkspace
new file mode 100755
index 0000000..7d947d0
--- /dev/null
+++ b/dotfiles/.local/bin/menuworkspace
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Open a "workspace" (see workspace) from a list of dirs under home
+
+# Source settings from .bemenurc
+. ~/.config/bemenurc
+
+# All dirs under home, except ones under hidden dirs
+dirs="$(find $HOME -type d -path "*/\.*" -prune -o -not -name ".*" -type d)"
+
+workspace "$(echo "$dirs" |
+ bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")"
diff --git a/dotfiles/.local/bin/workspace b/dotfiles/.local/bin/workspace
new file mode 100755
index 0000000..bfc2357
--- /dev/null
+++ b/dotfiles/.local/bin/workspace
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# Yaroslav de la Peña Smirnov 2021
+#
+# A quick script to quickly open several terminal windows, in a layout that I
+# often use, all in the specified directory. The layout looks something like
+# this:
+#
+# ┌──────────────────┬──────────────────────────────────────────────┐
+# │ │ │
+# │ │ │
+# │ lf │ │
+# │ │ │
+# │ │ │
+# ├──────────────────┤ │
+# │ │ shell │
+# │ │ │
+# │ │ │
+# │ shell │ │
+# │ │ │
+# │ │ │
+# │ │ │
+# └──────────────────┴──────────────────────────────────────────────┘
+
+if [ -z "$1" ]; then
+ echo "Specify working directory"
+ exit 1
+fi
+
+swaymsg "gaps inner current set 0; gaps outer current set 0"
+
+cd "$1"
+setsid $TERMINAL -a "$TERMINAL lf:$1" "lf" >/dev/null 2>&1 & sleep 0.1
+setsid $TERMINAL -a "$TERMINAL edit:$1" >/dev/null 2>&1 & sleep 0.1
+
+sleep 0.2
+swaymsg "[app_id=\"$TERMINAL lf:$1\"] focus; resize set width 27ppt; split v"
+setsid $TERMINAL >/dev/null 2>&1 & sleep 0.2
+swaymsg "resize set height 60ppt" && sleep 0.1
+swaymsg "[app_id=\"$TERMINAL edit:$1\"] focus"