Compare commits
No commits in common. "08a46ed6916badad274373de615366381a250a44" and "d9e539b9ecb446319821dbe8b263441d0b2879a9" have entirely different histories.
08a46ed691
...
d9e539b9ec
16 changed files with 1648 additions and 48 deletions
14
README.md
14
README.md
|
@ -43,19 +43,19 @@ Enjoy!
|
|||
|
||||
![Overview - an older image of the dotfile desktop with gaps, showing git logs, styler logs, duckduckgo in a browser, and a vifm view of the dotfiles themselves](https://gitlab.com/marty-oehme/dotfiles/-/wikis/uploads/aaf0319d575dc192ea0f4bd6eaf83c08/gaps.png)
|
||||
|
||||
* [`alacritty`](https://github.com/jwilm/alacritty) - Terminal emulator (GPU accelerated and customizable)
|
||||
* [`wayland`](https://github.com/wayland-project/wayland) - Containing basics for fully functional tiling wayland setup:
|
||||
* [`river`](https://github.com/riverwm/river) - Tiling window manager for wayland
|
||||
* [`waybar`](https://github.com/Alexays/Waybar) - Easily customizable statusbar for wayland
|
||||
* [`bemenu`](https://github.com/Cloudef/bemenu) - Extended dmenu replacement for wayland, X11 and ncurses
|
||||
* [`fontconfig`] - System-wide font replacements and styling settings
|
||||
* [`kitty`](https://sw.kovidgoyal.net/kitty/) - Terminal emulator (GPU accelerated and configurable)
|
||||
* [`tmux`](https://github.com/tmux/tmux/) - terminal multiplexer
|
||||
* [`nvim`](https://neovim.io/) - Neovim configuration
|
||||
* [`vifm`](https://github.com/vifm/vifm) - vim-like file-manager
|
||||
* [`qutebrowser`](https://github.com/qutebrowser/qutebrowser) - vim-key enabled web browser
|
||||
* [`pass`](pass/README.md) - Password management suite
|
||||
* [`bibtex`](bibtex/README.md) - LateX/BibteX/pandoc plaintext writing & reference suite
|
||||
* [`git`](git/README.md) - distributed version control system.
|
||||
* [`pass`](pass/README.md) - Password management suite
|
||||
* [`nvim`](https://neovim.io/) - Neovim configuration
|
||||
* [`bibtex`](bibtex/README.md) - LateX/BibteX/pandoc plaintext writing & reference suite
|
||||
* [`qutebrowser`](https://github.com/qutebrowser/qutebrowser) - vim-key enabled web browser
|
||||
* [`tmux`](https://github.com/tmux/tmux/) - terminal multiplexer
|
||||
* [`vifm`](https://github.com/vifm/vifm) - vim-like file-manager
|
||||
|
||||
## Notes
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
acpid
|
||||
activitywatch-bin
|
||||
afew
|
||||
alacritty
|
||||
alias-tips-git
|
||||
alsa-utils
|
||||
an2linuxserver-git
|
||||
|
@ -172,6 +173,7 @@ speedtest-cli
|
|||
sshfs
|
||||
stow
|
||||
surfraw
|
||||
sxhkd
|
||||
sxiv
|
||||
systemd-sysvcompat
|
||||
task
|
||||
|
@ -222,7 +224,6 @@ devour
|
|||
htop
|
||||
jrnl
|
||||
khard
|
||||
kitty
|
||||
mopidy-autoplay
|
||||
mopidy-iris
|
||||
mopidy-local
|
||||
|
|
|
@ -11,12 +11,10 @@ from qutebrowser.config.configfiles import ConfigAPI # noqa: F401
|
|||
# load additional settings configured via autoconfig.yml
|
||||
config.load_autoconfig()
|
||||
|
||||
term = os.getenv("TERMINAL", "xterm")
|
||||
|
||||
c.completion.web_history.max_items = 1000
|
||||
c.hints.uppercase = True
|
||||
c.editor.command = [
|
||||
term,
|
||||
"alacritty",
|
||||
"-e",
|
||||
"nvim",
|
||||
"-f",
|
||||
|
@ -28,7 +26,7 @@ c.editor.command = [
|
|||
# change filepicker
|
||||
c.fileselect.handler = "external"
|
||||
picker = [
|
||||
term,
|
||||
"alacritty",
|
||||
"--class",
|
||||
"float",
|
||||
"-e",
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
[Unit]
|
||||
Description=Terminal window hidden to be called at any point
|
||||
Description=Alacritty window hidden on i3 scratchpad
|
||||
Requires=x-started-confirm.service
|
||||
After=x-started-confirm.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
# workaround to allow relative executable invocation (i.e. current users' home dir)
|
||||
ExecStart=/bin/bash -c 'kitty --title "dropdown-terminal" --class scratchpad'
|
||||
ExecStart=/bin/bash -c 'alacritty --title "dropdown-terminal" --class Alacritty,scratchpad'
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
[Unit]
|
||||
Description=Todo.md hidden vim instance
|
||||
Description=Todo.md floating vim instance
|
||||
Requires=x-started-confirm.service
|
||||
After=x-started-confirm.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
# workaround to allow relative executable invocation (i.e. current users' home dir)
|
||||
ExecStart=/bin/bash -c 'kitty --title "dropdown-todo" --class scratchpad nvim -c ":set nonumber norelativenumber noshowmode noruler laststatus=0 noshowcmd shortmess=F | :Limelight" %h/documents/records/todo.md'
|
||||
ExecStart=/bin/bash -c 'alacritty --title "dropdown-todo" --class "Alacritty,scratchpad" -e nvim -c ":set nonumber norelativenumber noshowmode noruler laststatus=0 noshowcmd shortmess=F | :Limelight" %h/documents/records/todo.md'
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
|
|
|
@ -62,12 +62,12 @@ As another example, if you want to check for changes every 30 seconds but still
|
|||
|
||||
## Dropdown services
|
||||
|
||||
The `dropdown-terminal.service` is very simple, and always keeps a terminal window running.
|
||||
The `dropdown-terminal.service` is very simple, and always keeps a (`alacritty`) terminal window running.
|
||||
The program is started with a `scratchpad` class, which is picked up by [`i3`](i3) and automatically hidden.
|
||||
You can then show/hide the terminal as a floating overlay as you need, mimicking a floating terminal
|
||||
(by default with `super + shift + return`, though this may change).
|
||||
When you close the window in any way, systemd automatically restarts it in the background.
|
||||
|
||||
The `dropdown-todo.service` is similar but instead of an empty terminal window,
|
||||
The `dropdown-todo.service` is similar but instead of an empty (`alacritty`) terminal window,
|
||||
it starts up a `nvim` instance which hides most of its interface and shows a to-do list.
|
||||
The list, by default, is situated in `~/documents/records/todo.md` and can be displayed with `super + t`.
|
||||
|
|
|
@ -25,7 +25,7 @@ export BIBFILE="${BIBFILE:-$LIBRARYROOT/academia/academia.bib}"
|
|||
# these are my personal 'important' application settings
|
||||
export EDITOR="nvim"
|
||||
export BROWSER="qutebrowser"
|
||||
export TERMINAL="kitty"
|
||||
export TERMINAL="alacritty"
|
||||
export PAGER="less"
|
||||
|
||||
export FILEREADER="zathura"
|
||||
|
|
7
sxhkd/.config/sxhkd/chain-labels.example.conf
Normal file
7
sxhkd/.config/sxhkd/chain-labels.example.conf
Normal file
|
@ -0,0 +1,7 @@
|
|||
# for sxhkd-chain-labels script
|
||||
|
||||
# media manipulation mode: playing, pausing, skipping,..
|
||||
media:alt + m
|
||||
|
||||
# academia mode: opening bibtex readings, annotating,..
|
||||
academia:alt + a
|
103
sxhkd/.config/sxhkd/sxhkdrc
Normal file
103
sxhkd/.config/sxhkd/sxhkdrc
Normal file
|
@ -0,0 +1,103 @@
|
|||
# universal x key bindings
|
||||
|
||||
# System functionality
|
||||
|
||||
# Enable lock screen (TODO does not stop music, etc yet)
|
||||
super + x
|
||||
lockscreen
|
||||
|
||||
# Open System Power Menu
|
||||
super + BackSpace
|
||||
rofi -modi "powermenu:~/.config/rofi/modes/powermenu" -show powermenu -theme themes/powermenu -selected-row 2
|
||||
|
||||
# quick-switching of theme using styler
|
||||
super + F8
|
||||
styler set $(styler list themes | rofi -dmenu -theme /themes/dropdown -matching fuzzy -filter "-256 -atelier ")
|
||||
|
||||
super + F7
|
||||
polybar-msg cmd toggle
|
||||
|
||||
# enable function (/media) key functionality
|
||||
XF86MonBrightness{Up,Down}
|
||||
control-brightness {up, down} 10
|
||||
XF86AudioMute
|
||||
control-volume mute
|
||||
XF86Audio{LowerVolume,RaiseVolume}
|
||||
control-volume {down, up}
|
||||
|
||||
XF86Search
|
||||
~/.local/share/qutebrowser/userscripts/qutedmenu
|
||||
# dunstctl set-paused toggle && echo "$(dunstctl is-paused)" > /tmp/dunstpaused
|
||||
|
||||
# Open terminal emulator (the variable gets set in sh module basic env vars)
|
||||
super + Return
|
||||
$TERMINAL
|
||||
|
||||
# open quick start menu
|
||||
super + space
|
||||
rofi -show drun -theme themes/dmenu
|
||||
|
||||
# open more extensive run menu
|
||||
super + shift + space
|
||||
rofi -modi combi,ssh -show combi -combi-modi "window,clipboard:greenclip print,run" -theme themes/dropdown
|
||||
|
||||
# open dropdown calculator -- top left (small r), bottom right (capital R)
|
||||
super + { r, shift + r }
|
||||
rofi -modi calc -show calc -location { 1, 5 }
|
||||
|
||||
# open gopass frontend menu
|
||||
super + shift + p
|
||||
rofi-pass -theme themes/dropdown
|
||||
|
||||
# open surfraw rofi frontend
|
||||
super + shift + q
|
||||
rofi-surfraw
|
||||
|
||||
# insert emojis into any document/form
|
||||
super + shift + e
|
||||
rofimoji
|
||||
|
||||
super + shift + u
|
||||
alacritty --class floating,floating -e sharefile | xargs notify-send
|
||||
|
||||
# invoke qutebrowser userscript to open link (from history/marks)
|
||||
super + shift + o
|
||||
qutedmenu
|
||||
|
||||
## modes
|
||||
|
||||
# mode:media:alt + m
|
||||
# seek +/- 5 seconds
|
||||
alt + m : {h,l}
|
||||
playerctl position {5-,5+}
|
||||
# seek +/- 15 seconds
|
||||
alt + m : shift + {h,l}
|
||||
playerctl position {15-,15+}
|
||||
# decrease/increase volume
|
||||
alt + m : {j,k}
|
||||
pulsemixer --change-volume {-5,+5}
|
||||
# decrease/increase volume
|
||||
alt + m : shift + {j,k}
|
||||
playerctl {next,previous}
|
||||
# pause/stop player
|
||||
alt + m : {_,shift} + p
|
||||
playerctl {play-pause,stop}
|
||||
# exit mode
|
||||
alt + m : alt + m
|
||||
pkill -ALRM sxhkd
|
||||
|
||||
# mode:academia:alt + a
|
||||
# due papers this week
|
||||
alt + a : {F1,F2}
|
||||
rofi-bib-due -p{1,3} -u $(date --date='fri this week' +%Y-%m-%d)
|
||||
# due papers overall
|
||||
alt + a : shift + {F1,F2}
|
||||
rofi-bib-due -p{1,3}
|
||||
alt + a : F3
|
||||
rofi-bib-due
|
||||
# read wallabag articles from the cmdline
|
||||
alt + a : {r, shift+r}
|
||||
alacritty --class floating,floating -e wallr {-n,_}
|
||||
# exit mode
|
||||
alt + a : alt + a
|
||||
pkill -ALRM sxhkd
|
196
sxhkd/.local/bin/sxhkd-chain-labels
Executable file
196
sxhkd/.local/bin/sxhkd-chain-labels
Executable file
|
@ -0,0 +1,196 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# output is to stdout unless explicitly set through -o or env var
|
||||
OUTPUTF="$SXHKD_OUTPUTF"
|
||||
|
||||
# set fifo input file, according (somewhat) to xdg
|
||||
if [ -n "$SXHKD_FIFO" ]; then
|
||||
FIFO="$SXHKD_FIFO"
|
||||
elif [ -p "${XDG_RUNTIME_DIR}"/sxhkd_fifo ]; then
|
||||
FIFO="${XDG_RUNTIME_DIR}"/sxhkd_fifo
|
||||
elif [ -p "${XDG_CACHE_HOME:-$HOME/.cache}"/sxhkd_fifo ]; then
|
||||
FIFO="${XDG_CACHE_HOME:-$HOME/.cache}"/sxhkd_fifo
|
||||
elif [ -p "$HOME/.sxhkd_fifo" ]; then
|
||||
FIFO="$HOME/.sxhkd_fifo"
|
||||
fi
|
||||
|
||||
# set label config file, according (somewhat) to xdg
|
||||
if [ -n "$SXHKD_LABELCONFIG" ]; then
|
||||
LABELCONFIG="$SXHKD_LABELCONFIG"
|
||||
elif [ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/sxhkd/chain-labels.conf ]; then
|
||||
LABELCONFIG="${XDG_CONFIG_HOME:-$HOME/.config}"/sxhkd/chain-labels.conf
|
||||
elif [ -f "$HOME/.chain-labels.conf" ]; then
|
||||
LABELCONFIG="$HOME/.chain-labels.conf"
|
||||
fi
|
||||
|
||||
SXHKDRC_FILE="$XDG_CONFIG_HOME"/sxhkd/sxhkdrc
|
||||
|
||||
main() {
|
||||
while read -r event; do
|
||||
detect_event "$event"
|
||||
done <"$FIFO"
|
||||
}
|
||||
|
||||
detect_event() {
|
||||
ev="$(echo "$1" | sed -e 's/^H.*$/hotkey/;s/^C.*$/command/;s/^BBegin chain.*$/chainstart/;s/^EEnd chain.*$/chainend/;')"
|
||||
|
||||
case $ev in
|
||||
hotkey) ev_hotkey "$(echo "$1" | sed -e 's/^H//')" ;;
|
||||
# command) ev_command "$(echo "$1" | sed -e 's/^C//')" ;;
|
||||
chainstart) ev_chainstart "$(echo "$1" | sed -e 's/^B//')" ;;
|
||||
chainend) ev_chainend "$(echo "$1" | sed -e 's/^E//')" ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
send_msg() {
|
||||
if [ -n "$OUTPUTF" ]; then
|
||||
echo "$1" >"$OUTPUTF"
|
||||
else
|
||||
echo "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
ev_hotkey() {
|
||||
LAST_HOTKEY="$1"
|
||||
}
|
||||
|
||||
# compare labels to last hotkey, return mode name
|
||||
ev_chainstart() {
|
||||
[ -z "$LAST_HOTKEY" ] && return 1
|
||||
found=$(echo "$LABELS" | sed -e "/$LAST_HOTKEY/!d;s/^\(.\+\):.*$/\1/")
|
||||
send_msg "$found"
|
||||
}
|
||||
|
||||
ev_chainend() {
|
||||
send_msg ""
|
||||
}
|
||||
|
||||
# TODO add option to also display last command done in chain
|
||||
# ev_command() {
|
||||
# send_msg "command: $1"
|
||||
# }
|
||||
|
||||
# read config from file, remove comments (lines starting with #) and empty lines
|
||||
read_config() {
|
||||
[ ! -f "$1" ] && return 1
|
||||
|
||||
parse_labels "$(cat "$1")"
|
||||
}
|
||||
|
||||
# parse sxhkdrc for mode compatible comments
|
||||
read_sxhkdrc() {
|
||||
[ ! -f "$1" ] && return 1
|
||||
|
||||
_sxhkdrc_content="$(sed -e '/^# mode:/!d;s/^# mode://' <"$1")"
|
||||
parse_labels "$_sxhkdrc_content"
|
||||
}
|
||||
|
||||
# append
|
||||
parse_labels() {
|
||||
LABELS="${LABELS}$(echo "$1" | sed -e '/^#/d;/^[[:blank:]]*$/d')"
|
||||
}
|
||||
|
||||
get_help() {
|
||||
printf \
|
||||
"Usage: sxhkd-chain-labels [-c config file][-o output file][-s input pipe]
|
||||
|
||||
By default will take the input from the input pipe (at XDG_RUNTIME_DIR/sxhkd_fifo) and
|
||||
print the current sxhkd chain mode to stdout. That means, sxhkd needs to be started
|
||||
with a fifo pipe running, ideally to the XDG_RUNTIME_DIR:
|
||||
|
||||
mkfifo \$XDG_RUNTIME_DIR/sxhkd_fifo && sxhkd -s \$XDG_RUNTIME_DIR/sxhkd_fifo
|
||||
|
||||
When given a key combination which maps to a specific mode, it will print out the name
|
||||
of the mode instead. These maps can be passed with -c flag, specifying an options file.
|
||||
By default it will look in \$XDG_CONFIG_HOME/sxhkd/sxhkd-chain-labels.conf
|
||||
|
||||
When passed the -o flag it will replace the contents of the file passed in with the
|
||||
current sxhkd chain mode, emptying the file when no mode is active.
|
||||
|
||||
Default lookup places for files, in descending order:
|
||||
:input fifo
|
||||
\$SXHKD_FIFO (env variable)
|
||||
\$XDG_RUNTIME_DIR/sxhkd_fifo
|
||||
\$XDG_CACHE_HOME/sxhkd_fifo
|
||||
~/.cache/sxhkd_fifo
|
||||
~/.sxhkd_fifo
|
||||
|
||||
:label configuration
|
||||
\$SXHKD_LABELCONFIG (env variable)
|
||||
\$XDG_CONFIG_HOME/sxhkd/chain-labels.conf
|
||||
~/.config/sxhkd/chain-labels.conf
|
||||
~/.chain-labels.conf
|
||||
\$XDG_CONFIG_HOME/sxhkd/sxhkdrc (parsing)
|
||||
|
||||
The label configuration file uses the following format:
|
||||
mode name:key chain
|
||||
|
||||
Lines beginning with a # will be ignored. Whitespace is important, sxhkd will, by
|
||||
default, put a single space between any component of the key combination.
|
||||
|
||||
An example file chain-labels.conf:
|
||||
media:super + alt + m
|
||||
system:super + backspace
|
||||
|
||||
Instead of using an explicit configuration file, you can put the chain mode
|
||||
information into the regular sxhkdrc as comments. They need to follow this exact format:
|
||||
# mode:mode-name:key-chain
|
||||
|
||||
They can occur anywhere in the file. The space between # and mode is necessary, and #
|
||||
needs to be the first character on the line.
|
||||
The above example file as written into the sxhkdrc:
|
||||
# mode:media:super + alt + m
|
||||
# mode:system:super + backspace
|
||||
|
||||
If an explicit configuration file exists, it will supersede any mode information in the
|
||||
sxhkdrc file.
|
||||
\n"
|
||||
}
|
||||
|
||||
get_version() {
|
||||
printf \
|
||||
"%s: 0.3
|
||||
|
||||
fifo input pipe:
|
||||
%s %s
|
||||
label configuration file:
|
||||
%s %s
|
||||
output:
|
||||
%s \n" \
|
||||
"$0" \
|
||||
"$FIFO" \
|
||||
"$([ -p "$FIFO" ] && echo "(found)" || echo "(NOT FOUND)")" \
|
||||
"${LABELCONFIG:-"$SXHKDRC_FILE"}" \
|
||||
"$([ -f "${LABELCONFIG:-"$SXHKDRC_FILE"}" ] && echo "(found)" || echo "(NOT FOUND)")" \
|
||||
"${OUTPUTF:-stdout}"
|
||||
}
|
||||
|
||||
while getopts "vho:s:c:" opt; do
|
||||
case "$opt" in
|
||||
\?)
|
||||
printf "Usage: sxhkd-chain-labels [-c config file][-o output file][-s input pipe]\n"
|
||||
exit 0
|
||||
;;
|
||||
h)
|
||||
get_help
|
||||
exit 0
|
||||
;;
|
||||
v)
|
||||
get_version
|
||||
exit 0
|
||||
;;
|
||||
o) OUTPUTF="$OPTARG" ;;
|
||||
s) FIFO="$OPTARG" ;;
|
||||
c) LABELCONFIG="$OPTARG" ;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
[ "${1:-}" = "--" ] && shift
|
||||
|
||||
# look for default label config, prefer config file to parsing sxhkdrc
|
||||
[ -z "$LABELS" ] && read_config "$LABELCONFIG"
|
||||
[ -z "$LABELS" ] && read_sxhkdrc "$SXHKDRC_FILE"
|
||||
|
||||
main "$@"
|
32
sxhkd/.local/bin/sxhkd-piped
Executable file
32
sxhkd/.local/bin/sxhkd-piped
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env bash
|
||||
# Starting sxhkd without arguments automatically creates
|
||||
# a fifo pipe in XDG_RUNTIME_DIR, to enable IPC for sxhkd.
|
||||
# Mostly used for sxhkd-chain-labels script.
|
||||
|
||||
type sxhkd >/dev/null 2>&1 || {
|
||||
return 1
|
||||
}
|
||||
|
||||
# get the complete path to sxhkd to avoid
|
||||
# recursion later on
|
||||
PROG="$(type sxhkd)"
|
||||
PROG="${PROG##* }"
|
||||
|
||||
FIFO="$XDG_RUNTIME_DIR"/sxhkd_fifo
|
||||
|
||||
args="$*"
|
||||
# create a fifo and start sxhkd with it
|
||||
sxhkd() {
|
||||
exist "$PROG" critical
|
||||
|
||||
if [[ "$args" = *"-s"* ]]; then
|
||||
"$PROG" "$@"
|
||||
else
|
||||
[ -e "$FIFO" ] && rm "$FIFO"
|
||||
|
||||
mkfifo "$FIFO"
|
||||
"$PROG" -s "$FIFO" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
sxhkd "$@"
|
46
sxhkd/README.md
Normal file
46
sxhkd/README.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
# sxhkd
|
||||
|
||||
[sxhkd](https://github.com/baskerville/sxhkd) -- simple X hotkey daemon
|
||||
|
||||
sxhkd is set up to manage most of the key bindings in this dotfile configuraition. It is primarily used for three things: system control, to invoke rofi, and to switch between different desktop operating modes.
|
||||
|
||||
## system control
|
||||
|
||||
* super+x: lock the system, i.e. put a lockscreen in front of it, unlocked with your password
|
||||
* media keys: control the Brightness, Volume, Mute of the system
|
||||
* super+return: open a terminal
|
||||
|
||||
## rofi invocations
|
||||
|
||||
* super+backspace: system management (shutdown,reboot,logout,..)
|
||||
* super+space: app launching
|
||||
* super+r: extended run menu
|
||||
* super+p: password/secret autofill menu
|
||||
* super+F8: theme setting menu
|
||||
* super+q: quick access to bookmarks and search bangs
|
||||
|
||||
## modal desktop
|
||||
|
||||
The modal setup of this desktop allows to first invoke an operating mode and then open the possibility for additional keybindings.
|
||||
For example, `alt + m` will invoke the `media` mode and then media playback can be controlled through the hjkl keys.
|
||||
Think of it like invoking the insert mode, or visual mode in a modal editor like vim.
|
||||
|
||||
The idea behind the modal system is to not overload normal system operation with key binds that are only needed every now and again, and mostly as a coherent package.
|
||||
If I want to control my media playback, by seeking forward or backward, having quick access to controlling the volume seems logical.
|
||||
But I may not want to open a scholarly pdf, or programming project at the same time, so these actions don't need to be included in a coherent 'media' mode.
|
||||
|
||||
The modes currently are:
|
||||
|
||||
* media, for controlling playback and volume
|
||||
* academia, for opening pdf, seeing upcoming readings, and editing references
|
||||
|
||||
They are still in flux and may change every now and again as I put this modal setup to the test. To get a closer look at the actual key binds, look into `.config/sxhkd/sxhkdrc` for now.
|
||||
|
||||
## modal notifications
|
||||
|
||||
To know which mode is currently active on the desktop, this module includes a script which will print sxhkd's current mode to stdout, or a file.
|
||||
This script can be used to show the active mode in a status bar, for example (as the polybar module in these dotfiles does).
|
||||
|
||||
The script lives in `.local/bin/sxhkd-chain-labels` and can be invoked from the path by default. To see available options and the configuration file format use `sxhkd-chain-labels -h`, or take look at the script itself.
|
||||
|
||||
This module overwrites the usual sxhkd program invocation using an alias, which makes sxhkd always (if no options are passed) create and use a named pipe in the XDG_RUNTIME_DIR directory. This is the default location the script will pick it up in.
|
|
@ -348,6 +348,37 @@ set classify+=' ::*.doc,,*.docx::, ::*.xls,,*.xls[mx]::, ::*.pptx,,*.pp
|
|||
" You can also add %CLEAR if you want to clear screen before running FUSE
|
||||
" program.
|
||||
|
||||
|
||||
fileviewer *.pdf
|
||||
\ vifm-sixel pdf %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
fileviewer *.epub
|
||||
\ vifm-sixel epub %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
fileviewer <video/*>
|
||||
\ vifm-sixel video %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
fileviewer <image/*>
|
||||
\ vifm-sixel draw %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
fileviewer <audio/*>
|
||||
\ vifm-sixel audio %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
fileviewer <font/*>
|
||||
\ vifm-sixel font %pw %ph %c %pd
|
||||
\ %pc
|
||||
\ vifm-sixel clear
|
||||
|
||||
" Pdf
|
||||
filextype *.pdf
|
||||
\ { view as rich file }
|
||||
|
@ -392,9 +423,6 @@ filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
|||
fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
||||
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
|
||||
\*.as[fx]
|
||||
\ tput cup %py %px > /dev/tty && ffmpeg -y -hide_banner -loglevel panic -i %c -ss 00:00:01.000 -vframes 1 /tmp/tempfile.jpg > /dev/null && kitty +kitten icat --transfer-mode=file --place=%pwx%ph@%pxx%py /tmp/tempfile.jpg %N
|
||||
\ %pc
|
||||
\ kitty +kitten icat --transfer-mode=file --place=%pwx%ph@%pxx%py --clear %N,
|
||||
\ ffprobe -pretty %c 2>&1
|
||||
|
||||
" Web
|
||||
|
@ -419,9 +447,9 @@ filextype *.gif
|
|||
\ {Loop}
|
||||
\ mpv --loop=inf %f %i &,
|
||||
fileviewer *.gif
|
||||
\ kitty +kitten icat --silent --transfer-mode=stream --place=%pwx%ph@%pxx%py %c %N
|
||||
\ vifmimg draw %px %py %pw %ph %c
|
||||
\ %pc
|
||||
\ kitty +kitten icat --clear --silent %pd
|
||||
\ vifmimg clear
|
||||
|
||||
" Images
|
||||
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
|
@ -434,9 +462,9 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
|||
\ {View in gpicview}
|
||||
\ gpicview %c,
|
||||
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
||||
\ kitty +kitten icat --silent --transfer-mode=stream --place=%pwx%ph@%pxx%py %c %N
|
||||
\ vifmimg draw %px %py %pw %ph %c
|
||||
\ %pc
|
||||
\ kitty +kitten icat --clear --silent %pd
|
||||
\ vifmimg clear
|
||||
|
||||
" OpenRaster
|
||||
filextype *.ora
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"return-type": "json",
|
||||
"exec": "~/.config/waybar/modules/archupdates 5 json",
|
||||
"interval": 3600,
|
||||
"on-click": "kitty --class float topgrade"
|
||||
"on-click": "alacritty --class float -e topgrade"
|
||||
},
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
|
@ -45,8 +45,8 @@
|
|||
"warning": 50,
|
||||
"critical": 80
|
||||
},
|
||||
"on-click": "kitty --class float top",
|
||||
"on-click-right": "kitty --class float glances"
|
||||
"on-click": "alacritty --class float -e top",
|
||||
"on-click-right": "alacritty --class float -e glances"
|
||||
},
|
||||
"custom/events": {
|
||||
"format": "{}",
|
||||
|
@ -115,7 +115,7 @@
|
|||
"tooltip-format-ethernet": "{ifname} ",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"max-length": 50,
|
||||
"on-click": "kitty --class float nmtui",
|
||||
"on-click": "alacritty --class float -e nmtui",
|
||||
// "on-click-right": "sudo rfkill toggle wlan"
|
||||
},
|
||||
"pulseaudio": {
|
||||
|
@ -132,7 +132,7 @@
|
|||
"default": ["", ""]
|
||||
},
|
||||
"scroll-step": 1,
|
||||
"on-click": "kitty --class float pulsemixer",
|
||||
"on-click": "alacritty --class float -e pulsemixer",
|
||||
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +1%",
|
||||
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -1%"
|
||||
},
|
||||
|
@ -146,7 +146,7 @@
|
|||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}° ",
|
||||
"format": "{temperatureC}° ",
|
||||
"on-click": "kitty --class float watch sensors"
|
||||
"on-click": "alacritty --class float -e watch sensors"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
|
|
|
@ -11,16 +11,7 @@ This is only a very work-in-progress README file.
|
|||
|
||||
Since wayland handles key presses and so on completely differently
|
||||
from X,
|
||||
I can't for example use sxhkd anymore which is a shame.
|
||||
|
||||
On the other hand, there is an amazing key *re* binding tool
|
||||
(which also works under X I've now found out)
|
||||
`keyd` which takes care of some X functionality (xcape) at a lower level.
|
||||
|
||||
I have not found a good replacement for `clutter`
|
||||
(which automatically hides your mouse cursor after inactivity)
|
||||
which is independent from the window manager.
|
||||
I believe `swaywm` would include similar functionality, but `river` does not.
|
||||
I can't for example use sxhkd which is a shame.
|
||||
|
||||
## Missing
|
||||
|
||||
|
@ -31,7 +22,7 @@ not set up:
|
|||
* [x] extensive run menu (clipboard, open windows) -- rofi on X
|
||||
* [x] clipboard manager
|
||||
* [x] pass frontend dropdown -- clipboard and xdotool
|
||||
* [x] investigate [wtype](https://github.com/atx/wtype) over ydotool
|
||||
* [ ] investigate [wtype](https://github.com/atx/wtype) over ydotool
|
||||
* [x] file uploading (works but without url clipboard)
|
||||
* [x] open_download (qutebrowser script)
|
||||
* [x] gap regulation
|
||||
|
@ -43,19 +34,18 @@ not set up:
|
|||
* [x] styler
|
||||
* still works as before, only less programs respect xresources settings
|
||||
* works even for foot, if I want to switch to it
|
||||
* [x] need to set it up for waybar
|
||||
* [ ] need to set it up for waybar
|
||||
* [ ] dropdown terminal and dropdown todo
|
||||
* [ ] rofimoji emoji dropdown -- clipboard
|
||||
* [ ] show current mode
|
||||
* [-] hide cursor
|
||||
* [x] dropdown calculator -- rofi on X -- could use `qalc` directly
|
||||
* [-] dropdown calculator -- rofi on X -- could use `qalc` directly
|
||||
* [-] modes: media, academia (worth?)
|
||||
* [x] picture in terminal, a-la ueberzug
|
||||
* [-] picture in terminal, a-la ueberzug
|
||||
* ueberzug is X only
|
||||
* there is sixel rendering for foot, st, xterm, urxvt
|
||||
* alacritty does *not* support sixel rendering [yet](https://github.com/alacritty/alacritty/issues/910), see also [existing sixel implementation](https://github.com/betaboon/alacritty/tree/graphics).
|
||||
* We have sixel support enabled in vifm and foot. It is very wonky, however.
|
||||
* Switched to kitty terminal for image support instead
|
||||
|
||||
|
||||
### undecided
|
||||
|
|
1199
zsh/.config/zsh/.p10k._zsh
Normal file
1199
zsh/.config/zsh/.p10k._zsh
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue