diff --git a/bootstrap/packages.tsv b/bootstrap/packages.tsv index 2dc2f6c..7f23193 100644 --- a/bootstrap/packages.tsv +++ b/bootstrap/packages.tsv @@ -24,8 +24,7 @@ bash-bats Bash Automated Testing System R bash-completion Programmable completion for the bash shell R bash-language-server Bash language server implementation based on Tree Sitter and its grammar for Bash R bat Cat clone with syntax highlighting and git integration R -bearssl Implementation of the SSL/TLS protocol (RFC 5246) written in C A -beets Flexible music library manager and tagger R +bearssl Implementation of the SSL/TLS protocol (RFC 5246) written in C R bibclean BibTeX and Scribe bibliography prettyprinter and syntax checker A biber A Unicode-capable BibTeX replacement for biblatex users R bibtool A tool for manipulating BibTeX files R @@ -60,10 +59,12 @@ enca Charset analyser and converter R entr Run arbitrary commands when files change R evince Document viewer (PDF, PostScript, XPS, djvu, dvi, tiff, cbr, cbz, cb7, cbt) R exa ls replacement R +exfat-utils Utilities for exFAT file system R fasd Command-line productivity booster, offers quick access to files and directories R fd Simple, fast and user-friendly alternative to find R ffmpegthumbnailer Lightweight video thumbnailer that can be used by file managers R firefox Standalone web browser from mozilla.org R +fonts-cjk Linux 下的免费商用字体包 A fvextra Extensions to fancyvrb, including automatic line breaking and improved math mode R fwupd Simple daemon to allow session software to update firmware R fzf-tab-git Replace zsh's default completion selection menu with fzf. R @@ -73,6 +74,7 @@ gimp GNU Image Manipulation Program R git-lfs Git extension for versioning large files R gitea-tea-git Painless self-hosted Git service.. A gitlint Git commit message linter A +gitui Blazing fast terminal-ui for git written in Rust R gk6x-bin Configure keys, macros, and lighting on GK6X keyboards (GK64, GK84, GK61, etc) A glances CLI curses-based monitoring tool R glfw-wayland A free, open source, portable framework for graphical application development (wayland) R @@ -93,7 +95,6 @@ gstreamer-vaapi Multimedia graph framework - vaapi plugin R gucharmap Gnome Unicode Charmap R haveged Entropy harvesting daemon using CPU timings R heimdall Tool suite used to flash firmware (ROMs) onto Samsung Galaxy S devices R -hplip Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet R htop Interactive process viewer R hugo Fast and Flexible Static Site Generator in Go R iftop Display bandwidth usage on an interface R @@ -130,6 +131,7 @@ luacheck A tool for linting and static analysis of Lua code R lutris Open Gaming Platform R ly TUI display manager A lynx A text browser for the World Wide Web R +maestral Open-source Dropbox client A maim Utility to take a screenshot using imlib2 R man-db A utility for reading man pages R man-pages Linux man pages R @@ -137,6 +139,7 @@ masterpdfeditor-free A complete solution for creation and editing PDF files - Fr mbsync-git free (GPL) mailbox synchronization program A mermaid-cli Generation of diagram and flowchart from text in a similar manner as markdown (CLI) A mimeo Open files by MIME-type or file name using regular expressions. A +minidlna A DLNA/UPnP-AV Media server (aka ReadyDLNA) R minio-client Replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage R mopidy-iris A Mopidy Web client that utilizes the Spotify and EchoNest frameworks. (Formerly Spotmop) A mopidy-local Mopidy extension for local media playback A @@ -226,7 +229,6 @@ screen Full-screen window manager that multiplexes a physical terminal R sfz A simple static file server A shellcheck-bin Shell script analysis tool (binary release, static) A shfmt Format shell programs R -siggo A terminal gui for signal-cli, written in Go. A slurp Select a region in a Wayland compositor R speedtest-cli Command line interface for testing internet bandwidth using speedtest.net R sshfs FUSE client based on the SSH File Transfer Protocol R @@ -242,19 +244,19 @@ texlab A cross-platform implementation of the Language Server Protocol for LaTeX thermald The Linux Thermal Daemon program from 01.org R tigervnc Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC. R timew Timewarrior, A command line time tracking application R -tllocalmgr-git A shell and command-line utility to manage TeXLive on Arch Linux A tlp Linux Advanced Power Management R tmux A terminal multiplexer R toilet free replacement for the FIGlet utility. A tomb Crypto Undertaker, a simple tool to manage encrypted storage R -toot a Mastodon CLI client A topgrade Invoke the upgrade procedure of multiple package managers R +translate-shell A command-line interface and interactive shell for Google Translate R transmission-qt Fast, easy, and free BitTorrent client (Qt GUI) R ttf-brill Brill Typeface by John Hudson for Brill Publishing House A ttf-comic-neue Comic Neue aspires to be the casual script choice for everyone including the typographically savvy. A ttf-heuristica A serif latin & cyrillic font, derived from the "Adobe Utopia" font by Apanov A ttf-iosevka-nerd Typeface family designed for coding, terminal use and technical documents (Nerd Fonts) R ttf-signika Sans-serif typeface from Google by Anna Giedryś A +tut A TUI for Mastodon with vim inspired keys A typescript-language-server-bin Language server implementation for JavaScript / TypeScript A udiskie Removable disk automounter using udisks R ufw Uncomplicated and easy to use CLI tool for managing a netfilter firewall R @@ -275,7 +277,7 @@ virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R visidata Terminal spreadsheet multitool for discovering and arranging data R vulkan-intel Intel's Vulkan mesa driver R wavemon Ncurses-based monitoring application for wireless network devices R -waybar-git Highly customizable Wayland bar for Sway and Wlroots based compositors (GIT) A +waybar Highly customizable Wayland bar for Sway and Wlroots based compositors R waylock A simple screenlocker for wayland compositors R wdisplays GUI display configurator for wlroots compositors A wev tool for debugging wayland events, similar to xev A @@ -288,6 +290,7 @@ wtype xdotool type for wayland R xdg-user-dirs Manage user directories like ~/Desktop and ~/Music R xsv A CLI for indexing, slicing, analyzing, splitting and joining CSV files R yaml-language-server-bin Language server implementation for YAML files and optional schema support A +yarn Fast, reliable, and secure dependency management R youtube-dl A command-line program to download videos from YouTube.com and a few more sites R yt-dlp-git A youtube-dl fork with additional features and fixes (git) A ytfzf A posix script to find and watch youtube videos from the terminal. (Without API) A @@ -295,6 +298,7 @@ zathura-cb Adds comic book support to zathura R zathura-djvu DjVu support for Zathura R zathura-pdf-mupdf PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS) R zotero Zotero Standalone. Is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources. A +zq Tooling for super-structured data A zsh-autosuggestions Fish-like autosuggestions for zsh R zsh-completions-git Additional completion definitions for Zsh A zsh-fast-syntax-highlighting-git Optimized and extended zsh-syntax-highlighting R diff --git a/qutebrowser/.config/qutebrowser/config.py b/qutebrowser/.config/qutebrowser/config.py index bb24bd7..925e392 100644 --- a/qutebrowser/.config/qutebrowser/config.py +++ b/qutebrowser/.config/qutebrowser/config.py @@ -53,6 +53,8 @@ c.tabs.background = True c.tabs.title.format = "{index} {audio}{perc}{current_title}" c.tabs.position = "right" c.tabs.width = "15%" +c.tabs.show = "multiple" +c.statusbar.show = "always" c.colors.webpage.bg = "#555555" diff --git a/qutebrowser/.config/qutebrowser/maps.py b/qutebrowser/.config/qutebrowser/maps.py index e3daae5..56061d3 100644 --- a/qutebrowser/.config/qutebrowser/maps.py +++ b/qutebrowser/.config/qutebrowser/maps.py @@ -38,7 +38,7 @@ config.bind("", "rl-yank", mode="command") # toggles ('cycles') between tabs always showing, or only when switching between them config.bind( leader + "tt", - "config-cycle -t tabs.show always switching ;; config-cycle -t statusbar.show always in-mode", + "config-cycle -t tabs.show multiple switching ;; config-cycle -t statusbar.show always in-mode", ) config.bind(leader + "th", "set tabs.position bottom") config.bind(leader + "tH", "set tabs.position top") diff --git a/qutebrowser/.config/qutebrowser/url.py b/qutebrowser/.config/qutebrowser/url.py index a35101c..3e8b367 100644 --- a/qutebrowser/.config/qutebrowser/url.py +++ b/qutebrowser/.config/qutebrowser/url.py @@ -36,6 +36,8 @@ redirects = { "www.twitter.com": "nitter.net", "instagram.com": "bibliogram.art", "www.instagram.com": "bibliogram.art", + "wikipedia.org": "wikiless.org", + "en.wikipedia.org": "wikiless.org", } diff --git a/scripts/.local/bin/bemenu-translate b/scripts/.local/bin/bemenu-translate new file mode 100755 index 0000000..13ea606 --- /dev/null +++ b/scripts/.local/bin/bemenu-translate @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# bemenu-translate + +# A very simple bemenu wrapper script for translate-shell. +# +# Displays a bemenu into which user can enter their phrase +# and any options they want to pass to translate-shell. +# Subsequently opens a second prompt with the results. +# If phrase is entered and then Alt+1 instead of Enter pressed +# will show the 'brief', often only one-word single-translation +# results instead. +# +# Some useful commandline options for translate shell are e.g.: +# `de: Wort` -> to translate 'from' German +# `:es horse` -> to translate 'to' Spanish +# and both can be combined as well `de:es Pferd`. +# But of course many more possibilities exist, see +# translate-shell help. + +input=$(echo " " | bemenu -p "Alt+1 for brief mode| Translate>") +exit_code="$?" + +if [ -z "$input" ]; then + exit 0 +fi + +case "$exit_code" in +1) exit 0 ;; +0) + output=$(echo "$input" | xargs trans -j -no-ansi) + ;; +10) + output=$(echo "$input" | xargs trans -j -no-ansi -b) + ;; +esac + +chosen=$(echo "$output" | bemenu -p "Translation:" -w -l 100) + +if [ -n "$chosen" ] && exist clip; then + clip "$chosen" +fi diff --git a/taskwarrior/.config/sh/alias.d/taskwarrior.sh b/taskwarrior/.config/sh/alias.d/taskwarrior.sh index 4003051..3567a8b 100644 --- a/taskwarrior/.config/sh/alias.d/taskwarrior.sh +++ b/taskwarrior/.config/sh/alias.d/taskwarrior.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -alias taskopen='taskopen -c ${XDG_CONFIG_HOME:-~/.config}/task/taskopenrc' +alias taskopen='taskopen --config=${XDG_CONFIG_HOME:-~/.config}/task/taskopenrc' # invoking t starts the task shell # passing arguments along passes them straight through to taskwarrior instead diff --git a/taskwarrior/.config/task/taskopenrc b/taskwarrior/.config/task/taskopenrc index 6914f3f..7b5466d 100644 --- a/taskwarrior/.config/task/taskopenrc +++ b/taskwarrior/.config/task/taskopenrc @@ -1,71 +1,10 @@ -#BROWSER='xdg-open $FILE &>/dev/null' -#EDITOR='vim' -#FILE_CMD='xdg-open' -TASKBIN='task' +[General] +taskbin = task +path_ext = /usr/share/taskopen/scripts -# If you sync tasks NOTES_FOLDER should be a location that syncs and is available to -# other computers, i.e. /users/dropbox/tasknotes -# NOTES_FOLDER to store notes in, must already exist! -NOTES_FOLDER="$XDG_DATA_HOME/task/notes/" +[Actions] +notes.regex = "Note" +notes.command = "$EDITOR ${XDG_DATA_HOME:-~/.local/share}/task/notes/$UUID.txt" -# Preferred extension for tasknotes -NOTES_EXT=".md" - -# Path to notes file. UUID will be replaced with the actual uuid of -# the task. If NOTES_CMD -# Default is: ${NOTES_FOLDER}UUID${NOTES_EXT} -#NOTES_FILE="$HOME/tasknotes/UUID.txt" - -# Command that opens notes. UUID will be replaced with the actual uuid of -# the task. -# Default is: $EDITOR $NOTES_FILE -#NOTES_CMD="vim "$HOME/tasknotes/$UUID.txt"" - -# Specify the default sorting. -# Default is taskwarrior's default sorting, i.e. sorting by task IDs. -#DEFAULT_SORT="urgency-,label,annot" - -# Apply a default taskwarrior filter in order to exclude certain tasks. -# Default is: status.is:pending -#DEFAULT_FILTER= - -# Default command for '-i' -# Default is: ls -la -#DEFAULT-i="ls -la" - -# Add some paths to the taskopen's PATH variable -#PATH_EXT=/path/to/taskopen/scripts -PATH_EXT=/usr/share/taskopen/scripts - -# Regular expression that referes to the NOTES_FILE. -# Default is: Notes -NOTES_REGEX="Note" - -# Regular expression that identifies annotations openable by BROWSER. -# Default is: www|http -#BROWSER_REGEX="www|http" - -# Regular expression that identifies file paths in annotations. Will be opened by xdg-open. -# Default is: \.|\/|~ -#FILE_REGEX="\.|\/|~" - -# Regular expression that identifies a text annotation. Automatically triggers raw edit mode like '-r'. -#TEXT_REGEX=".*" - -# Custom regular expression that specifies annotations passed to CUSTOM1_CMD, e.g: -#CUSTOM1_REGEX="Message-[Ii][Dd]:|message:" -#CUSTOM1_CMD="muttjumpwrapper" - -# Custom regular expression that specifies annotations passed to CUSTOM2_CMD. -#CUSTOM2_REGEX="" -#CUSTOM2_CMD="" - -# Execute an arbitrary command if there is no annotation available. The corresponding taskwarrior IDs will -# be passed as arguments, e.g. "addnote 21 42" -#NO_ANNOTATION_HOOK=addnote - -# Make additional taskwarrior attributes available as sort keys and environment variables. -# E.g. TASK_ATTRIBUTES="project,tags" allows to sort by "task_project" or "task_tags" and to use -# "$TASK_PROJECT" or "$TASK_TAGS" within your (custom) commands. -#TASK_ATTRIBUTES="" +[CLI] diff --git a/tmux/.config/tmux/sessions/social.session b/tmux/.config/tmux/sessions/social.session index 6d06ea2..c81074b 100644 --- a/tmux/.config/tmux/sessions/social.session +++ b/tmux/.config/tmux/sessions/social.session @@ -1,8 +1,10 @@ -rename-window news +rename-window mail +send-keys "neomutt" C-m +new-window -n news send-keys "newsboat" C-m +split-window -h +send-keys "tut" C-m new-window -n matrix send-keys "gomuks" C-m new-window -n signal send-keys "siggo" C-m -new-window -n mail -send-keys "neomutt" C-m diff --git a/vifm/.config/vifm/vifmrc b/vifm/.config/vifm/vifmrc index cca1ebb..5483da3 100644 --- a/vifm/.config/vifm/vifmrc +++ b/vifm/.config/vifm/vifmrc @@ -456,6 +456,14 @@ filextype *.ora \ {Edit in MyPaint} \ mypaint %f, +" tabular data +filextype *.csv + \ {Open with visidata} + \ vd %f, +fileviewer *.csv + \ xsv sample 100 %c | xsv table -c8 -p1 -w1, + " \ {cat %c | sed -e 's/,,/, ,/g' | column -s, -t | less -#5 -N -S; } + " Mindmap filextype *.vym \ {Open with VYM} diff --git a/wayland/.config/river/init b/wayland/.config/river/init index 1ab3919..ee0b9cd 100755 --- a/wayland/.config/river/init +++ b/wayland/.config/river/init @@ -59,6 +59,9 @@ riverctl map normal $mod+Shift R spawn "$term --class float -e qalc" # Open emoji picker riverctl map normal $mod+Shift E spawn "bemoji -t" +# Open translation helper +riverctl map normal $mod+Shift T spawn "bemenu-translate" + # Desktop theming # shellcheck disable=SC2016 riverctl map normal $mod+Shift S spawn 'styler set $(styler list themes | bemenu)' @@ -146,20 +149,20 @@ riverctl map normal $mod+Shift Comma send-to-output previous # set up 10 tags (with '0' opening the 10th one) for i in $(seq 0 9); do - tags=$((1 << (i - 1))) - if [ "$i" -eq 0 ]; then tags=$((1 << 9)); fi + tags=$((1 << (i - 1))) + if [ "$i" -eq 0 ]; then tags=$((1 << 9)); fi - # Mod+[1-9] to focus tag [0-8] - riverctl map normal $mod "$i" set-focused-tags $tags + # Mod+[1-9] to focus tag [0-8] + riverctl map normal $mod "$i" set-focused-tags $tags - # Mod+Shift+[1-9] to tag focused view with tag [0-8] - riverctl map normal $mod+Shift "$i" set-view-tags $tags + # Mod+Shift+[1-9] to tag focused view with tag [0-8] + riverctl map normal $mod+Shift "$i" set-view-tags $tags - # Mod+Ctrl+[1-9] to toggle focus of tag [0-8] - riverctl map normal $mod+Control "$i" toggle-focused-tags $tags + # Mod+Ctrl+[1-9] to toggle focus of tag [0-8] + riverctl map normal $mod+Control "$i" toggle-focused-tags $tags - # Mod+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view - riverctl map normal $mod+Shift+Control "$i" toggle-view-tags $tags + # Mod+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view + riverctl map normal $mod+Shift+Control "$i" toggle-view-tags $tags done # focus all tags @@ -171,22 +174,22 @@ riverctl map normal $mod+Shift equal set-view-tags $all_tags # Various media key mapping examples for both normal and locked mode which do # not have a modifier for mode in normal locked; do - # Eject the optical drive - riverctl map $mode None XF86Eject spawn 'eject -T' + # Eject the optical drive + riverctl map $mode None XF86Eject spawn 'eject -T' - riverctl map $mode None XF86AudioRaiseVolume spawn 'pactl set-sink-volume @DEFAULT_SINK@ +5%' - riverctl map $mode None XF86AudioLowerVolume spawn 'pactl set-sink-volume @DEFAULT_SINK@ -5%' - riverctl map $mode None XF86AudioMute spawn 'pactl set-sink-mute @DEFAULT_SINK@ toggle' + riverctl map $mode None XF86AudioRaiseVolume spawn 'pactl set-sink-volume @DEFAULT_SINK@ +5%' + riverctl map $mode None XF86AudioLowerVolume spawn 'pactl set-sink-volume @DEFAULT_SINK@ -5%' + riverctl map $mode None XF86AudioMute spawn 'pactl set-sink-mute @DEFAULT_SINK@ toggle' - # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) - riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' - riverctl map $mode None XF86AudioNext spawn 'playerctl next' + # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) + riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' + riverctl map $mode None XF86AudioNext spawn 'playerctl next' - # You can control screen backlight brighness with light (https://github.com/haikarainen/light); but we prefer brightnessctl - riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set 10%+' - riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 10%-' + # You can control screen backlight brighness with light (https://github.com/haikarainen/light); but we prefer brightnessctl + riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set 10%+' + riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 10%-' done # The scratchpad will live on an unused tag. Which tags are used depends on your @@ -210,14 +213,14 @@ riverctl spawn-tagmask ${all_but_scratch_tag} # device (touchscreen) # enable touch clicking for touchpads for pad in $(riverctl list-inputs | grep -i touchpad); do - riverctl input "$pad" events enabled - riverctl input "$pad" tap enabled + riverctl input "$pad" events enabled + riverctl input "$pad" tap enabled done for pad in $(riverctl list-inputs | grep -i touchscreen); do - riverctl input "$pad" events enabled - riverctl input "$pad" tap enabled - riverctl input "$pad" drag enabled - riverctl input "$pad" pointer-accel 0.5 + riverctl input "$pad" events enabled + riverctl input "$pad" tap enabled + riverctl input "$pad" drag enabled + riverctl input "$pad" pointer-accel 0.5 done setxkbmap -option "compose:menu"