Compare commits

..

29 commits

Author SHA1 Message Date
e9659a2829
bootstrap: Update package list 2023-01-07 15:27:17 +01:00
f975e5885e
wezterm: Add timeout to scrolling mode 2023-01-07 15:12:44 +01:00
e224f7f20a
kanshi: Update profiles and notify on change 2023-01-07 15:11:51 +01:00
56c9f66d72
river: Add experimental map to hide views
mod-Shift-M to switch to an always-unused tag for all connected outputs
to simply hide all application that can currently be seen. Would
probably be more useful with an option to reverse but that probably
requires a more extensive script to implement (perhaps using `lswt`?) so
this will be good enough for now.

I am not even entirely sure how much I will be using it.
2023-01-07 15:03:17 +01:00
951365bd92
river: Fix startup procedure process spawning 2023-01-07 15:01:12 +01:00
c193a90b40
river: Switch notification maps to use mako 2023-01-07 15:00:35 +01:00
c3279799d8
river: Fix wezterm floating term start 2023-01-07 14:59:53 +01:00
c49d87722c
river: Try to remove client side deco from zathura 2023-01-07 14:59:11 +01:00
40245120f5
river: Hide cursor when typing
Makes use of new river functionality to automatically hide the cursor
whenever you begin to type.
2023-01-07 14:58:30 +01:00
824e76c654
vifm: Add zip creation shortcut xz 2023-01-07 14:57:24 +01:00
0bc4a41e03
vifm: Add imv as image viewer 2023-01-07 14:57:12 +01:00
4f75888dfe
sh: Remove docker xdg configuration
Podman rebels if it finds an explicitly set DOCKER_CONFIG file pointing
to a non-existent (due to using podman) configuration file. Since we are
not using docker anyway, this removes the env var.
2023-01-07 14:56:09 +01:00
5d2ed8174c
sh: Add hidden file inclusive ls tree view 2023-01-07 14:54:55 +01:00
3ece309f67
sh: Add imv to iv image alias 2023-01-07 14:54:32 +01:00
46a349cba1
social: Add simple tut configuration
I am mostly using the TUI Mastodon client tut for any social
interaction, so here I keep its configuration. Nothing big changed yet,
I mostly like the default options, with the exception of some layout
changes.
2023-01-07 14:53:08 +01:00
b6e6ddcf06
social: Add minimal newsboat rss config 2023-01-07 14:52:48 +01:00
969c836790
services: Remove deprecated X services 2023-01-07 14:52:14 +01:00
cb0605971d
scripts: Add wallcrop.sh
Added hacky script to quickly cut apart dual-screen wallpapers.
I run two 1920x1080 screens side-by-side, so I just cut double wide
wallpapers in two and display one on each screen.

Script is very inflexible on probably not too useful for the future but
it works for its purposes now.
2023-01-07 14:50:34 +01:00
bd1182a873
qutebrowser: Add pypi search,Remove google translate 2023-01-07 14:50:09 +01:00
ccd9c51cc0
mail: Allow moving threads to other mailboxes 2023-01-07 14:49:15 +01:00
9a1f9be8c6
mail: Switch to imv for images 2023-01-07 14:48:54 +01:00
001919d183
mako: Add 2023-01-07 14:48:41 +01:00
44f7c2e6ca
bootstrap: Update package list 2023-01-07 14:48:13 +01:00
912458d8f0
mpv: Remove deprecated and superfluous settings 2023-01-07 14:42:34 +01:00
1701b9d34e
ncmpcpp: Set song notification class and priority 2023-01-05 22:50:15 +01:00
e72da98946
multimedia: Update beets configuration 2022-12-30 14:48:11 +01:00
2bff4dfe76
wayland: Set wallpapers for all connected screens
Changes the wallpaper setting code on startup to set a wallpaper for
each screen that it finds currently connected. Still a bit hacky and
should be improved for reactive wallpaper setting as new screens are
connected/disconnected but should work for the moment.
2022-12-24 16:44:59 +01:00
660f6b0ca6
wayland: Fix suspend input locking after timeout
This commit fixes input locking when suspend was invoked autoatically
after a certain amount of time.

Previously, it would invoke the lockscreen first, then dim the screen
and finally suspend the machine. While suspending it would invoke the
lockscreen *again* however, which seems to lead to generally locking
input (perhaps 2 instances of waylock disable each others' input
ability?).

This change checks for a running lockscreen first before invoking
another one, which should hopefully fix the issue.
2022-12-24 16:41:45 +01:00
7865626f5b
multimedia: Add initial commit 2022-12-21 10:41:46 +01:00
31 changed files with 3344 additions and 98 deletions

View file

@ -17,8 +17,8 @@ aspell-de German dictionary for aspell R
aspell-en English dictionary for aspell R
atool A script for managing file archives of various types R
aubio A tool for extracting annotations from audio signals R
awesome Highly configurable framework window manager R
barrier Open-source KVM software based on Synergy (GUI) R
base Minimal package set to define a basic Arch Linux installation R
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
@ -49,16 +49,16 @@ devour Window Manager agnostic swallowing feature for terminal emulators A
dhcpcd RFC2131 compliant DHCP client daemon R
diff-so-fancy Good-looking diffs with diff-highlight and more R
distrobox Use any linux distribution inside your terminal. A
dnsmasq Lightweight, easy to configure DNS forwarder and DHCP server R
docker Pack, ship and run any application as a lightweight container R
docker-compose Fast, isolated development environments using Docker R
docx2txt Recovers text from DOCX files, with good formatting. R
dos2unix Text file format converter R
duf Disk Usage/Free Utility R
dunst Customizable and lightweight notification-daemon R
dust A more intuitive version of du in rust R
efm-langserver General purpose Language Server A
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
exercism-bin Command line client for exercism.io A
exfat-utils Utilities for exFAT file system R
@ -101,6 +101,7 @@ htop Interactive process viewer R
hugo Fast and Flexible Static Site Generator in Go R
iftop Display bandwidth usage on an interface R
imapfilter A mail filtering utility for processing IMAP mailboxes A
imv Image viewer for Wayland and X11 R
intel-ucode Microcode update files for Intel CPUs R
iputils Network monitoring tools, including ping R
ipython An enhanced Interactive Python shell. R
@ -119,11 +120,11 @@ khard Console address book manager R
kitty A modern, hackable, featureful, OpenGL-based terminal emulator R
kubo IPFS implementation in Go R
lazygit Simple terminal UI for git commands R
lib32-gamemode A daemon/lib combo that allows games to request a set of optimisations be temporarily applied to the host OS R
libdvdcss Portable abstraction library for DVD decryption R
libqalculate Multi-purpose desktop calculator R
libreoffice-fresh LibreOffice branch which contains new features and program enhancements R
libva-intel-driver VA-API implementation for Intel G45 and HD Graphics family R
licenses A set of common license files R
libvirt API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc) R
linux The Linux kernel and modules R
linux-firmware Firmware files for Linux R
@ -141,7 +142,9 @@ 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
magic-wormhole Securely transfer data between computers R
maim Utility to take a screenshot using imlib2 R
mako Lightweight notification daemon for Wayland R
man-db A utility for reading man pages R
man-pages Linux man pages R
masterpdfeditor-free A complete solution for creation and editing PDF files - Free version without watermark A
@ -152,18 +155,21 @@ micro Modern and intuitive terminal-based text editor R
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-bandcamp Mopidy backend for Bandcamp A
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
mopidy-mpd Mopidy extension for controlling playback from MPD clients A
mopidy-mpris Mopidy extension for controlling Mopidy through the MPRIS D-Bus interface A
mopidy-scrobbler Mopidy extension for scrobbling played tracks to Last.fm A
mopidy-somafm Mopidy extension for playing music from SomaFM A
mopidy-spotify Mopidy extension for playing music from Spotify A
mopidy-youtube Mopidy extension for playing music from Youtube A
moreutils A growing collection of the unix tools that nobody thought to write thirty years ago R
mosh Mobile shell, surviving disconnects with local echo and line editing R
mpv-mpris MPRIS plugin for mpv R
msmtp A mini smtp client R
mupdf-gl Lightweight PDF and XPS viewer with OpenGL backend R
mutt-ics Show calendar event details in mutt A
nano Pico editor clone with enhancements R
ncmpcpp Almost exact clone of ncmpc with some new features R
needrestart Restart daemons after library updates. A
neomutt A version of mutt with added features R
@ -173,12 +179,13 @@ netctl Profile based systemd network management R
nethogs A net top tool which displays traffic used per process instead of per IP or interface R
network-manager-applet Applet for managing network connections R
networkmanager-openconnect NetworkManager VPN plugin for OpenConnect R
newsboat An RSS/Atom feed reader for text terminals R
newsboat RSS/Atom feed reader for text terminals R
nextcloud-client Nextcloud desktop client R
nfs-utils Support programs for Network File Systems R
nmap Utility for network discovery and security auditing R
nodejs-markdownlint-cli MarkdownLint Command Line Interface A
nodejs-pandiff Prose diffs for any document format supported by Pandoc A
noto-fonts-emoji Google Noto emoji fonts R
npm A package manager for javascript R
nss-mdns glibc plugin providing host name resolution via mDNS R
nsxiv Neo (or New or Not) Simple (or Small or Suckless) X Image Viewer A
@ -189,8 +196,8 @@ nzbget Download from Usenet using .nzb files R
offpunk-git Fork of the command-line Gemini client AV-98 with added offline capabilities A
oh-my-zsh-git A community-driven framework for managing your zsh configuration. Includes 180+ optional plugins and over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community A
os-prober Utility to detect other OSes on a set of drives R
otf-nerd-fonts-fira-code Monospaced font with programming ligatures. Patched with Nerd Fonts icons. A
parallel A shell tool for executing jobs in parallel R
parsec-bin Remotely connect to a gaming pc for a low latency remote computing experience A
paru-bin Feature packed AUR helper A
pass-coffin A password store extension that hides data inside a signed and encrypted coffin A
pass-ssh A pass extension that creates ssh keys with an automatically generated passphrases stored in pass and outputs the public key using fzf or rofi A
@ -201,6 +208,7 @@ pdftk Command-line tool for working with PDFs R
peek Simple screen recorder with an easy to use interface R
perf Linux kernel performance auditing tool R
perl-authen-sasl Perl/CPAN Module Authen::SASL : SASL authentication framework R
piavpn-bin Private Internet Access client A
pigz Parallel implementation of the gzip file compressor R
pipewire-alsa Low-latency audio/video router and processor - ALSA configuration R
playerctl mpris media player controller and lib for spotify, vlc, audacious, bmp, xmms2, and others. R
@ -209,6 +217,7 @@ powertop A tool to diagnose issues with power consumption and power management R
prettier An opinionated code formatter for JS, JSON, CSS, YAML and much more R
protonvpn Official ProtonVPN metapackage that installs protonvpn-gui and protonvpn-cli, maintained by the ProtonVPN team. A
ptpython Python REPL build on top of prompt_toolkit A
pubs Your bibliography on the command line A
pulsemixer CLI and curses mixer for pulseaudio R
pv A terminal-based tool for monitoring the progress of data through a pipeline. R
pyright Type checker for the Python language R
@ -232,7 +241,7 @@ python-pyqt6-networkauth Python bindings for QtNetworkAuth R
python-readability-lxml Fast html to text parser (article readability tool) python library R
python-slugify A Python slugify application that handles unicode R
python-tasklib Python library for interacting with taskwarrior databases R
qemu-base A basic QEMU setup for headless environments R
qemu-desktop A QEMU setup for desktop environments R
qt5-wayland Provides APIs for Wayland R
qt5-xmlpatterns Support for XPath, XQuery, XSLT and XML schema validation R
qt6-svg Classes for displaying the contents of SVG files R
@ -240,7 +249,6 @@ qt6-wayland Provides APIs for Wayland R
qtcurve-gtk2 A configurable set of widget styles for KDE and Gtk R
quarto-cli-bin An open-source scientific and technical publishing system built on Pandoc (binary from official repo) A
qutebrowser A keyboard-driven, vim-like browser based on PyQt5 R
redshift Adjusts the color temperature of your screen according to your surroundings. R
refind An EFI boot manager R
refind-btrfs Generate rEFInd manual boot stanzas from Btrfs snapshots A
reflector A Python 3 module and script to retrieve and filter the latest Pacman mirror list. R
@ -262,6 +270,7 @@ smartmontools Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives R
snap-pac Pacman hooks that use snapper to create pre/post btrfs snapshots like openSUSE's YaST 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
steam Valve's digital software delivery system R
stow Manage installation of multiple softwares in the same directory tree R
surfraw Shell Users' Revolutionary Front Rage Against the Web R
swaybg Wallpaper tool for Wayland compositors R
@ -305,6 +314,7 @@ vdirsyncer Synchronize CalDAV and CardDAV. R
viddy A modern watch command A
vifm-git Ncurses based file manager with vi like keybindings A
vim-language-server VimScript language server A
virt-manager Desktop user interface for managing virtual machines R
virtualbox Powerful x86 virtualization for enterprise as well as home use R
virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R
visidata Terminal spreadsheet multitool for discovering and arranging data R
@ -318,13 +328,13 @@ wget Network utility to retrieve files from the Web R
wireguard-tools next generation secure network tunnel - tools for configuration R
wireless_tools Tools allowing to manipulate the Wireless Extensions R
wlopm Wayland output power management. A
wlsunset Day/night gamma adjustments for Wayland compositors A
wpa_actiond Daemon that connects to wpa_supplicant and handles connect and disconnect events A
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 YAML Language Server R
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 A youtube-dl fork with additional features and fixes R
ytfzf A POSIX script to find and watch youtube videos from the terminal R
zathura-cb Adds comic book support to zathura R

Can't render this file because it contains an unexpected character in line 297 and column 64.

30
mako/.config/mako/config Normal file
View file

@ -0,0 +1,30 @@
sort=-time
layer=overlay
background-color=#2e3440
width=300
height=110
border-size=2
border-color=#88c0d0
border-radius=15
max-icon-size=64
default-timeout=5000
ignore-timeout=1
font=monospace 14
[urgency=low]
border-color=#cccccc
[urgency=normal]
border-color=#d08770
[urgency=critical]
#on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga
border-color=#bf616a
default-timeout=0
[mode=do-not-disturb]
invisible=1
[category=mpd]
default-timeout=2000
group-by=category

View file

@ -81,18 +81,13 @@ volume-max=150
audio-file-auto=fuzzy
# playing at different speed will pitch-correct
audio-pitch-correction=yes
# no audio popping on seek
audio-stream-silence
# lets mpv calc latency instead of PA; disable if errors on network playback or similar
pulse-latency-hacks=yes
### Video
hwdec=auto
profile=opengl-hq
opengl-early-flush=auto
opengl-pbo=no
# brigheen video slightly to account for daylight displaying
gamma-factor=1.1
# ever so slightly up saturation
saturation=12
# interpolation options, will take some more cpu

View file

@ -0,0 +1,113 @@
# much of this such as the whitelist, canonical list for lasgenre
# is stolen from https://github.com/montchr/beets-config/ with much gratitude
directory: ~/media/audio/music
library: ~/.local/share/beets/library.db
threaded: true
art_filename: albumart
# Use the album's original date instead of the release's date
original_date: yes
# Use safer pathnames
asciify_paths: yes
max_filename_length: 255
# Long format - I don't need all the extra info for each invocation
#format_item: '[$id] [$album_id] [$singleton] $albumartist - $title - $album - $original_year - [$format - $bitrate $length $filesize]'
#format_album: '[$id] $albumartist - $album - $original_year [$catalognum]'
clutter:
- Thumbs.db
- .DS_Store
- '*.m3u'
- '*.pls'
- '*.db'
import:
copy: false
move: true
write: true
bell: true
# incremental: true
languages:
- en
log: ~/.cache/beets.log
quiet_fallback: skip
timid: false
ignore_hidden: yes
paths:
default: "%the{$albumartist}/$album/$track $title"
singleton: "singletons/%the{$artist - $title}"
comp: compilations/$album/$track $title
albumtype:soundtrack: soundtracks/$album/$track $title
item_fields:
multidisc: 1 if disctotal > 1 else 0
artist_differs: 1 if albumartist != artist else 0
musicbrainz:
extra_tags: [year, catalognum, country, media, label]
user: martyo
pass: u^a<7YKULz\#CKX\-Fm]K%Up0
auto: yes
remove: yes
match:
preferred:
countries: ["US", "UK|GB", "DE", "NL", "SE"]
media: ["Digital Media|File", "CD"]
strong_rec_thresh: 0.15
medium_red_thresh: 0.25
rec_gap_thresh: 0.25
plugins:
- acousticbrainz
- bandcamp
- chroma
- deezer
- describe
- edit
- embedart
- export
- fetchart
- fromfilename
- ftintitle
- fuzzy
- importadded
- info
- inline
- lastgenre
- lastimport
- mbcollection
- mbsync
- missing
- spotify
- the
- ydl
edit:
itemfields: track title artist album
albumfields: album albumartist albumtype
ignore_fields: id path
fetchart:
sources: filesystem coverart discogs amazon albumart
lastgenre:
auto: true
canonical: ~/.config/beets/lastgenre_canonicallist.yaml
count: 4
fallback: ""
force: yes
min_weight: 6
prefer_specific: false
separator: "; "
source: album
whitelist: ~/.config/beets/lastgenre_whitelist.txt
lastfm:
user: schmitzkater
bandcamp:
art: true

View file

@ -0,0 +1,783 @@
- 2-step
- acapella
- acid
- acid house
- acid jazz
- acid techno
- adult contemporary
- african
- african blues
- african heavy metal
- african hip hop
- afrobeat
- aggrotech
- alternative country
- alternative metal
- alternative rock
- ambient
- ambient dub
- ambient house
- ambient space jazz
- ambient techno
- american folk revival
- americana
- anison
- anti-folk
- apala
- arab pop
- asian underground
- atlanta hip hop:
- snap music
- australian country music
- avant-garde
- avant-garde jazz
- axé
- bachata
- baithak gana
- bakersfield sound
- balearic beat
- ballet
- baltimore club
- barbershop
- baroque pop
- baroque:
- baroque music
- bebop
- benga
- berlin school:
- berlin school of electronic music
- berlin-school
- big band
- big beat
- bikutsi
- black metal:
- viking metal
- blue-eyed soul
- bluegrass:
- progressive bluegrass
- reactionary bluegrass
- blues
- blues country
- blues rock
- blues shouter
- bolero
- bongo flava
- boogie
- boogie-woogie
- bossa nova
- bounce music
- brazilian
- brazilian rock
- breakbeat:
- 4-beat
- acid breaks
- breakbeat hardcore
- broken beat
- florida breaks
- nu skool breaks
- breakcore
- brega
- british blues
- british folk revival
- britpop:
- post-britpop
- bubblegum pop
- c-pop:
- cantopop
- cajun:
- cajun fiddle tunes
- calypso
- canadian blues
- cantata
- cape jazz
- celtic music
- chamber jazz
- chamber music:
- string quartet
- chanson
- chicago blues
- chicago house
- chillwave:
- chill wave
- chimurenga
- chiptune:
- bitpop
- game boy music
- nintendocore
- video game music
- yorkshire bleeps and bass
- choro
- christian country music
- christian hip hop
- christian metal
- christian pop
- christian rock
- chutney
- chutney soca
- classic country
- classical crossover
- classical:
- classical music
- orchestra:
- orchestral
- symphonic
- symphony
- close harmony
- coldwave
- comedy:
- comedy music
- comedy rock
- humor
- parody music
- stand-up
- compas
- computer music
- concerto:
- concerto grosso
- contemporary folk
- contemporary r&b
- continental jazz
- cool jazz
- country
- country blues
- country pop
- country rap
- country rock
- country soul
- country-rap
- coupé-décalé
- cowpunk
- crunkcore
- cybergrind
- dance-punk
- dance-rock
- dancehall
- dansband music
- dark ambient
- dark electro
- darkwave:
- dark wave
- death industrial
- death metal:
- goregrind
- deconstructed club
- deep house
- deep techno
- delta blues
- detroit blues
- detroit techno
- digital hardcore:
- bouncy house
- bouncy techno
- hardstyle
- jumpstyle
- makina
- uk hardcore
- disco:
- disco polo:
- euro disco
- nu-disco
- diva house
- dixieland
- doo wop
- doom metal
- doomcore
- downtempo:
- chill out
- ethnic electronica
- moombahton
- nu jazz
- dream pop
- drone metal
- drone:
- drone music
- drum and bass:
- darkcore
- darkstep
- drumfunk
- drumstep
- hardstep
- intelligent drum and bass
- jump-up
- liquid funk
- neurofunk
- raggacore
- sambass
- techstep
- dub poetry
- dub techno
- dub:
- dub music
- dubstep
- dubtronica
- dungeon synth
- dutch house
- east coast hip hop:
- brick city club
- hardcore hip hop
- mafioso rap
- new jersey hip hop
- easy listening:
- background music
- beautiful music
- elevator music
- furniture music
- middle of the road
- ebm:
- electronic body music:
- futurepop
- edm:
- electronic dance music
- electric blues
- electro
- electro house
- electro-grime
- electro-industrial
- electroacoustic:
- acousmatic music
- electroacoustic improvisation
- live electronics
- electroclash
- electrofunk
- electronic rock:
- alternative dance:
- baggy
- madchester
- electronicore
- ethereal wave
- new rave
- electropop
- electropunk
- emo
- enka
- eurodance:
- bubblegum dance
- italo dance
- turbofolk
- europop:
- austropop
- balkan pop
- french pop
- latin pop
- laïkó
- nederpop
- russian pop
- experimental pop
- experimental rock
- experimental:
- experimental music
- fann at-tanbura
- field recording
- fijiri
- filmi
- folk metal:
- celtic metal
- medieval metal
- folk punk:
- celtic punk
- gypsy punk
- folk rock
- folk:
- filk music
- folk music
- folktronica
- footwork
- forró
- fourth world:
- ethnic ambient
- tribal ambient
- franco-country
- freak folk
- free jazz
- free funk
- free improvisation
- freestyle house
- freestyle rap
- freestyle:
- freestyle music
- french house
- frevo
- fuji music
- funk carioca
- funk metal
- funk:
- deep funk
- go-go
- funky house
- g-funk
- gabber
- gamelan
- gangsta rap
- garage rock
- garage:
- 4x4
- bassline
- breakstep
- funky
- speed garage
- genge
- ghetto house
- ghettotech
- glam metal
- glam rock
- glitch-hop
- glitch:
- clicks 'n' cuts
- goa:
- dark psytranceon
- goa trance
- psybreaks
- psyprog
- gospel blues
- goth rock:
- gothic rock
- gothic metal
- grime
- grindcore:
- crustgrind
- noisegrind
- grunge:
- post-grunge
- gulf and western
- gypsy jazz
- happy hardcore
- hard bop
- hard rock
- hardbag
- hardcore punk:
- street punk
- hellbilly music
- hi-nrg:
- eurobeat
- hard nrg
- new beat
- highlife
- hill country blues
- hip house
- hip-hop:
- alternative hip hop
- avant-garde hip hop
- chap hop
- chicago hip hop
- conscious hip hop
- detroit hip hop
- hip hop
- hip hop soul
- hip pop
- horrorcore
- hyphy
- jazz rap
- low bap
- lyrical hip hop
- merenrap
- motswako
- new jack swing
- new school hip hop
- old school hip hop
- political hip hop
- rap opera
- songo-salsa
- st. louis hip hop
- twin cities hip hop
- underground hip hop
- urban pasifika
- hiplife
- hokum
- hokum blues
- hong kong english pop
- honky tonk
- horror punk
- house
- houston hip hop:
- chopped and screwed
- idm
- illbient
- indian pop
- indie folk
- indie pop:
- dunedin sound
- twee pop
- indie rock
- indietronica
- industrial
- industrial dance
- industrial folk
- industrial hip hop
- industrial metal:
- neue deutsche härte
- industrial rock
- instrumental country
- instrumental hip hop
- iranian pop
- isicathamiya
- isolationism
- italo disco
- italo house
- j-pop
- jazz blues
- jazz fusion:
- fusion
- fusion jazz
- jazz rock
- jazz-funk
- jazz:
- british dance band
- crossover jazz
- cubop
- ethno jazz
- european free jazz
- m-base
- mainstream jazz
- novelty ragtime
- orchestral jazz
- shibuya-kei
- stride jazz
- third stream
- trad jazz
- vocal jazz
- west coast gypsy jazz
- west coast jazz
- jit
- jump blues
- jungle:
- oldschool jungle:
- darkside jungle
- ragga jungle
- jùjú
- k-pop:
- korean pop
- kansas city blues
- kansas city jazz
- kapuka
- kayōkyoku
- khaliji
- kizomba
- kosmische:
- kraut rock
- krautrock
- kuduro
- kwaito
- kwela
- lambada
- latin house
- latin jazz
- latin:
- chicha
- criolla
- cumbia
- huayno
- mariachi
- ranchera
- tejano
- live coding
- liwa
- lo-fi
- louisiana blues
- lounge:
- lounge music
- lovers rock
- lowercase
- lubbock sound
- luk thung:
- luk krung
- makossa
- maloya
- mambo
- mandopop
- manila sound
- maracatu
- marrabenta
- martial industrial
- mass
- math rock
- mbalax
- mbaqanga
- mbube
- melodic death metal
- memphis blues
- metal:
- heavy metal
- metalcore:
- deathcore
- mathcore:
- djent
- mexican pop
- miami bass
- minimal house
- minimal techno
- minimal wave
- modal jazz
- modern classical:
- contemporary classical
- morlam
- morna
- museve
- musique concrète:
- tape music
- méringue:
- merengue
- música popular brasileira
- música sertaneja
- nashville sound
- neo soul
- neo-bop jazz
- neo-psychedelia
- neo-swing
- neofolk
- neotraditional country
- nerdcore
- new age:
- new age music
- new-age
- new-age music
- new wave
- no wave
- noise pop
- noise rock
- noise:
- harsh noise
- japanoise
- noise music
- northern soul
- nu metal
- onkyokei
- opera
- oratorio
- organum
- outlaw country
- p-funk
- pagode
- palm-wine
- piano blues
- piedmont blues
- pinoy pop
- pop punk
- pop rock
- pop sunda
- pop:
- jangle pop
- latin ballad
- levenslied
- louisiana swamp pop
- motorpop
- new romanticism
- pop rap
- popera
- schlager
- sophisti-pop
- sunshine pop
- traditional pop music
- vispop
- wonky pop
- post-bop
- post-disco:
- dance-pop
- post-hardcore
- post-punk
- post-punk revival
- post-rock:
- post-metal
- power electronics
- power metal
- power noise
- powerviolence
- progressive country
- progressive electronic:
- progressive breaks
- progressive drum & bass
- progressive house/trance:
- disco house
- dream house
- space house
- progressive techno
- progressive folk
- progressive house
- progressive metal
- progressive rock:
- canterbury scene
- new prog
- rock in opposition
- psychedelic folk
- psychedelic pop
- psychedelic rock:
- acid rock
- freakbeat
- raga rock
- psychobilly
- psychobilly
- punk blues
- punk jazz
- punk:
- anarcho punk:
- crust punk:
- d-beat
- art punk
- christian punk
- deathrock
- garage punk
- skate punk
- punta
- punta rock
- r&b:
- rhythm and blues
- ragga:
- raggamuffin
- ragini
- ragtime
- rap rock:
- rap metal
- rapcore
- rasin
- rave:
- rave music
- raï
- red dirt
- reggae:
- 2 tone
- reggae en español:
- reggae 110
- reggae bultrón
- romantic flow
- spanish reggae
- reggae fusion
- reggaeton
- requiem
- riot grrrl
- rock and roll
- rock:
- art rock
- beat music
- chinese rock
- dark cabaret
- desert rock
- paisley underground
- power pop
- visual kei:
- nagoya kei
- rockabilly
- rocksteady
- roots reggae
- sacred music:
- cantique
- gregorian chant
- sadcore
- sakara
- salsa
- samba
- samba rock
- sawt
- screamo
- sega
- seggae
- semba
- sertanejo
- shoegaze
- ska
- ska jazz
- ska punk:
- ska-core
- slowcore
- sludge metal
- smooth jazz
- soca
- soft rock
- son
- sonata
- soukous
- soul
- soul blues
- soul jazz
- south and southeast asian:
- baila
- bhangra
- bhojpuri
- dangdut
- lavani
- southern hip hop
- southern rock
- space age pop
- space disco:
- cosmic disco
- space rock
- speed metal
- speedcore
- st. louis blues
- stoner metal
- stoner rock
- straight-ahead jazz
- sufi rock
- sung poetry
- surf pop
- surf rock
- swamp blues
- swing
- swing house
- symphonic metal
- synthcore
- synthpop
- synthpunk
- taarab
- taiwanese pop
- tech house
- technical death metal
- techno-folk
- techno:
- free tekno
- nortec
- schranz
- techno-dnb
- tecno brega
- toytown techno
- technopop
- tecnobrega
- teen pop
- terrorcore
- texas blues
- texas country
- thai pop
- thrash metal:
- crossover thrash
- groove metal
- thrash
- thrashcore
- timba
- traditional country music
- trance:
- acid trance
- classic trance
- dream trance
- hard trance
- progressive trance
- psychedelic trance
- psytrance
- tech trance
- uplifting trance:
- orchestral uplifting
- vocal trance
- trap
- trip-hop:
- trip hop
- tropicalia
- truck-driving country
- turkish pop
- turntablism
- twoubadou
- uk garage
- uk hard house
- us garage
- vaporwave
- vocal house
- west coast blues
- west coast hip hop:
- chicano rap
- jerkin'
- western swing
- witch house
- world:
- world music
- worldbeat
- world fusion
- zouglou
- zouk
- zouk-lambada
- zydeco

View file

@ -0,0 +1,491 @@
2-step
acapella
acid
acid house
acid jazz
acid techno
adult contemporary
african
african blues
african heavy metal
african hip hop
afrobeat
aggrotech
alternative country
alternative metal
alternative rock
ambient
ambient dub
ambient house
ambient space jazz
ambient techno
american folk revival
americana
anison
anti-folk
apala
arab pop
asian underground
atlanta hip hop
australian country music
avant-garde
avant-garde jazz
axé
bachata
baithak gana
bakersfield sound
balearic beat
ballet
baltimore club
barbershop
baroque pop
baroque
bebop
benga
berlin school
big band
big beat
bikutsi
black metal
blue-eyed soul
bluegrass
blues
blues country
blues rock
blues shouter
bolero
bongo flava
boogie
boogie-woogie
bossa nova
bounce music
brazilian
brazilian rock
breakbeat
breakcore
brega
british blues
british folk revival
britpop
bubblegum pop
c-pop
cajun
calypso
canadian blues
cantata
cape jazz
celtic music
chamber jazz
chamber music
chanson
chicago blues
chicago house
chillwave
chimurenga
chiptune
choro
christian country music
christian hip hop
christian metal
christian pop
christian rock
chutney
chutney soca
classic country
classical crossover
classical
close harmony
coldwave
comedy
compas
computer music
concerto
contemporary folk
contemporary r&b
continental jazz
cool jazz
country
country blues
country pop
country rap
country rock
country soul
country-rap
coupé-décalé
cowpunk
crunkcore
cybergrind
dance-punk
dance-rock
dancehall
dansband music
dark ambient
dark electro
darkwave
death industrial
death metal
deconstructed club
deep house
deep techno
delta blues
detroit blues
detroit techno
digital hardcore
disco
diva house
dixieland
doo wop
doom metal
doomcore
downtempo
dream pop
drone metal
drone
drum and bass
dub poetry
dub techno
dub
dubstep
dubtronica
dungeon synth
dutch house
east coast hip hop
easy listening
ebm
edm
electric blues
electro
electro house
electro-grime
electro-industrial
electroacoustic
electroclash
electrofunk
electronic rock
electropop
electropunk
emo
enka
eurodance
europop
experimental pop
experimental rock
experimental
fann at-tanbura
field recording
fijiri
filmi
folk metal
folk punk
folk rock
folk
folktronica
footwork
forró
fourth world
franco-country
freak folk
free jazz
freestyle house
freestyle rap
freestyle
french house
frevo
fuji music
funk carioca
funk metal
funk
funky house
g-funk
gabber
gamelan
gangsta rap
garage rock
garage
genge
ghetto house
ghettotech
glam metal
glam rock
glitch-hop
glitch
goa
gospel blues
goth rock
gothic metal
grime
grindcore
grunge
gulf and western
gypsy jazz
happy hardcore
hard bop
hard rock
hardbag
hardcore punk
hellbilly music
hi-nrg
highlife
hill country blues
hip house
hip-hop
hiplife
hokum
hokum blues
hong kong english pop
honky tonk
horror punk
house
houston hip hop
idm
illbient
indian pop
indie folk
indie pop
indie rock
indietronica
industrial
industrial dance
industrial folk
industrial hip hop
industrial metal
industrial rock
instrumental country
instrumental hip hop
iranian pop
isicathamiya
isolationism
italo disco
italo house
j-pop
jazz blues
jazz fusion
jazz rock
jazz-funk
jazz
jit
jump blues
jungle
jùjú
k-pop
kansas city blues
kansas city jazz
kapuka
kayōkyoku
khaliji
kizomba
kosmische
kuduro
kwaito
kwela
lambada
latin house
latin jazz
latin
live coding
liwa
lo-fi
louisiana blues
lounge
lovers rock
lowercase
lubbock sound
luk thung
makossa
maloya
mambo
mandopop
manila sound
maracatu
marrabenta
martial industrial
mass
math rock
mbalax
mbaqanga
mbube
melodic death metal
memphis blues
metal
metalcore
mexican pop
miami bass
minimal house
minimal techno
minimal wave
modal jazz
modern classical
morlam
morna
museve
musique concrète
méringue
música popular brasileira
música sertaneja
nashville sound
neo soul
neo-bop jazz
neo-psychedelia
neo-swing
neofolk
neotraditional country
nerdcore
new age
new wave
no wave
noise pop
noise rock
noise
northern soul
nu metal
onkyokei
opera
oratorio
organum
outlaw country
p-funk
pagode
palm-wine
piano blues
piedmont blues
pinoy pop
pop punk
pop rock
pop sunda
pop
post-bop
post-disco
post-hardcore
post-punk
post-punk revival
post-rock
power electronics
power metal
power noise
powerviolence
progressive country
progressive electronic
progressive folk
progressive house
progressive metal
progressive rock
psychedelic folk
psychedelic pop
psychedelic rock
psychobilly
psychobilly
punk blues
punk jazz
punk
punta
punta rock
r&b
ragga
ragini
ragtime
rap rock
rasin
rave
raï
red dirt
reggae
reggaeton
requiem
riot grrrl
rock and roll
rock
rockabilly
rocksteady
roots reggae
sacred music
sadcore
sakara
salsa
samba
samba rock
sawt
screamo
sega
seggae
semba
sertanejo
shoegaze
ska
ska jazz
ska punk
slowcore
sludge metal
smooth jazz
soca
soft rock
son
sonata
soukous
soul
soul blues
soul jazz
south and southeast asian
southern hip hop
southern rock
space age pop
space disco
space rock
speed metal
speedcore
st. louis blues
stoner metal
stoner rock
straight-ahead jazz
sufi rock
sung poetry
surf pop
surf rock
swamp blues
swing
swing house
symphonic metal
synthcore
synthpop
synthpunk
taarab
taiwanese pop
tech house
technical death metal
techno-folk
techno
technopop
tecnobrega
teen pop
terrorcore
texas blues
texas country
thai pop
thrash metal
thrashcore
timba
traditional country music
trance
trap
trip-hop
tropicalia
truck-driving country
turkish pop
turntablism
twoubadou
uk garage
uk hard house
us garage
vaporwave
vocal house
west coast blues
west coast hip hop
western swing
witch house
world
worldbeat
world fusion
gregorian chant
zouglou
zouk
zouk-lambada
zydeco

View file

@ -0,0 +1,261 @@
# For further information about options in this file see:
# https://docs.mopidy.com/
#
# The initial commented out values reflect the defaults as of:
# Mopidy 3.4.1
# Mopidy-Bandcamp 1.1.5
# Mopidy-File 3.4.1
# Mopidy-HTTP 3.4.1
# Mopidy-Iris 3.65.0
# Mopidy-Local 3.2.1
# Mopidy-M3U 3.4.1
# Mopidy-MPD 3.3.0
# Mopidy-MPRIS 3.0.3
# Mopidy-Scrobbler 2.0.1
# Mopidy-SoftwareMixer 3.4.1
# Mopidy-SomaFM 2.0.2
# Mopidy-Spotify 4.1.1
# Mopidy-Stream 3.4.1
# Mopidy-YouTube 3.5
#
# Available options and defaults might have changed since then,
# run `mopidy config` to see the current effective config and
# `mopidy --version` to check the current version.
[core]
#cache_dir = $XDG_CACHE_DIR/mopidy
#config_dir = $XDG_CONFIG_DIR/mopidy
#data_dir = $XDG_DATA_DIR/mopidy
#max_tracklist_length = 10000
#restore_state = false
[logging]
#verbosity = 0
#format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s
#color = true
#config_file =
[audio]
#mixer = software
#mixer_volume =
#output = autoaudiosink
#buffer_time =
[proxy]
#scheme =
#hostname =
#port =
#username =
#password =
[spotify]
enabled = false
#username =
#password =
#client_id =
#client_secret =
#bitrate = 160
#volume_normalization = true
#private_session = false
timeout = 5000
#allow_cache = true
#allow_network = true
#allow_playlists = true
#search_album_count = 20
#search_artist_count = 10
#search_track_count = 50
#toplist_countries =
[iris]
#enabled = true
#country = NZ
#locale = en_NZ
#verify_certificates = true
#snapcast_enabled = true
#snapcast_host = localhost
#snapcast_port = 1780
#snapcast_ssl = false
#snapcast_stream = Default
#spotify_authorization_url = https://jamesbarnsley.co.nz/iris/auth_spotify.php
#lastfm_authorization_url = https://jamesbarnsley.co.nz/iris/auth_lastfm.php
#genius_authorization_url = https://jamesbarnsley.co.nz/iris/auth_genius.php
#data_dir = $XDG_DATA_DIR/iris
[file]
enabled = false
#media_dirs =
# $XDG_MUSIC_DIR|Music
# ~/|Home
#excluded_file_extensions =
# .directory
# .html
# .jpeg
# .jpg
# .log
# .nfo
# .pdf
# .png
# .txt
# .zip
#show_dotfiles = false
#follow_symlinks = false
#metadata_timeout = 1000
[http]
#enabled = true
#hostname = 127.0.0.1
#port = 6680
#zeroconf = Mopidy HTTP server on $hostname
#allowed_origins =
#csrf_protection = true
#default_app = mopidy
[m3u]
#enabled = true
#base_dir = $XDG_MUSIC_DIR
#default_encoding = latin-1
#default_extension = .m3u8
#playlists_dir =
[softwaremixer]
#enabled = true
[stream]
#enabled = true
#protocols =
# http
# https
# mms
# rtmp
# rtmps
# rtsp
#metadata_blacklist =
#timeout = 5000
[mpd]
#enabled = true
#hostname = 127.0.0.1
#port = 6600
#password =
#max_connections = 20
#connection_timeout = 60
#zeroconf = Mopidy MPD server on $hostname
#command_blacklist =
# listall
# listallinfo
#default_playlist_scheme = m3u
[local]
#enabled = true
#max_search_results = 100
media_dir = $XDG_MUSIC_DIR
#scan_timeout = 1000
#scan_flush_threshold = 100
#scan_follow_symlinks = false
#included_file_extensions =
#excluded_file_extensions =
# .cue
# .directory
# .html
# .jpeg
# .jpg
# .log
# .nfo
# .pdf
# .png
# .txt
# .zip
#directories =
# Albums local:directory?type=album
# Artists local:directory?type=artist
# Composers local:directory?type=artist&role=composer
# Genres local:directory?type=genre
# Performers local:directory?type=artist&role=performer
# Release Years local:directory?type=date&format=%25Y
# Tracks local:directory?type=track
# Last Week's Updates local:directory?max-age=604800
# Last Month's Updates local:directory?max-age=2592000
#timeout = 10
#use_artist_sortname = false
#album_art_files =
# *.jpg
# *.jpeg
# *.png
[mpris]
#enabled = true
#bus_type = session
[scrobbler]
#enabled = true
#username =
#password =
[somafm]
#enabled = true
#encoding = mp3
#quality = fast
dj_as_artist = false
[youtube]
#enabled = true
allow_cache = true
#youtube_api_key =
#search_results = 15
#playlist_max_videos = 20
#api_enabled = false
#channel_id =
#musicapi_enabled = false
#musicapi_cookie =
#autoplay_enabled = false
#strict_autoplay = false
#max_autoplay_length = 600
#max_degrees_of_separation = 3
youtube_dl_package = yt-dlp
[bandcamp]
enabled = false
#discover_pages = 1
#collection_items = 50
discover_genres =
# All
# Electronic
# Rock
# Metal
# Alternative
# Hip-Hop/Rap
# Experimental
# Punk
# Folk
# Pop
# Ambient
# Soundtrack
# World
# Jazz
# Acoustic
# Funk
# R&B/Soul
# Devotional
# Classical
# Reggae
# Podcasts
# Country
# Spoken Word
# Comedy
# Blues
# Kids
# Audiobooks
# Latin
discover_tags =
Outrun
Future Funk
Alternative Hip-Hop
Cozy Synth
Post Metal
Post Punk
# Tokyo, Japan
#image_sizes =
# 10
# 5
# 2
#identity =

View file

@ -0,0 +1,630 @@
def_key "+"
show_clock
def_key "="
volume_up
def_key "j"
scroll_down
def_key "k"
scroll_up
def_key "ctrl-u"
page_up
def_key "ctrl-d"
page_down
def_key "u"
page_up
def_key "d"
page_down
def_key "h"
previous_column
def_key "l"
next_column
def_key "."
show_lyrics
def_key "n"
next_found_item
def_key "N"
previous_found_item
# not used but bound
def_key "J"
move_selected_items_down
def_key "K"
move_selected_items_up
def_key "h"
jump_to_parent_directory
def_key "l"
enter_directory
def_key "l"
run_action
def_key "l"
play_item
def_key "m"
show_media_library
def_key "m"
toggle_media_library_columns_mode
def_key "t"
select_item
scroll_down
def_key "v"
select_range
def_key "ctrl-v"
select_item
def_key "V"
remove_selection
def_key "G"
move_end
def_key "g"
move_home
def_key "U"
update_database
def_key "s"
reset_search_engine
def_key "s"
show_search_engine
#def_key "f"
# show_browser
#def_key "f"
# change_browse_mode
def_key "x"
delete_playlist_items
def_key "P"
move_selected_items_to
def_key "f"
seek_forward
def_key "b"
seek_backward
def_key "'"
jump_to_playing_song
##############################################################
## This is the example bindings file. Copy it to ##
## $XDG_CONFIG_HOME/ncmpcpp/bindings or ~/.ncmpcpp/bindings ##
## and set up your preferences. ##
##############################################################
##
##### General rules #####
##
## 1) Because each action has runtime checks whether it's
## ok to run it, a few actions can be bound to one key.
## Actions will be bound in order given in configuration
## file. When a key is pressed, first action in order
## will test itself whether it's possible to run it. If
## test succeeds, action is executed and other actions
## bound to this key are ignored. If it doesn't, next
## action in order tests itself etc.
##
## 2) It's possible to bind more that one action at once
## to a key. It can be done using the following syntax:
##
## def_key "key"
## action1
## action2
## ...
##
## This creates a chain of actions. When such chain is
## executed, each action in chain is run until the end of
## chain is reached or one of its actions fails to execute
## due to its requirements not being met. If multiple actions
## and/or chains are bound to the same key, they will be
## consecutively run until one of them gets fully executed.
##
## 3) When ncmpcpp starts, bindings configuration file is
## parsed and then ncmpcpp provides "missing pieces"
## of default keybindings. If you want to disable some
## bindings, there is a special action called 'dummy'
## for that purpose. Eg. if you want to disable ability
## to crop playlists, you need to put the following
## into configuration file:
##
## def_key "C"
## dummy
##
## After that ncmpcpp will not bind any default action
## to this key.
##
## 4) To let you write simple macros, the following special
## actions are provided:
##
## - push_character "character" - pushes given special
## character into input queue, so it will be immediately
## picked by ncmpcpp upon next call to readKey function.
## Accepted values: mouse, up, down, page_up, page_down,
## home, end, space, enter, insert, delete, left, right,
## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
## In addition, most of these names can be prefixed with
## alt-/ctrl-/shift- to be recognized with the appropriate
## modifier key(s).
##
## - push_characters "string" - pushes given string into
## input queue.
##
## - require_runnable "action" - checks whether given action
## is runnable and fails if it isn't. This is especially
## useful when mixed with previous two functions. Consider
## the following macro definition:
##
## def_key "key"
## push_characters "custom_filter"
## apply_filter
##
## If apply_filter can't be currently run, we end up with
## sequence of characters in input queue which will be
## treated just as we typed them. This may lead to unexpected
## results (in this case 'c' will most likely clear current
## playlist, 'u' will trigger database update, 's' will stop
## playback etc.). To prevent such thing from happening, we
## need to change above definition to this one:
##
## def_key "key"
## require_runnable "apply_filter"
## push_characters "custom_filter"
## apply_filter
##
## Here, first we test whether apply_filter can be actually run
## before we stuff characters into input queue, so if condition
## is not met, whole chain is aborted and we're fine.
##
## - require_screen "screen" - checks whether given screen is
## currently active. accepted values: browser, clock, help,
## media_library, outputs, playlist, playlist_editor,
## search_engine, tag_editor, visualizer, last_fm, lyrics,
## selected_items_adder, server_info, song_info,
## sort_playlist_dialog, tiny_tag_editor.
##
## - run_external_command "command" - runs given command using
## system() function.
##
## - run_external_console_command "command" - runs given console
## command using system() function.
##
##
## 5) In addition to binding to a key, you can also bind actions
## or chains of actions to a command. If it comes to commands,
## syntax is very similar to defining keys. Here goes example
## definition of a command:
##
## def_command "quit" [deferred]
## stop
## quit
##
## If you execute the above command (which can be done by
## invoking action execute_command, typing 'quit' and pressing
## enter), ncmpcpp will stop the player and then quit. Note the
## presence of word 'deferred' enclosed in square brackets. It
## tells ncmpcpp to wait for confirmation (ie. pressing enter)
## after you typed quit. Instead of 'deferred', 'immediate'
## could be used. Then ncmpcpp will not wait for confirmation
## (enter) and will execute the command the moment it sees it.
##
## Note: while command chains are executed, internal environment
## update (which includes current window refresh and mpd status
## update) is not performed for performance reasons. However, it
## may be desirable to do so in some situration. Therefore it's
## possible to invoke by hand by performing 'update enviroment'
## action.
##
## Note: There is a difference between:
##
## def_key "key"
## action1
##
## def_key "key"
## action2
##
## and
##
## def_key "key"
## action1
## action2
##
## First one binds two single actions to the same key whilst
## second one defines a chain of actions. The behavior of
## these two is different and is described in (1) and (2).
##
## Note: Function def_key accepts non-ascii characters.
##
##### List of unbound actions #####
##
## The following actions are not bound to any key/command:
##
## - set_volume
## - load
##
#
#def_key "mouse"
# mouse_event
#
#def_key "up"
# scroll_up
#
#def_key "shift-up"
# select_item
# scroll_up
#
#def_key "down"
# scroll_down
#
#def_key "shift-down"
# select_item
# scroll_down
#
#def_key "["
# scroll_up_album
#
#def_key "]"
# scroll_down_album
#
#def_key "{"
# scroll_up_artist
#
#def_key "}"
# scroll_down_artist
#
#def_key "page_up"
# page_up
#
#def_key "page_down"
# page_down
#
#def_key "home"
# move_home
#
#def_key "end"
# move_end
#
#def_key "insert"
# select_item
#
#def_key "enter"
# enter_directory
#
#def_key "enter"
# toggle_output
#
#def_key "enter"
# run_action
#
#def_key "enter"
# play_item
#
#def_key "space"
# add_item_to_playlist
#
#def_key "space"
# toggle_lyrics_update_on_song_change
#
#def_key "space"
# toggle_visualization_type
#
#def_key "delete"
# delete_playlist_items
#
#def_key "delete"
# delete_browser_items
#
#def_key "delete"
# delete_stored_playlist
#
#def_key "right"
# next_column
#
#def_key "right"
# slave_screen
#
#def_key "right"
# volume_up
#
#def_key "+"
# volume_up
#
#def_key "left"
# previous_column
#
#def_key "left"
# master_screen
#
#def_key "left"
# volume_down
#
#def_key "-"
# volume_down
#
#def_key ":"
# execute_command
#
#def_key "tab"
# next_screen
#
#def_key "shift-tab"
# previous_screen
#
#def_key "f1"
# show_help
#
#def_key "1"
# show_playlist
#
#def_key "2"
# show_browser
#
#def_key "2"
# change_browse_mode
#
#def_key "3"
# show_search_engine
#
#def_key "3"
# reset_search_engine
#
#def_key "4"
# show_media_library
#
#def_key "4"
# toggle_media_library_columns_mode
#
#def_key "5"
# show_playlist_editor
#
#def_key "6"
# show_tag_editor
#
#def_key "7"
# show_outputs
#
#def_key "8"
# show_visualizer
#
#def_key "="
# show_clock
#
#def_key "@"
# show_server_info
#
#def_key "s"
# stop
#
#def_key "p"
# pause
#
#def_key ">"
# next
#
#def_key "<"
# previous
#
#def_key "ctrl-h"
# jump_to_parent_directory
#
#def_key "ctrl-h"
# replay_song
#
#def_key "backspace"
# jump_to_parent_directory
#
#def_key "backspace"
# replay_song
#
#def_key "backspace"
# play
#
#def_key "f"
# seek_forward
#
#def_key "b"
# seek_backward
#
#def_key "r"
# toggle_repeat
#
#def_key "z"
# toggle_random
#
#def_key "y"
# save_tag_changes
#
#def_key "y"
# start_searching
#
#def_key "y"
# toggle_single
#
#def_key "R"
# toggle_consume
#
#def_key "Y"
# toggle_replay_gain_mode
#
#def_key "T"
# toggle_add_mode
#
#def_key "|"
# toggle_mouse
#
#def_key "#"
# toggle_bitrate_visibility
#
#def_key "Z"
# shuffle
#
#def_key "x"
# toggle_crossfade
#
#def_key "X"
# set_crossfade
#
#def_key "u"
# update_database
#
#def_key "ctrl-s"
# sort_playlist
#
#def_key "ctrl-s"
# toggle_browser_sort_mode
#
#def_key "ctrl-s"
# toggle_media_library_sort_mode
#
#def_key "ctrl-r"
# reverse_playlist
#
#def_key "ctrl-f"
# apply_filter
#
#def_key "ctrl-_"
# select_found_items
#
#def_key "/"
# find
#
#def_key "/"
# find_item_forward
#
#def_key "?"
# find
#
#def_key "?"
# find_item_backward
#
#def_key "."
# next_found_item
#
#def_key ","
# previous_found_item
#
#def_key "w"
# toggle_find_mode
#
#def_key "e"
# edit_song
#
#def_key "e"
# edit_library_tag
#
#def_key "e"
# edit_library_album
#
#def_key "e"
# edit_directory_name
#
#def_key "e"
# edit_playlist_name
#
#def_key "e"
# edit_lyrics
#
#def_key "i"
# show_song_info
#
#def_key "I"
# show_artist_info
#
#def_key "g"
# jump_to_position_in_song
#
#def_key "l"
# show_lyrics
#
#def_key "ctrl-v"
# select_range
#
#def_key "v"
# reverse_selection
#
#def_key "V"
# remove_selection
#
#def_key "B"
# select_album
#
#def_key "a"
# add_selected_items
#
#def_key "c"
# clear_playlist
#
#def_key "c"
# clear_main_playlist
#
#def_key "C"
# crop_playlist
#
#def_key "C"
# crop_main_playlist
#
#def_key "m"
# move_sort_order_up
#
#def_key "m"
# move_selected_items_up
#
#def_key "n"
# move_sort_order_down
#
#def_key "n"
# move_selected_items_down
#
#def_key "M"
# move_selected_items_to
#
#def_key "A"
# add
#
#def_key "S"
# save_playlist
#
#def_key "o"
# jump_to_playing_song
#
#def_key "G"
# jump_to_browser
#
#def_key "G"
# jump_to_playlist_editor
#
#def_key "~"
# jump_to_media_library
#
#def_key "E"
# jump_to_tag_editor
#
#def_key "U"
# toggle_playing_song_centering
#
#def_key "P"
# toggle_display_mode
#
#def_key "\\"
# toggle_interface
#
#def_key "!"
# toggle_separators_between_albums
#
#def_key "L"
# toggle_lyrics_fetcher
#
#def_key "F"
# fetch_lyrics_in_background
#
#def_key "alt-l"
# toggle_fetching_lyrics_in_background
#
#def_key "ctrl-l"
# toggle_screen_lock
#
#def_key "`"
# toggle_library_tag_type
#
#def_key "`"
# refetch_lyrics
#
#def_key "`"
# add_random_items
#
#def_key "ctrl-p"
# set_selected_items_priority
#
#def_key "q"
# quit
#

View file

@ -0,0 +1,56 @@
mouse_support = "yes"
jump_to_now_playing_song_at_start = "yes"
playlist_disable_highlight_delay = "3"
message_delay_time = "1"
song_window_title_format = "{%a - }{%t}|{%f}"
titles_visibility = "yes"
header_text_scrolling = "yes"
display_remaining_time = "yes"
ignore_leading_the = "yes"
colors_enabled = "yes"
color1 = "cyan"
color2 = "blue"
current_item_prefix = "$(magenta_236)"
current_item_suffix = "$(end)"
current_item_inactive_column_prefix = "$(magenta)"
current_item_inactive_column_suffix = "$(end)"
[header]
header_visibility = "no"
# header_window_color = "magenta"
header_window_color = "default"
volume_color = "4"
# state_flags_color = "blue"
# main_window_color = "cyan"
state_line_color = "9"
[playlist]
playlist_display_mode = "columns" #(classic/columns)
browser_display_mode = "columns" #(classic/columns)
song_columns_list_format = "(33)[cyan]{t} (32)[green]{a} (30)[magenta]{b} (5f)[blue]{l}"
song_list_format = "{%a - }{%t}|{$5%f$9}$R{$7(%l)$9}"
now_playing_prefix = "$b"
now_playing_suffix = "$/b"
browser_playlist_prefix = "$1»$1 "
[statusbar]
#progressbar_look = "─╼" (Alternative look)
progressbar_look = "━━━"
progressbar_color = "9"
statusbar_visibility = "yes"
progressbar_elapsed_color = "4"
statusbar_color = "cyan"
song_status_format = "$5$b%t $5$/b• $3%a $5• $6%b {(Disc %d) }$5• $4%y"
[library]
song_library_format = "{{%a - %t}|{%f}}{$R%l}"
empty_tag_marker = ""
empty_tag_color = "9"
[global]
user_interface = "alternative" #(classic/alternative)
main_window_color = "default"
centered_cursor = "yes"
enable_window_title = "yes"
external_editor = "nvim"
execute_on_song_change="notify-send "Now Playing ♫" "$(playerctl metadata artist): $(playerctl metadata title)" -i $HOME/.local/share/mopidy/local/images/$(playerctl metadata mpris:artUrl | sed -e 's|/local/||') -c mpd -u low"

View file

@ -0,0 +1,4 @@
#!/usr/bin/env sh
# Ensure the directory for beets library exists or it errors out on startup
[ -e "${XDG_DATA_HOME:-$HOME/.local/share}/beets" ] || mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/beets"

View file

@ -10,7 +10,7 @@ text/calendar; mutt-ics; copiousoutput
application/ics; mutt-ics; copiousoutput
# open images externally
image/*; nsxiv %s ;
image/*; imv %s ;
# open videos in mpv
video/*; mpv --autofit-larger=90\%x90\% %s; needsterminal;

View file

@ -30,6 +30,10 @@ bind pager,index za collapse-thread
bind pager,index zA collapse-all
bind pager,index zr reconstruct-thread
bind pager,index zR entire-thread
# Saner copy/move dialogs
macro index,pager C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index,pager M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
macro index,pager gM "<tag-thread><tag-prefix><save-message>?<toggle-mailboxes>" "move thread to a mailbox"
# Email completion bindings
bind editor <Tab> complete-query
@ -78,9 +82,6 @@ macro index,pager \CU "|urlview<enter>" "call urlview to open links"
macro index O "<sync-mailbox><shell-escape>export MBSYNC_PRE=true; sync-mail<enter><sync-mailbox>" "refresh all e-mail"
macro index o "<sync-mailbox><shell-escape>export MBSYNC_PRE=true; sync-mail gmail-inbox<enter><sync-mailbox>" "refresh inbox e-mail"
# Saner copy/move dialogs
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
# Send mail to taskwarrior
macro index,pager T "<pipe-message>mutt2task -c -d -t<enter>" "add mail as task to taskwarrior with custom description and tags"

View file

@ -13,7 +13,6 @@ c.url.searchengines = {
"g": "https://www.google.com/search?q={}",
"gh": "https://github.com/search?q={}",
"gol": "https://golang.org/pkg/{}/",
"gt": "https://translate.google.com/#auto/de/{}",
"hn": "https://hn.algolia.com/?q={}",
"kb": "https://soeg.kb.dk/discovery/search?query=any,contains,{}&lang=en",
"l": "https://links.martyoeh.me/?searchterm={}&searchtags=",
@ -21,6 +20,7 @@ c.url.searchengines = {
"man": "https://manned.org/browse/search?q={}",
"maps": "https://www.qwant.com/maps/?q={}",
"pcw": "https://www.pcgamingwiki.com/w/index.php?search={}",
"py": "https://pypi.org/search/?q={}",
"r": "https://www.reddit.com/r/{}",
"t": "https://www.thesaurus.com/browse/{}",
"w": "https://en.wikipedia.org/w/index.php?search={}",

64
scripts/.local/bin/wallcrop.sh Executable file
View file

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# A simple script to make it easy for me to crop newly found wallpapers
# to size, for one 1920x1080 screen on the left and one on the right.
# The resulting images can be used with wallpaper programs (e.g. swww)
# to nicely display per monitor without stretching.
#
# Usage: wallcrop.sh path/to/my/imagefile.jpg
# It will drop two cut versions in the same directory and tell you where
# they are.
# TODO check image dimensions and warn user if not 3840x1080, or at least if smaller than cropped area
main() {
fullname="$1"
filename=$(basename -- "$fullname")
pathonly=${fullname/$filename/}
extension="${filename##*.}"
filename="${filename%.*}"
out_left="${pathonly}${filename}_l.$extension"
out_right="${pathonly}${filename}_r.$extension"
printf "input: %s\noutput left:%s\noutput right: %s\n" "$fullname" "$out_left" "$out_right"
gm convert "$fullname" -crop 1920x1080+0+0 "$out_left"
gm convert "$fullname" -crop 1920x1080+1920+0 "$out_right"
}
usage="$(basename "$0") [-h] path/to/my/imagefile.jpg -- Simple image cropper for dual screen 1920x1080 setups.
A simple script to make it easy for me to crop newly found wallpapers
to size, for one 1920x1080 screen on the left and one on the right.
The resulting images can be used with wallpaper programs (e.g. swww)
to nicely display per monitor without stretching.
-h show this help text
It will drop two cut versions in the same directory and tell you where
they are."
while getopts ':h' option; do
case "$option" in
h)
echo "$usage"
exit
;;
:)
printf "missing argument for -%s\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
\?)
printf "illegal option: -%s\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
esac
done
shift $((OPTIND - 1))
if [ "$#" -ne 1 ]; then
echo "$usage" >&2
exit 1
fi
main "$1"

View file

@ -1,12 +0,0 @@
[Unit]
Description=Record pc window usage
PartOf=graphical-session.target
Requires=x-started-confirm.service
After=x-started-confirm.service
[Service]
ExecStart=/usr/bin/aw-qt
Restart=on-failure
[Install]
WantedBy=default.target

View file

@ -1 +0,0 @@
../activitywatch.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/user/dunst.service

View file

@ -1 +0,0 @@
../geoclue-agent.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/user/redshift.service

View file

@ -1 +0,0 @@
../uni-notes-sync.service

View file

@ -1,8 +0,0 @@
[Unit]
Description=redshift needs to get a (geo)clue
[Service]
ExecStart=/usr/lib/geoclue-2.0/demos/agent
[Install]
WantedBy=default.target

View file

@ -1,3 +0,0 @@
[Unit]
Requires=x-started-confirm.service
After=x-started-confirm.service

View file

@ -1,13 +0,0 @@
[Unit]
Description=Automatically commit notes in university directory
After=display-manager.service
[Service]
Type=simple
Environment=GS_TIME_TO_COMMIT=120 GS_UNCHANGED_RUNS_TO_PUSH=30
# workaround to allow relative executable invocation (i.e. current users' home dir)
ExecStart=/bin/bash -c '%h/.local/share/services/git-sync %h/documents/notes/uni'
Restart=on-failure
[Install]
WantedBy=default.target

View file

@ -31,6 +31,8 @@ if exist exa; then
# - usually want to change levels recursed with -L2 -L3 or similar
alias ll="exa --tree -L2 --group-directories-first"
alias LL="exa -a --tree -L2 --group-directories-first"
alias lla="exa --tree --group-directories-first"
alias LLA="exa -a --tree --group-directories-first"
else
alias l="ls -lhF"
alias L="ls -lAhF"
@ -94,8 +96,18 @@ if exist vifm; then
alias vmm='vifm ${PWD}'
fi
# nsxiv image viewer
if exist nsxiv; then
# default image viewer
if exist imv-folder; then
iv() {
if [ "$#" -eq 1 ] && [ -f "$1" ]; then
imv-folder "$1"
else
imv "$@"
fi
}
elif exist imv; then
alias iv=imv
elif exist nsxiv; then
if exist nsxiv-rifle; then
alias iv=nsxiv-rifle
else

View file

@ -70,7 +70,6 @@ unset -f xdg_isThere xdg_makeForUser
export ANDROID_HOME="$XDG_DATA_HOME/android"
export ATOM_HOME="$XDG_DATA_HOME/atom"
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
export GEM_HOME="$XDG_DATA_HOME/gem"
export GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem"
export GNUPGHOME="$XDG_DATA_HOME/gnupg"

View file

@ -0,0 +1,3 @@
urls-source "miniflux"
miniflux-url "https://rss.martyoeh.me/"
miniflux-tokeneval "pass show personal/rss.martyoeh.me/Marty | grep newsboat | cut -f2 -d:"

View file

@ -0,0 +1,806 @@
# Configuration file for tut
[general]
# Shows a confirmation view before actions such as favorite, delete toot, boost
# etc.
# default=true
confirmation=true
# Enable support for using the mouse in tut to select items.
# default=false
mouse-support=true
# Timelines adds windows of feeds. You can customize the number of feeds, what
# they should show and the key to activate them.
#
# Available timelines: home, direct, local, federated, bookmarks, saved,
# favorited, notifications, lists, tag
#
# Tag is special as you need to add the tag after, see the example below.
#
# The syntax is:
# timelines=feed,[name],[keys...],[showBoosts],[showReplies]
#
# Tha values in brackets are optional. You can see the syntax for keys under the
# [input] section.
#
# showBoosts and showReplies must be formated as bools. So either true or false.
# They always defaults to true.
#
# Some examples:
#
# home timeline with the name Home
# timelines=home,Home
#
# local timeline with the name Local and it gets focus when you press 2. It will
# also hide boosts in the timeline, but show toots that are replies.
# timelines=local,Local,'2',false,true
#
# notification timeline with the name [N]otifications and it gets focus when you
# press n or N
# timelines=notifications,[N]otifications,'n','N'
#
# tag timeline for #linux with the name Linux and it gets focus when you press
# timelines=tag linux,Linux,"F2"
#
#
# If you don't set any timelines it will default to this:
# timelines=home
# timelines=notifications,[N]otifications,'n','N'
#
timelines=home,Home,'1'
timelines=notifications,[N]otifications,'n','N'
timelines=local,Local,'2',false,true
# The date format to be used. See https://godoc.org/time#Time.Format
# default=2006-01-02 15:04
date-format=2006-01-02 15:04
# Format for dates the same day. See date-format for more info.
# default=15:04
date-today-format=15:04
# This displays relative dates instead for statuses that are one day or older
# the output is 1y2m1d (1 year 2 months and 1 day)
#
# The value is an integear
# -1 = don't use relative dates
# 0 = always use relative dates, except for dates < 1 day
# 1 - ∞ = number of days to use relative dates
#
# Example: date-relative=28 will display a relative date for toots that are
# between 1-28 days old. Otherwhise it will use the short or long format.
# default=-1
date-relative=-1
# The max width of text before it wraps when displaying toots.
# 0 = no restriction.
# default=0
max-width=0
# Where do you want the list of toots to be placed?
# Valid values: left, right, top, bottom.
# default=left
list-placement=bottom
# If you have notification-feed set to true you can display it under the main
# list of toots (row) or place it to the right of the main list of toots
# (column).
# default=row
list-split=column
# You can change the proportions of the list view in relation to the content
# view list-proportion=1 and content-proportoin=3 will result in the content
# taking up 3 times more space.
# Must be n > 0
# default=1
list-proportion=1
# See list-proportion
# default=2
content-proportion=2
# Hide notifications of this type. If you have multiple you separate them with a
# comma. Valid types: mention, status, boost, follow, follow_request, favorite,
# poll, edit.
# default=
notifications-to-hide=
# If you always want to quote original message when replying.
# default=false
quote-reply=false
# If you're on an instance with a custom character limit you can set it here.
# default=500
char-limit=500
# If you want to show icons in the list of toots.
# default=true
show-icons=true
# If you've learnt all the shortcut keys you can remove the help text and only
# show the key in tui. So it gets less cluttered.
# default=false
short-hints=false
# If you want to display the filter that filtered a toot.
# default=true
show-filter-phrase=true
# If you want to show a message in the cmdbar on how to access the help text.
# default=true
show-help=true
# If you always want tut to jump to the newest post. May ruin your reading
# experience.
# default=false
stick-to-top=false
# 0 = No terminal title
# 1 = Show title in terminal and top bar
# 2 = Only show terminal title, and no top bar in tut.
# default=0
terminal-title=0
# If you don't want the whole UI to update, and only the text content you can
# set this option to true. This will lead to some artifacts being left on the
# screen when emojis are present. But it will keep the UI from flashing on every
# single toot in some terminals.
# default=true
redraw-ui=true
# The leader is used as a shortcut to run commands as you can do in Vim. By
# default this is disabled and you enable it by setting a leader-key. It can
# only consist of one char and I like to use comma as leader key. So to set it
# you write leader-key=,
# default=
leader-key=
# Number of milliseconds before the leader command resets. So if you tap the
# leader-key by mistake or are to slow it empties all the input after X
# milliseconds.
# default=1000
leader-timeout=1000
# You set actions for the leader-key with one or more leader-action. It consists
# of two parts first the action then the shortcut. And they're separated by a
# comma.
#
# Available commands: home, direct, local, federated, clear-notifications,
# compose, edit, history, blocking, bookmarks, saved, favorited, boosts,
# favorites, following, followers, muting, newer, preferences, profile,
# notifications, lists, stick-to-top, tag, tags, window, list-placement,
# list-split, proportions
#
# The shortcuts are up to you, but keep them quite short and make sure they
# don't collide. If you have one shortcut that is "f" and an other one that is
# "fav", the one with "f" will always run and "fav" will never run.
#
# Some special leaders:
# tag is special as you need to add the tag after, e.g. tag linux
# window is special as it's a shortcut for switching between the timelines
# you've set under general and they are zero indexed. window 0 = your first
# timeline, window 1 = your second and so on.
# list-placement as it takes the argument top, right, bottom or left
# list-split as it takes the argument column or row
# proportions takes the arguments [int] [int], where the first integer is the
# list and the other content, e.g. proportions 1 3. See list-proportion above
# for more information.
#
# Some examples:
# leader-action=local,lo
# leader-action=lists,li
# leader-action=federated,fed
# leader-action=direct,d
# leader-action=history,h
# leader-action=tag linux,tl
# leader-action=window 0,h
# leader-action=list-placement bottom,b
# leader-action=list-split column,c
# leader-action=proportions 1 3,3
#
[media]
# Your image viewer.
# default=xdg-open
image-viewer=imv
# Open the image viewer in the same terminal as toot. Only for terminal based
# viewers.
# default=false
image-terminal=false
# If images should open one by one e.g. "imv image.png" multiple times. If set
# to false all images will open at the same time like this "imv image1.png
# image2.png image3.png". Not all image viewers support this, so try it first.
# default=true
image-single=true
# If you want to open the images in reverse order. In some image viewers this
# will display the images in the "right" order.
# default=false
image-reverse=false
# Your video viewer.
# default=xdg-open
video-viewer=umpv
# Open the video viewer in the same terminal as toot. Only for terminal based
# viewers.
# default=false
video-terminal=false
# If videos should open one by one. See image-single.
# default=true
video-single=true
# If you want your videos in reverse order. In some video apps this will play
# the files in the "right" order.
# default=false
video-reverse=false
# Your audio viewer.
# default=xdg-open
audio-viewer=xdg-open
# Open the audio viewer in the same terminal as toot. Only for terminal based
# viewers.
# default=false
audio-terminal=false
# If audio should open one by one. See image-single.
# default=true
audio-single=true
# If you want to play the audio files in reverse order. In some audio apps this
# will play the files in the "right" order.
# default=false
audio-reverse=false
# Your web browser.
# default=xdg-open
link-viewer=xdg-open
# Open the browser in the same terminal as toot. Only for terminal based
# browsers.
# default=false
link-terminal=false
[open-custom]
# This sections allows you to set up to five custom programs to open URLs with.
# If the url points to an image, you can set c1-name to img and c1-use to imv.
# If the program runs in a terminal and you want to run it in the same terminal
# as tut. Set cX-terminal to true. The name will show up in the UI, so keep it
# short so all five fits.
#
# c1-name=name
# c1-use=program
# c1-terminal=false
#
# c2-name=name
# c2-use=program
# c2-terminal=false
#
# c3-name=name
# c3-use=program
# c3-terminal=false
#
# c4-name=name
# c4-use=program
# c4-terminal=false
#
# c5-name=name
# c5-use=program
# c5-terminal=false
[open-pattern]
# Here you can set your own glob patterns for opening matching URLs in the
# program you want them to open up in. You could for example open Youtube videos
# in your video player instead of your default browser.
#
# You must name the keys foo-pattern, foo-use and foo-terminal, where use is the
# program that will open up the URL. To see the syntax for glob pattern you can
# follow this URL https://github.com/gobwas/glob#syntax. foo-terminal is if the
# program runs in the terminal and should open in the same terminal as tut
# itself.
#
# Example for youtube.com and youtu.be to open up in mpv instead of the browser.
#
y1-pattern=*youtube.com/watch*
y1-use=umpv
y1-terminal=false
#
y2-pattern=*youtu.be/*
y2-use=umpv
y2-terminal=false
[desktop-notification]
# Notification when someone follows you.
# default=false
followers=false
# Notification when someone favorites one of your toots.
# default=false
favorite=false
# Notification when someone mentions you.
# default=false
mention=false
# Notification when someone edits their toot.
# default=false
update=false
# Notification when someone boosts one of your toots.
# default=false
boost=false
# Notification of poll results.
# default=false
poll=false
# Notification when there is new posts in current timeline.
# default=false
posts=false
[style]
# All styles can be represented in their HEX value like #ffffff or with their
# name, so in this case white. The only special value is "default" which equals
# to transparent, so it will be the same color as your terminal.
#
# You can also use xrdb colors like this xrdb:color1 The program will use colors
# prefixed with an * first then look for URxvt or XTerm if it can't find any
# color prefixed with an asterisk. If you don't want tut to guess the prefix you
# can set the prefix yourself. If the xrdb color can't be found a preset color
# will be used. You'll have to set theme=none for this to work.
# The xrdb prefix used for colors in .Xresources.
# default=guess
xrdb-prefix=guess
# You can use some themes that comes bundled with tut. Check out the themes
# available on the URL below. If a theme is named "nord.ini" you just write
# theme=nord
#
# https://github.com/RasmusLindroth/tut/tree/master/config/themes
#
# You can also create a theme file in your config directory e.g.
# ~/.config/tut/themes/foo.ini and then set theme=foo.
#
# If you want to use your own theme but don't want to create a new file, set
# theme=none and then you can create your own theme below.
# default=default
theme=default
# The background color used on most elements.
# default=
background=
# The text color used on most of the text.
# default=
text=
# The color to display subtle elements or subtle text. Like lines and help text.
# default=
subtle=
# The color for errors or warnings
# default=
warning-text=
# This color is used to display username.
# default=
text-special-one=
# This color is used to display username and key hints.
# default=
text-special-two=
# The color of the bar at the top
# default=
top-bar-background=
# The color of the text in the bar at the top.
# default=
top-bar-text=
# The color of the bar at the bottom
# default=
status-bar-background=
# The color of the text in the bar at the bottom.
# default=
status-bar-text=
# The color of the bar at the bottom in view mode.
# default=
status-bar-view-background=
# The color of the text in the bar at the bottom in view mode.
# default=
status-bar-view-text=
# The color of the text in the command bar at the bottom.
# default=
command-text=
# Background of selected list items.
# default=
list-selected-background=
# The text color of selected list items.
# default=
list-selected-text=
# The background color of selected list items that are out of focus.
# default=
list-selected-inactive-background=
# The text color of selected list items that are out of focus.
# default=
list-selected-inactive-text=
# The main color of the text for key hints
# default=
controls-text=
# The highlight color of for key hints
# default=
controls-highlight=
# The background color in dropdowns and autocompletions
# default=
autocomplete-background=
# The text color in dropdowns at autocompletions
# default=
autocomplete-text=
# The background color for selected value in dropdowns and autocompletions
# default=
autocomplete-selected-background=
# The text color for selected value in dropdowns and autocompletions
# default=
autocomplete-selected-text=
# The background color on selected button and the text color of unselected
# buttons
# default=
button-color-one=
# The text color on selected button and the background color of unselected
# buttons
# default=
button-color-two=
# The background on named timelines.
# default=
timeline-name-background=
# The text color on named timelines
# default=
timeline-name-text=
[input]
# You can edit the keys for tut below.
#
# The syntax is a bit weird, but it works. And I'll try to explain it as well as
# I can.
#
# Example:
# status-favorite="[F]avorite","Un[F]avorite",'f','F'
# status-delete="[D]elete",'d','D'
#
# status-favorite and status-delete differs because favorite can be in two
# states, so you will have to add two key hints.
# Most keys will only have on key hint. Look at the default value for reference.
#
# Key hints must be in some of the following formats. Remember the quotation
# marks.
# "" = empty
# "[D]elete" = Delete with a highlighted D
# "Un[F]ollow" = UnFollow with a highlighted F
# "[Enter]" = Enter where everything is highlighted
# "Yan[K]" = YanK with a highlighted K
#
# After the hint (or hints) you must set the keys. You can do this in two ways,
# with single quotation marks or double ones.
#
# The single ones are for single chars like 'a', 'b', 'c' and double marks are
# for special keys like "Enter". Remember that they are case sensitive.
#
# To find the names of special keys you have to go to the following site and
# look for "var KeyNames = map[Key]string{"
#
# https://github.com/gdamore/tcell/blob/master/key.go
# Keys for moving down
# default="",'j','J',"Down"
global-down="",'j','J',"Down"
# Keys for moving up
# default="",'k','K',"Up"
global-up="",'k','K',"Up"
# To select items
# default="","Enter"
global-enter="","Enter"
# To go back
# default="[Esc]","Esc"
global-back="[Esc]","Esc"
# To go back and exit Tut
# default="[Q]uit",'q','Q'
global-exit="[Q]uit",'q','Q'
# Move to the top
# default="",'g',"Home"
main-home="",'g',"Home"
# Move to the bottom
# default="",'G',"End"
main-end="",'G',"End"
# Go to previous feed
# default="",'h','H',"Left"
main-prev-feed="",'h','H',"Left"
# Go to next feed
# default="",'l','L',"Right"
main-next-feed="",'l','L',"Right"
# Focus on the previous feed window
# default="","Backtab"
main-prev-window="","Backtab"
# Focus on the next feed window
# default="","Tab"
main-next-window="","Tab"
# Focus on the notification list
# default="[N]otifications",'n','N'
main-notification-focus="[N]otifications",'n','N'
# Compose a new toot
# default="",'c','C'
main-compose="",'c','C'
# Open avatar
# default="[A]vatar",'a','A'
status-avatar="[A]vatar",'a','A'
# Boost a toot
# default="[B]oost","Un[B]oost",'b','B'
status-boost="[B]oost","Un[B]oost",'b','B'
# Edit a toot
# default="[E]dit",'e','E'
status-edit="[E]dit",'e','E'
# Delete a toot
# default="[D]elete",'d','D'
status-delete="[D]elete",'d','D'
# Favorite a toot
# default="[F]avorite","Un[F]avorite",'f','F'
status-favorite="[F]avorite","Un[F]avorite",'f','F'
# Open toots media files
# default="[M]edia",'m','M'
status-media="[M]edia",'m','M'
# Open links
# default="[O]pen",'o','O'
status-links="[O]pen",'o','O'
# Open poll
# default="[P]oll",'p','P'
status-poll="[P]oll",'p','P'
# Reply to toot
# default="[R]eply",'r','R'
status-reply="[R]eply",'r','R'
# Save/bookmark a toot
# default="[S]ave","Un[S]ave",'s','S'
status-bookmark="[S]ave","Un[S]ave",'s','S'
# View thread
# default="[T]hread",'t','T'
status-thread="[T]hread",'t','T'
# Open user profile
# default="[U]ser",'u','U'
status-user="[U]ser",'u','U'
# Open the view mode
# default="[V]iew",'v','V'
status-view-focus="[V]iew",'v','V'
# Yank the url of the toot
# default="[Y]ank",'y','Y'
status-yank="[Y]ank",'y','Y'
# Remove the spoiler
# default="Press [Z] to toggle spoiler",'z','Z'
status-toggle-spoiler="Press [Z] to toggle spoiler",'z','Z'
# View avatar
# default="[A]vatar",'a','A'
user-avatar="[A]vatar",'a','A'
# Block the user
# default="[B]lock","Un[B]lock",'b','B'
user-block="[B]lock","Un[B]lock",'b','B'
# Follow user
# default="[F]ollow","Un[F]ollow",'f','F'
user-follow="[F]ollow","Un[F]ollow",'f','F'
# Follow user
# default="Follow [R]equest","Follow [R]equest",'r','R'
user-follow-request-decide="Follow [R]equest","Follow [R]equest",'r','R'
# Mute user
# default="[M]ute","Un[M]ute",'m','M'
user-mute="[M]ute","Un[M]ute",'m','M'
# Open links
# default="[O]pen",'o','O'
user-links="[O]pen",'o','O'
# View user profile
# default="[U]ser",'u','U'
user-user="[U]ser",'u','U'
# Open view mode
# default="[V]iew",'v','V'
user-view-focus="[V]iew",'v','V'
# Yank the user URL
# default="[Y]ank",'y','Y'
user-yank="[Y]ank",'y','Y'
# Open list
# default="[O]pen",'o','O'
list-open-feed="[O]pen",'o','O'
# List all users in a list
# default="[U]sers",'u','U'
list-user-list="[U]sers",'u','U'
# Add user to list
# default="[A]dd",'a','A'
list-user-add="[A]dd",'a','A'
# Delete user from list
# default="[D]elete",'d','D'
list-user-delete="[D]elete",'d','D'
# Open URL
# default="[O]pen",'o','O'
link-open="[O]pen",'o','O'
# Yank the URL
# default="[Y]ank",'y','Y'
link-yank="[Y]ank",'y','Y'
# Open tag feed
# default="[O]pen",'o','O'
tag-open-feed="[O]pen",'o','O'
# Toggle follow on tag
# default="[F]ollow","Un[F]ollow",'f','F'
tag-follow="[F]ollow","Un[F]ollow",'f','F'
# Edit spoiler text on new toot
# default="[C]W text",'c','C'
compose-edit-spoiler="[C]W text",'c','C'
# Edit the text on new toot
# default="[E]dit text",'e','E'
compose-edit-text="[E]dit text",'e','E'
# Include a quote when replying
# default="[I]nclude quote",'i','I'
compose-include-quote="[I]nclude quote",'i','I'
# Focus on adding media to toot
# default="[M]edia",'m','M'
compose-media-focus="[M]edia",'m','M'
# Post the new toot
# default="[P]ost",'p','P'
compose-post="[P]ost",'p','P'
# Toggle content warning on toot
# default="[T]oggle CW",'t','T'
compose-toggle-content-warning="[T]oggle CW",'t','T'
# Edit the visibility on new toot
# default="[V]isibility",'v','V'
compose-visibility="[V]isibility",'v','V'
# Edit the language of a toot
# default="[L]ang",'l','L'
compose-language="[L]ang",'l','L'
# Switch to creating a poll
# default="P[O]ll",'o','O'
compose-poll="P[O]ll",'o','O'
# Delete media file
# default="[D]elete",'d','D'
media-delete="[D]elete",'d','D'
# Edit the description on media file
# default="[E]dit desc",'e','E'
media-edit-desc="[E]dit desc",'e','E'
# Add a new media file
# default="[A]dd",'a','A'
media-add="[A]dd",'a','A'
# Vote on poll
# default="[V]ote",'v','V'
vote-vote="[V]ote",'v','V'
# Select item to vote on
# default="[Enter] to select",' ', "Enter"
vote-select="[Enter] to select",' ', "Enter"
# Add a new poll option
# default="[A]dd",'a','A'
poll-add="[A]dd",'a','A'
# Edit a poll option
# default="[E]dit",'e','E'
poll-edit="[E]dit",'e','E'
# Delete a poll option
# default="[D]elete",'d','D'
poll-delete="[D]elete",'d','D'
# Toggle voting on multiple options
# default="Toggle [M]ultiple",'m','M'
poll-multi-toggle="Toggle [M]ultiple",'m','M'
# Change the expiration of poll
# default="E[X]pires",'x','X'
poll-expiration="E[X]pires",'x','X'
# Change display name
# default="[N]ame",'n','N'
preference-name="[N]ame",'n','N'
# Change default visibility of toots
# default="[V]isibility",'v','V'
preference-visibility="[V]isibility",'v','V'
# Change bio in profile
# default="[B]io",'b','B'
preference-bio="[B]io",'b','B'
# Save your preferences
# default="[S]ave",'s','S'
preference-save="[S]ave",'s','S'
# Edit profile fields
# default="[F]ields",'f','F'
preference-fields="[F]ields",'f','F'
# Add new field
# default="[A]dd",'a','A'
preference-fields-add="[A]dd",'a','A'
# Edit current field
# default="[E]dit",'e','E'
preference-fields-edit="[E]dit",'e','E'
# Delete current field
# default="[D]elete",'d','D'
preference-fields-delete="[D]elete",'d','D'

View file

@ -279,6 +279,8 @@ nnoremap xx :!atool -x %f<cr>
nnoremap xc :!atool -a %c:r.tar.gz %f<cr>
" archive currently selected file(s)
nnoremap xa :!atool -a %c:r.tar %f<cr>
" archive currently selected file(s)
nnoremap xz :!atool -a %c:r.zip %f<cr>
" combine selected PDFs into single one (named output.pdf)
noremap gc :!pdftk %f cat output output.pdf
@ -442,6 +444,8 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ timg --title --center --clear %f; read -k 1 -s -r,
\ {View in nsxiv directory viewer}
\ vifm-thumbnailer %c,
\ {View in imv}
\ imv %f,
\ {View in nsxiv}
\ nsxiv %f,
\ {View in vimiv}

View file

@ -1,9 +1,18 @@
profile docked {
output eDP-1 disable
output "LG Electronics W2442 0x000075FD" position 1920,0
output "LG Electronics W2442 0x000075E1" position 0,0
exec notify-send "💻 Display changed" "Applying docked profile"
}
profile docked {
output eDP-1 disable
output "Goldstar Company Ltd W2442 0x000075FD" position 1920,0
output "Goldstar Company Ltd W2442 0x000075E1" position 0,0
exec notify-send "💻 Display changed" "Applying docked profile"
}
profile single {
profile portable {
output eDP-1 enable position 0,0
exec notify-send "💻 Display changed" "Applying portable profile"
}

View file

@ -10,6 +10,8 @@ time_to_suspend=1200
## OPTIONS
riverctl spawn "dbus-update-activation-environment SEATD_SOCK DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
riverctl focus-follows-cursor normal
riverctl set-cursor-warp on-output-change
riverctl hide-cursor when-typing enabled
riverctl attach-mode bottom
# Set background and border color
@ -24,7 +26,7 @@ riverctl float-filter-add app-id float
# riverctl float-filter-add title "popup title with spaces"
# # Set app-ids and titles of views which should use client side decorations
# riverctl csd-filter-add app-id "gedit"
riverctl csd-filter-add app-id "zathura"
riverctl csd-filter-remove app-id "org.pwmt.zathura"
## DEBUG
# Reload river configuration
@ -57,7 +59,7 @@ riverctl map normal $mod+Shift O spawn "qutedmenu"
riverctl map normal $mod+Shift Space spawn "clipman pick --tool=bemenu"
# Open floating calculator
riverctl map normal $mod+Shift R spawn "$term --class float -e qalc"
riverctl map normal $mod+Shift R spawn "$term start --class float -e qalc"
# Open emoji picker
riverctl map normal $mod+Shift E spawn "bemoji -nt"
@ -73,7 +75,7 @@ riverctl map normal $mod+Shift S spawn 'styler set $(styler list themes | bemenu
riverctl map normal $mod+Shift P spawn "pass-pick"
# File upload
riverctl map normal $mod+Shift U spawn "$term --class float -e sharefile | xargs notify-send"
riverctl map normal $mod+Shift U spawn "$term start --class float -e sharefile | xargs notify-send"
# # Screenshot
riverctl map normal None Print spawn "screenshot"
@ -81,10 +83,10 @@ riverctl map normal Shift Print spawn "screenshot | sharefile -"
riverctl map normal $mod Print spawn "screenshot region"
riverctl map normal $mod+Shift Print spawn "screenshot region | sharefile -"
# control dunst notification daemon
riverctl map normal $mod N spawn "dunstctl close"
riverctl map normal $mod+Shift N spawn "dunstctl close-all"
riverctl map normal $mod+Control N spawn "dunstctl history-pop"
# control notification daemon
riverctl map normal $mod N spawn "makoctl dismiss"
riverctl map normal $mod+Shift N spawn "makoctl dismiss --all"
riverctl map normal $mod+Control N spawn "makoctl restore"
# MOVEMENT
# focus the next/previous view in the layout stack
@ -113,6 +115,10 @@ riverctl map normal $mod+Control L snap right
# Mod+F to toggle fullscreen
riverctl map normal $mod F toggle-fullscreen
# shellcheck disable=SC2016
# Make all connected outputs show the desktop and no windows at all
riverctl map normal $mod+Shift M spawn 'for i in $(wlopm | wc -l); do riverctl set-focused-tags $((1 << 10)); riverctl focus-output next; done; riverctl set-focused-tags $((1 << 10)); riverctl focus-output next'
# toggle float
riverctl map normal $mod+Shift v toggle-float
# Mod + Left Mouse Button to move views
@ -228,45 +234,54 @@ done
setxkbmap -option "compose:menu"
# set a nice wallpaper
exec swww init &
if [ -e "$HOME/pictures/wall_l.jpg" ] && [ -e "$HOME/pictures/wall_r.jpg" ]; then
swww img -o DP-5 "$HOME/pictures/wall_l.jpg" &
swww img -o DP-3 "$HOME/pictures/wall_r.jpg" &
elif [ -e "$HOME/pictures/wall.jpg" ]; then
swww img "$HOME/pictures/wall.jpg" &
if exist wlopm && exist swww; then
riverctl spawn "swww init"
if [ -e "$HOME/pictures/wall.jpg" ]; then
swww img "$HOME/pictures/wall.jpg"
fi
if wlopm | grep -q DP-5 && wlopm | grep -q DP-3 && [ -e "$HOME/pictures/wall_l.jpg" ] && [ -e "$HOME/pictures/wall_r.jpg" ]; then
swww img -o DP-5 "$HOME/pictures/wall_l.jpg"
swww img -o DP-3 "$HOME/pictures/wall_r.jpg"
fi
fi
# killall mako
# mako &
# start status bar
killall waybar
exec waybar &
riverctl spawn waybar
# start dynamic display configuration
killall kanshi
exec kanshi &
riverctl spawn kanshi
# start redshift-like sundown warming using current location or standard values
killall wlsunset
loc=$(curl ipinfo.io | grep -e '"loc": ' | sed -e 's/^.*"loc": "\(.*\)",$/\1/')
if [ -n "$loc" ]; then
riverctl spawn "wlsunset -l \"$(echo "$loc" | cut -d, -f1)\" -L \"$(echo "$loc" | cut -d, -f2)\""
else
riverctl spawn "wlsunset -S \"09:00\" -s \"21:00\" -d \"3600\""
fi
unset loc
# start screen idle locking/dimming/sleep tool
killall swayidle
exec swayidle \
timeout "${time_to_lockscreen}" 'lockscreen' \
timeout "${time_to_screendim}" 'wlopm --off "*"' \
timeout "${time_to_suspend}" 'systemctl suspend-then-hibernate' \
resume 'wlopm --on "*"' \
after-resume 'wlopm --on "*"' \
before-sleep 'lockscreen' &
riverctl spawn "swayidle \
timeout ${time_to_lockscreen} 'pidof waylock || lockscreen' \
timeout ${time_to_screendim} 'wlopm --off \"*\"' \
timeout ${time_to_suspend} 'systemctl suspend-then-hibernate' \
resume 'wlopm --on \"*\"' \
after-resume 'wlopm --on \"*\"' \
before-sleep 'pidof waylock || lockscreen' &"
killall clipman
exec wl-paste -t text --watch clipman store &
riverctl spawn "wl-paste -t text --watch clipman store"
# bash ~/.config/bin/gtktheme # setting our gtk variables
# killall polkit-gnome-authentication-agent-1
# /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
# Set and exec into the default layout generator, rivercarro.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivercarro &
# start layouting engine
killall rivercarro
exec rivercarro -main-ratio 0.65 &
riverctl spawn "rivercarro -main-ratio 0.65"
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivercarro
# exec rivercarro -main-ratio 0.65 -view-padding 6 -outer-padding 6 & # -> does not work with current rivercarro version (0.1.4)
brightnessctl set 70%

View file

@ -67,7 +67,8 @@ local keys = {
action = act.ActivateKeyTable {
name = 'scroll_mode',
one_shot = false,
replace_current = true
replace_current = true,
timeout_milliseconds = 15000,
}
}, { key = 'e', mods = 'LEADER', action = act.EmitEvent 'edit-scrollback' }, {
key = 'l',