theme updates

This commit is contained in:
2025-10-08 15:47:18 +02:00
parent 2e919d6702
commit dcc50fa9f2
6 changed files with 319 additions and 281 deletions

View File

@@ -1,117 +0,0 @@
# Simple black-and-white theme
# Pointers
# ========
# Sign that indicates the existence of audio files
FORMAT_LOCAL="|>"
# Pointer to the track currently playing (playlist)
FORMAT_CURRENT="->"
# Input prompt
# =============
# Search prompt
SEARCH_PROMPT="search> "
# Headers
# =======
# Header that displays artist's name
HEADER_ARTIST="%s > "
# Header that displays the release-group name after artist's
HEADER_ARTIST_RELEASEGROUP="%s > %s > "
# Header that in addition to `HEADER_ARTIST_RELEASEGROUP` also shows some
# release information
HEADER_RELEASE="%s > %s > %s"
# The release information is formatted as follows (placeholders implicit):
HEADER_RELEASE_FORMAT="<<tracks>> tx <<media>> | <<label>> <<country>> <<year>>"
# Artist view
# ===========
# Artist string for persons
AV_PERSON="<<name>>"
# Artist string for groups
AV_GROUP="<<name>>"
# Artist disambiguation string
AV_DISAMBIGUATION=" (<<disambiguation>>)"
# Release-group view
# ==================
# Default release group string
RGV_RELEASE="<<title>>"
# Release group string if the artist name differs from the current artist
RGV_RELEASE_W_ARTIST="<<title>> by <<artist>>"
# Year of the release group
RGV_YEAR="[<<year>>]"
# Release-group types
# ===================
# Album
FORMAT_TYPE_ALBUM="[LP]"
# EP
FORMAT_TYPE_EP="[EP]"
# Single
FORMAT_TYPE_SINGLE="[single]"
# Broadcast
FORMAT_TYPE_BROADCAST="[broadcast]"
# Other
FORMAT_TYPE_OTHER="[other]"
# Flag to indicate that the given release group has associated secondary types.
FORMAT_TYPE_HAS_SECONDARY="%s xx"
# Style to represent secondary types (takes one %s placeholder)
FORMAT_TYPE_SECONDARY="(%s)"
# Secondary types
FORMAT_TYPE_SECONDARY_COMPILATION="compilation"
FORMAT_TYPE_SECONDARY_SOUNDTRACK="OST"
FORMAT_TYPE_SECONDARY_SPOKENWORD="spokenword"
FORMAT_TYPE_SECONDARY_INTERVIEW="interview"
FORMAT_TYPE_SECONDARY_AUDIOBOOK="book"
FORMAT_TYPE_SECONDARY_AUDIODRAMA="drama"
FORMAT_TYPE_SECONDARY_LIVE="live"
FORMAT_TYPE_SECONDARY_REMIX="remix"
FORMAT_TYPE_SECONDARY_DJMIX="DJ"
FORMAT_TYPE_SECONDARY_MIXTAPE="mixtape"
FORMAT_TYPE_SECONDARY_DEMO="demo"
FORMAT_TYPE_SECONDARY_FIELDREC="field rec"
# Artist Preview
# ==============
# Main preview format. Takes two %s placeholder. The first is for the artist
# biography. The second for the life span.
APV_FORMAT="\n\n%s\n\n%s"
# Specification of a date
APV_DATE="%s"
# Specification of a place
APV_PLACE="%s"
# Specification of a date and a place (in that order)
APV_DATEPLACE="%s in %s"
# String to represent when/where a person is born
APV_BORN="Born: %s"
# String to represent when/where a person died
APV_DIED="Died: %s"
# Release view
# ============
# Format of a string that represents a release.
RV_FORMAT="<<status>>\t<<tracks>> tracks\t<<media>>\t<<year>>\t<<country>>\t<<label>>"
# Additional string to display the release title and artist name
RV_TITLE_ARTIST="<<artist>> - <<title>>"
# Additional string to display the release title
RV_TITLE="<<title>>"
# Additional string to display the artist
RV_ARTIST="<<artist>>"
# Release Status
# ==============
FORMAT_STATUS_OFFICIAL="official"
FORMAT_STATUS_PROMO="promo"
FORMAT_STATUS_BOOTLEG="bootleg"
FORMAT_STATUS_PSEUDO="psuedo"
FORMAT_STATUS_WITHDRAWN="withdrawn"
FORMAT_STATUS_EXPUNGED="expunged"
FORMAT_STATUS_CANCELLED="cancelled"
# Recording view
# ==============
# Format of a track in a release
REC_FORMAT="<<med>>\t<<nr>>\t<<title>>\t<<artist>>\t<<duration>>"
# Format of a track in the playlist
REC_FORMAT_NO_NUMBER="<<title>>\t<<artist>>\t<<duration>>"

90
share/theme/lite.sh Normal file
View File

@@ -0,0 +1,90 @@
# Colors (internal only)
ESC=$(printf '\033')
CARTIST="${ESC}[38;5;209m"
CYEAR="${ESC}[38;5;179m"
RED="${ESC}[31m"
GREEN="${ESC}[32m"
YELLOW="${ESC}[33m"
OFF="${ESC}[m"
# Pointers
# ========
# Sign that indicates the existence of audio files
FORMAT_LOCAL="${YELLOW}|>${OFF}"
# Input prompt
# =============
# General search prompt (for now only used when choosing one-of-many artist)
SEARCH_PROMPT="search> "
# General workings of format strings
#
# A format string (_FMT) contains placeholders, e.g., <<name>>. These
# placeholders are filled with the relevant information. A placeholder may
# occur zero times, once, or more than once. There are two types of
# placeholders: strings and items. A placeholder of type string comes with a
# variable containing a `printf` expression (_FMT_placeholder). This `printf`
# expression may be used to additionally modify the string passed. If the
# string passed is empty, then each corresponding placeholder is replaced
# with the empty string, i.e., the `printf` expression is bypassed. A
# placeholder of the alternative type (item) comes with a series of variables
# that encode constants to be used (_FMT_placeholder_XYZ).
#
# The items in the format string may be separated with "\t". This will induce
# a proper representation (using `column`). By default, all fields but the
# first are left aligned, and the first field is right aligned. This can be
# changed by setting the appropriate FMT_RIGHTALIGN variable. If that
# variable is empty, then the first field is right aligned. This means that
# at least one field must be right aligned.
#
# Artist view
# ===========
# <<flag>> item Indication for locally available audio files
# <<type>> item Indicator for single-person artist or group
# <<name>> string Artist name
# <<disambiguation>> string Disambiguation string
#
AV_FMT_TYPE_PERSON="${RED}P${OFF}"
AV_FMT_TYPE_GROUP="${RED}G${OFF}"
AV_FMT_NAME="${GREEN}%s${OFF}"
AV_FMT_DISAMBIGUATION="(%s)"
# Release-group view
# ==================
# <<flag>> item Indication for locally available audio files
# <<type>> item Indicates the type
# <<hassecondary>> item Indicates if there is some secondary type or none
# <<secondary>> string List of secondary types
# <<title>> string Title of album
# <<artist>> string Artist of album
# <<year>> string Year of initial release
# Note: The above <<secondary>> is of a joint item-string type. See code for
# details.
RGV_FMT="<<flag>>\t<<year>>\t<<title>>\t<<artist>>"
RGV_FMT_ARTIST="${CARTIST}%s${OFF}"
RGV_FMT_YEAR="${CYEAR}%s${OFF}"
# Release view
# ============
# <<flag>> item Indication for locally available audio files
# <<status>> item Release status
# <<tracks>> string Total number of track
# <<media>> string Media description
# <<year>> string Release year
# <<country>> string Release country
# <<label>> string Release label
# <<title>> string Optional titel string
# <<artist>> string Optional artist string
RV_FMT="<<flag>>\t<<year>>\t<<tracks>>\t<<media>>\t<<country>>\t<<label>>"
# Headers
# =======
# These header strings are based on the respective view and its fields
# defined above.
#
# Header that displays artist's name (based on artist view)
HEADER_ARTIST_FMT="\t<<name>>"
# Header that displays the release-group (based on release-group view)
HEADER_RG_FMT="\t<<artist>> / <<title>>"
# Header that displays the release (based on release view)
HEADER_R_FMT="\t<<artist>> / <<title>> / <<tracks>> tx <<media>>"

186
share/theme/plain.sh Normal file
View File

@@ -0,0 +1,186 @@
# Pointers
# ========
# Sign that indicates the existence of audio files
FORMAT_LOCAL="|>"
# Input prompt
# =============
# General search prompt (for now only used when choosing one-of-many artist)
SEARCH_PROMPT="search> "
# General workings of format strings
#
# A format string (_FMT) contains placeholders, e.g., <<name>>. These
# placeholders are filled with the relevant information. A placeholder may
# occur zero times, once, or more than once. There are two types of
# placeholders: strings and items. A placeholder of type string comes with a
# variable containing a `printf` expression (_FMT_placeholder). This `printf`
# expression may be used to additionally modify the string passed. If the
# string passed is empty, then each corresponding placeholder is replaced
# with the empty string, i.e., the `printf` expression is bypassed. A
# placeholder of the alternative type (item) comes with a series of variables
# that encode constants to be used (_FMT_placeholder_XYZ).
#
# The items in the format string may be separated with "\t". This will induce
# a proper representation (using `column`). By default, all fields but the
# first are left aligned, and the first field is right aligned. This can be
# changed by setting the appropriate FMT_RIGHTALIGN variable. If that
# variable is empty, then the first field is right aligned. This means that
# at least one field must be right aligned.
#
# Artist view
# ===========
# <<flag>> item Indication for locally available audio files
# <<type>> item Indicator for single-person artist or group
# <<name>> string Artist name
# <<disambiguation>> string Disambiguation string
#
AV_FMT_TYPE_PERSON="P"
AV_FMT_TYPE_GROUP="G"
AV_FMT_NAME="%s"
AV_FMT_DISAMBIGUATION="(%s)"
# Release-group view
# ==================
# <<flag>> item Indication for locally available audio files
# <<type>> item Indicates the type
# <<hassecondary>> item Indicates if there is some secondary type or none
# <<secondary>> string List of secondary types
# <<title>> string Title of album
# <<artist>> string Artist of album
# <<year>> string Year of initial release
# Note: The above <<secondary>> is of a joint item-string type. See code for
# details.
RGV_FMT_TYPE_SINGLE="single"
RGV_FMT_TYPE_ALBUM="LP"
RGV_FMT_TYPE_EP="EP"
RGV_FMT_TYPE_BROADCAST="broadcast"
RGV_FMT_TYPE_OTHER="other"
RGV_FMT_HASSECONDARY_YES="xx"
RGV_FMT_SECONDARY="[xx: %s]"
RGV_FMT_SECONDARY_SOUNDTRACK="soundtrack"
RGV_FMT_SECONDARY_SPOKENWORD="spokenword"
RGV_FMT_SECONDARY_INTERVIEW="interview"
RGV_FMT_SECONDARY_AUDIOBOOK="audiobook"
RGV_FMT_SECONDARY_AUDIODRAMA="audio drama"
RGV_FMT_SECONDARY_LIVE="live"
RGV_FMT_SECONDARY_REMIX="remix"
RGV_FMT_SECONDARY_DJMIX="DJ-mix"
RGV_FMT_SECONDARY_MIXTAPE="mixtape"
RGV_FMT_SECONDARY_DEMO="demo"
RGV_FMT_SECONDARY_FIELDREC="field recording"
RGV_FMT_TITLE="%s"
RGV_FMT_ARTIST=" - %s"
RGV_FMT_YEAR="(%s)"
# Release view
# ============
# <<flag>> item Indication for locally available audio files
# <<status>> item Release status
# <<tracks>> string Total number of track
# <<media>> string Media description
# <<year>> string Release year
# <<country>> string Release country
# <<label>> string Release label
# <<title>> string Optional titel string
# <<artist>> string Optional artist string
RV_FMT="${RV_FMT:-"<<flag>>\t<<status>> >> \t<<tracks>>\t<<media>>\t<<year>>\t<<country>>\t<<label>>\t<<title>> <<artist>>"}"
RV_FMT_STATUS_OFFICIAL="official"
RV_FMT_STATUS_PROMO="promo"
RV_FMT_STATUS_BOOTLEG="bootleg"
RV_FMT_STATUS_PSEUDO="pseudo"
RV_FMT_STATUS_WITHDRAWN="withdrawn"
RV_FMT_STATUS_EXPUNGED="expunged"
RV_FMT_STATUS_CANCELLED="cancelled"
RV_FMT_TRACKS="%s tracks"
RV_FMT_MEDIA="%s"
RV_FMT_YEAR="%s"
RV_FMT_COUNTRY="%s"
RV_FMT_LABEL="%s"
RV_FMT_TITLE="as %s"
RV_FMT_ARTIST="by %s"
# Recording view
# ==============
# <<flag>> item Indication for locally available audio files
# <<media>> string Media identifier
# <<nr>> string Track number within media
# <<title>> string Track title
# <<artist>> string Track artist
# <<duration>> string Track duration
REC_FMT_MEDIA="%s"
REC_FMT_NR="%s"
REC_FMT_TITLE="%s"
REC_FMT_ARTIST="%s"
REC_FMT_DURATION="%s"
# Recording view (playlist)
# =========================
# <<playing>> item Mark for currently playing track
# <<title>> string Track title
# <<artist>> string Track artist
# <<duration>> string Track duration
PLYLST_FMT_PLAYING_YES="-->"
PLYLST_FMT_TITLE="%s"
PLYLST_FMT_ARTIST="%s"
PLYLST_FMT_DURATION="%s"
# Headers
# =======
# These header strings are based on the respective view and its fields
# defined above.
#
# Header that displays artist's name (based on artist view)
HEADER_ARTIST_FMT=":::\t<<name>> >"
# Header that displays the release-group (based on release-group view)
HEADER_RG_FMT=":::\t<<artist>> >> <<title>> >"
HEADER_RG_FMT_ARTIST="%s"
# Header that displays the release (based on release view)
#HEADER_RELEASE="${HEADER_RELEASE:-" ${CARTIST}%s$OFF 》${CTITLE}%s$OFF 〉%s"}"
#HEADER_RELEASE_FORMAT="${HEADER_RELEASE_FORMAT:-"${CRELINFO}<<tracks>> tx <<media>> $OFF|$CRELINFO <<label>> <<country>> <<year>>$OFF"}"
HEADER_R_FMT=":::\t<<artist>> >> <<title>> > <<tracks>> tx <<media>> | <<label>> <<country>> <<year>>"
HEADER_R_FMT_TRACKS="%s"
HEADER_R_FMT_MEDIA="%s"
HEADER_R_FMT_YEAR="%s"
HEADER_R_FMT_COUNTRY="%s"
HEADER_R_FMT_LABEL="%s"
HEADER_R_FMT_TITLE="%s"
HEADER_R_FMT_ARTIST="%s"
# Artist Preview
# ==============
# Lines that contain the pattern defined in PREVIEW_NO_WRAP (see
# `src/sh/preview.sh`) will not be wrapped.
#
# We distinguish between single-person and group artists.
#
# <<name>> | string | Artist name
# <<sortname>> | string | Artist sort name
# <<bio>> | string | Artist biography
# <<disambiguation>> | string | Artist disambiguation string
# <<alias>> | higher-order placeholder | Placeholder for aliases
# <<start> | higher-order placeholder | Placeholder for start string
# <<end>> | higher-order placeholder | Placeholder for end string
# <<url>> | higher-order placeholder | Placeholder for links
PREVIEW_ARTIST_PERSON_BIO="%s\n\n"
PREVIEW_ARTIST_PERSON_ALIAS="Also known as %s\n\n"
PREVIEW_ARTIST_PERSON_START="Born: %s\n"
PREVIEW_ARTIST_PERSON_END="Died: %s\n"
PREVIEW_ARTIST_PERSON_URL="\nLinks:\n%s\n"
PREVIEW_ARTIST_PERSON_URL_URLINDEX="%3d"
PREVIEW_ARTIST_PERSON_URL_URLNAME="%s"
PREVIEW_ARTIST_PERSON_URL_URLLINK="%s"
PREVIEW_ARTIST_GROUP_START="Founded: %s\n"
PREVIEW_ARTIST_GROUP_END="Dissolved: %s\n"
# Keybinding themes
# =================
# Format keybinding group
KBF_GROUP="%s"
# Format key
KBF_KEY="%s"
# Format description
KBF_DESC="%s"

View File

@@ -1,118 +0,0 @@
# Simple theme without emojis
# Colors (internal only)
ESC=$(printf '\033')
RED="${ESC}[31m"
GREEN="${ESC}[32m"
YELLOW="${ESC}[33m"
BLUE="${ESC}[34m"
PURPLE="${ESC}[35m"
CYAN="${ESC}[36m"
WHITE="${ESC}[37m"
OFF="${ESC}[m"
# Pointers
# ========
# Sign that indicates the existence of audio files
FORMAT_LOCAL="${BLUE}|>$OFF"
# Pointer to the track currently playing (playlist)
FORMAT_CURRENT="${WHITE}-->$OFF"
# Input prompt
# =============
# Search prompt
SEARCH_PROMPT="search: "
# Headers
# =======
# Header that displays artist's name
HEADER_ARTIST="artist: %s"
# Header that displays the release-group name after artist's
HEADER_ARTIST_RELEASEGROUP="artist: %s / album: %s"
# Header that in addition to `HEADER_ARTIST_RELEASEGROUP` also shows some
# release information
HEADER_RELEASE="artist: %s / album: %s (%s)"
# The release information is formatted as follows (placeholders implicit):
HEADER_RELEASE_FORMAT="<<label>> <<year>>"
# Artist view
# ===========
# Artist string for persons
AV_PERSON="(P) ${CYAN}<<name>>$OFF"
# Artist string for groups
AV_GROUP="(G) ${CYAN}<<name>>$OFF"
# Artist disambiguation string
AV_DISAMBIGUATION="// <<disambiguation>>"
# Release-group view
# ==================
# Default release group string
RGV_RELEASE="${PURPLE}<<title>>$OFF"
# Release group string if the artist name differs from the current artist
RGV_RELEASE_W_ARTIST="${PURPLE}<<title>>$OFF by ${CYAN}<<artist>>$OFF"
# Year of the release group
RGV_YEAR="[<<year>>]"
# Release-group types
# ===================
# Album
FORMAT_TYPE_ALBUM="${YELLOW}LP$OFF"
# EP
FORMAT_TYPE_EP="${YELLOW}EP$OFF"
# Single
FORMAT_TYPE_SINGLE="${YELLOW}Single$OFF"
# Broadcast
FORMAT_TYPE_BROADCAST="${YELLOW}Broadcast$OFF"
# Other
FORMAT_TYPE_OTHER=""
# Flag to indicate that the given release group has associated secondary types.
FORMAT_TYPE_HAS_SECONDARY="%s ${RED}xx${OFF}"
# Style to represent secondary types (takes one %s placeholder)
FORMAT_TYPE_SECONDARY="${RED}(${OFF}%s${RED})${OFF}"
# Secondary types
FORMAT_TYPE_SECONDARY_COMPILATION="${YELLOW}compilation$OFF"
FORMAT_TYPE_SECONDARY_SOUNDTRACK="${YELLOW}soundtrack$OFF"
FORMAT_TYPE_SECONDARY_SPOKENWORD="${YELLOW}spokenword$OFF"
FORMAT_TYPE_SECONDARY_INTERVIEW="${YELLOW}interview$OFF"
FORMAT_TYPE_SECONDARY_AUDIOBOOK="${YELLOW}audiobook$OFF"
FORMAT_TYPE_SECONDARY_AUDIODRAMA="${YELLOW}audio drama$OFF"
FORMAT_TYPE_SECONDARY_LIVE="${YELLOW}live$OFF"
FORMAT_TYPE_SECONDARY_REMIX="${YELLOW}remix$OFF"
FORMAT_TYPE_SECONDARY_DJMIX="${YELLOW}DJ-mix$OFF"
FORMAT_TYPE_SECONDARY_MIXTAPE="${YELLOW}mixtape$OFF"
FORMAT_TYPE_SECONDARY_DEMO="${YELLOW}demo$OFF"
FORMAT_TYPE_SECONDARY_FIELDREC="${YELLOW}field recording$OFF"
# Artist Preview
# ==============
# Main preview format. Takes two %s placeholder. The first is for the artist
# biography. The second for the life span.
APV_FORMAT="\n\nBio:\n%s\n\n${WHITE}%s${OFF}"
# Specification of a date
APV_DATE="%s"
# Specification of a place
APV_PLACE="%s"
# Specification of a date and a place (in that order)
APV_DATEPLACE="%s in %s"
# String to represent when/where a person is born
APV_BORN="Born: %s"
# String to represent when/where a person died
APV_DIED="Died: %s"
# Release view
# ============
# Format of a string that represents a release.
RV_FORMAT="<<media>> (<<tracks>>, yr: <<year>>)\t<<label>>"
# Additional string to display the release title and artist name
RV_TITLE_ARTIST="${CYAN}<<artist>>$OFF - ${PURPLE}<<title>>$OFF"
# Additional string to display the release title
RV_TITLE="${PURPLE}<<title>>$OFF"
# Additional string to display the artist
RV_ARTIST="${CYAN}<<artist>>$OFF"
# Recording view
# ==============
# Format of a track in a release
REC_FORMAT="<<med>>\t${RED}<<nr>>$OFF\t${GREEN}<<title>>$OFF\t${CYAN}<<artist>>$OFF\t${WHITE}<<duration>>$OFF"
# Format of a track in the playlist
REC_FORMAT_NO_NUMBER="${GREEN}<<title>>$OFF\t${CYAN}<<artist>>$OFF\t${WHITE}<<duration>>$OFF"

View File

@@ -85,6 +85,7 @@ BEGIN {
gsub("<<urllink>>", urllink, urlentry)
url = i == 1 ? urlentry : sprintf(join_url, url, urlentry)
}
url = sprintf(fmturl, escape(url))
}
# Combine all and print
gsub("<<name>>", name, format)

View File

@@ -68,8 +68,8 @@ if [ ! "${THEME_LOADED:-}" ]; then
AV_FMT_FLAG_NO_LOCAL="${AV_FMT_FLAG_NO_LOCAL:-""}"
AV_FMT_TYPE_PERSON="${AV_FMT_TYPE_PERSON:-🧑‍🎤}"
AV_FMT_TYPE_GROUP="${AV_FMT_TYPE_GROUP:-🧑‍🤝‍🧑}"
AV_FMT_NAME="${AV_FMT_NAME:-"${CARTIST}%s$OFF"}"
AV_FMT_DISAMBIGUATION="${AV_FMT_DISAMBIGUATION:-"${CDISAMB}(%s)$OFF"}"
AV_FMT_NAME="${AV_FMT_NAME:-"${CARTIST}%s${OFF}"}"
AV_FMT_DISAMBIGUATION="${AV_FMT_DISAMBIGUATION:-"${CDISAMB}(%s)${OFF}"}"
export AV_FMT AV_FMT_CNT AV_FMT_RIGHTALIGN AV_FMT_FLAG_LOCAL \
AV_FMT_FLAG_NO_LOCAL AV_FMT_TYPE_PERSON AV_FMT_TYPE_GROUP AV_FMT_NAME \
AV_FMT_DISAMBIGUATION
@@ -98,7 +98,7 @@ if [ ! "${THEME_LOADED:-}" ]; then
RGV_FMT_TYPE_UNKNOWN="${RGV_FMT_TYPE_UNKNOWN:-""}"
RGV_FMT_HASSECONDARY_YES="${RGV_FMT_HASSECONDARY_YES:-"☼"}"
RGV_FMT_HASSECONDARY_NO="${RGV_FMT_HASSECONDARY_NO:-""}"
RGV_FMT_SECONDARY="${RGV_FMT_SECONDARY:-"${CNOTE}[☼: %s]$OFF"}"
RGV_FMT_SECONDARY="${RGV_FMT_SECONDARY:-"${CNOTE}[☼: %s]${OFF}"}"
RGV_FMT_SECONDARY_SOUNDTRACK="${RGV_FMT_SECONDARY_SOUNDTRACK:-"🎬 soundtrack"}"
RGV_FMT_SECONDARY_SPOKENWORD="${RGV_FMT_SECONDARY_SPOKENWORD:-"📖 spokenword"}"
RGV_FMT_SECONDARY_INTERVIEW="${RGV_FMT_SECONDARY_INTERVIEW:-"💬 interview"}"
@@ -110,9 +110,9 @@ if [ ! "${THEME_LOADED:-}" ]; then
RGV_FMT_SECONDARY_MIXTAPE="${RGV_FMT_SECONDARY_MIXTAPE:-"📼 mixtape"}"
RGV_FMT_SECONDARY_DEMO="${RGV_FMT_SECONDARY_DEMO:-"🧪 demo"}"
RGV_FMT_SECONDARY_FIELDREC="${RGV_FMT_SECONDARY_FIELDREC:-"🌿 field recording"}"
RGV_FMT_TITLE="${RGV_FMT_TITLE:-"${CTITLE}%s$OFF"}"
RGV_FMT_ARTIST="${RGV_FMT_ARTIST:-"${CARTIST}%s$OFF"}"
RGV_FMT_YEAR="${RGV_FMT_YEAR:-"${CYEAR}(%s)$OFF"}"
RGV_FMT_TITLE="${RGV_FMT_TITLE:-"${CTITLE}%s${OFF}"}"
RGV_FMT_ARTIST="${RGV_FMT_ARTIST:-"${CARTIST}%s${OFF}"}"
RGV_FMT_YEAR="${RGV_FMT_YEAR:-"${CYEAR}(%s)${OFF}"}"
export RGV_FMT RGV_FMT_CNT RGV_FMT_RIGHTALIGN RGV_FMT_FLAG_LOCAL \
RGV_FMT_FLAG_NO_LOCAL RGV_FMT_TYPE_SINGLE RGV_FMT_TYPE_ALBUM \
RGV_FMT_TYPE_EP RGV_FMT_TYPE_BROADCAST RGV_FMT_TYPE_OTHER \
@@ -148,13 +148,13 @@ if [ ! "${THEME_LOADED:-}" ]; then
RV_FMT_STATUS_EXPUNGED="${RV_FMT_STATUS_EXPUNGED:-"🧹"}"
RV_FMT_STATUS_CANCELLED="${RV_FMT_STATUS_CANCELLED:-"❌"}"
RV_FMT_STATUS_UNKNOWN="${RV_FMT_STATUS_UNKNOWN:-""}"
RV_FMT_TRACKS="${RV_FMT_TRACKS:-"${CXXX}%s tracks$OFF"}"
RV_FMT_MEDIA="${RV_FMT_MEDIA:-"${CXXX}%s$OFF"}"
RV_FMT_YEAR="${RV_FMT_YEAR:-"${CYEAR}%s$OFF"}"
RV_FMT_COUNTRY="${RV_FMT_COUNTRY:-"${CYEAR}%s$OFF"}"
RV_FMT_LABEL="${RV_FMT_LABEL:-"${CARTIST}%s$OFF"}"
RV_FMT_TITLE="${RV_FMT_TITLE:-"${FAINT}as$OFF ${CTITLE}%s$OFF"}"
RV_FMT_ARTIST="${RV_FMT_ARTIST:-"${FAINT}by$OFF ${CTITLE}%s$OFF"}"
RV_FMT_TRACKS="${RV_FMT_TRACKS:-"${CXXX}%s tracks${OFF}"}"
RV_FMT_MEDIA="${RV_FMT_MEDIA:-"${CXXX}%s${OFF}"}"
RV_FMT_YEAR="${RV_FMT_YEAR:-"${CYEAR}%s${OFF}"}"
RV_FMT_COUNTRY="${RV_FMT_COUNTRY:-"${CYEAR}%s${OFF}"}"
RV_FMT_LABEL="${RV_FMT_LABEL:-"${CARTIST}%s${OFF}"}"
RV_FMT_TITLE="${RV_FMT_TITLE:-"${FAINT}as${OFF} ${CTITLE}%s${OFF}"}"
RV_FMT_ARTIST="${RV_FMT_ARTIST:-"${FAINT}by${OFF} ${CTITLE}%s${OFF}"}"
export RV_FMT RV_FMT_CNT RV_FMT_RIGHTALIGN RV_FMT_FLAG_LOCAL \
RV_FMT_FLAG_NO_LOCAL RV_FMT_STATUS_OFFICIAL RV_FMT_STATUS_PROMO \
RV_FMT_STATUS_BOOTLEG RV_FMT_STATUS_PSEUDO RV_FMT_STATUS_WITHDRAWN \
@@ -175,11 +175,11 @@ if [ ! "${THEME_LOADED:-}" ]; then
REC_FMT_RIGHTALIGN="${REC_FMT_RIGHTALIGN:-"1,2,3,6"}"
REC_FMT_FLAG_LOCAL="${REC_FMT_FLAG_LOCAL:-"$FORMAT_LOCAL"}"
REC_FMT_FLAG_NO_LOCAL="${REC_FMT_FLAG_NO_LOCAL:-""}"
REC_FMT_MEDIA="${REC_FMT_MEDIA:-"${CNOTE}${FAINT}%s$OFF"}"
REC_FMT_NR="${REC_FMT_NR:-"${CNOTE}%s$OFF"}"
REC_FMT_TITLE="${REC_FMT_TITLE:-"${CTITLE}%s$OFF"}"
REC_FMT_ARTIST="${REC_FMT_ARTIST:-"${CARTIST}%s$OFF"}"
REC_FMT_DURATION="${REC_FMT_DURATION:-"${CXXX}%s$OFF"}"
REC_FMT_MEDIA="${REC_FMT_MEDIA:-"${CNOTE}${FAINT}%s${OFF}"}"
REC_FMT_NR="${REC_FMT_NR:-"${CNOTE}%s${OFF}"}"
REC_FMT_TITLE="${REC_FMT_TITLE:-"${CTITLE}%s${OFF}"}"
REC_FMT_ARTIST="${REC_FMT_ARTIST:-"${CARTIST}%s${OFF}"}"
REC_FMT_DURATION="${REC_FMT_DURATION:-"${CXXX}%s${OFF}"}"
export REC_FMT REC_FMT_CNT REC_FMT_RIGHTALIGN REC_FMT_FLAG_LOCAL \
REC_FMT_FLAG_NO_LOCAL REC_FMT_MEDIA REC_FMT_NR REC_FMT_TITLE \
REC_FMT_ARTIST REC_FMT_DURATION
@@ -195,9 +195,9 @@ if [ ! "${THEME_LOADED:-}" ]; then
PLYLST_FMT_RIGHTALIGN="${PLYLST_FMT_RIGHTALIGN:-"1"}"
PLYLST_FMT_PLAYING_YES="${PLYLST_FMT_PLAYING_YES:-"👉"}"
PLYLST_FMT_PLAYING_NO="${PLYLST_FMT_PLAYING_NO:-""}"
PLYLST_FMT_TITLE="${PLYLST_FMT_TITLE:-"${CTITLE}%s$OFF"}"
PLYLST_FMT_ARTIST="${PLYLST_FMT_ARTIST:-"${CARTIST}%s$OFF"}"
PLYLST_FMT_DURATION="${PLYLST_FMT_DURATION:-"${CXXX}%s$OFF"}"
PLYLST_FMT_TITLE="${PLYLST_FMT_TITLE:-"${CTITLE}%s${OFF}"}"
PLYLST_FMT_ARTIST="${PLYLST_FMT_ARTIST:-"${CARTIST}%s${OFF}"}"
PLYLST_FMT_DURATION="${PLYLST_FMT_DURATION:-"${CXXX}%s${OFF}"}"
export PLYLST_FMT PLYLST_FMT_CNT PLYLST_FMT_RIGHTALIGN \
PLYLST_FMT_PLAYING_YES PLYLST_FMT_PLAYING_NO PLYLST_FMT_TITLE \
PLYLST_FMT_ARTIST PLYLST_FMT_DURATION
@@ -208,7 +208,6 @@ if [ ! "${THEME_LOADED:-}" ]; then
# defined above.
#
# Header that displays artist's name (based on artist view)
HEADER_ARTIST="${HEADER_ARTIST:-" ${CARTIST}%s$OFF "}"
HEADER_ARTIST_FMT="${HEADER_ARTIST_FMT:-"🎤\t<<name>> 〉"}"
HEADER_ARTIST_FMT_CNT=$(($(printf "$HEADER_ARTIST_FMT" | tr -cd '\t' | wc -c) + 1))
HEADER_ARTIST_FMT_RIGHTALIGN="${HEADER_ARTIST_FMT_RIGHTALIGN:-"1"}"
@@ -218,11 +217,10 @@ if [ ! "${THEME_LOADED:-}" ]; then
HEADER_ARTIST_FMT_TYPE_GROUP="${HEADER_ARTIST_FMT_TYPE_GROUP:-"$AV_FMT_TYPE_GROUP"}"
HEADER_ARTIST_FMT_NAME="${HEADER_ARTIST_FMT_NAME:-"$AV_FMT_NAME"}"
HEADER_ARTIST_FMT_DISAMBIGUATION="${HEADER_ARTIST_FMT_DISAMBIGUATION:-"$AV_FMT_DISAMBIGUATION"}"
export HEADER_ARTIST HEADER_ARTIST_FMT HEADER_ARTIST_FMT_CNT \
HEADER_ARTIST_FMT_RIGHTALIGN HEADER_ARTIST_FMT_FLAG_LOCAL \
HEADER_ARTIST_FMT_FLAG_NO_LOCAL HEADER_ARTIST_FMT_TYPE_PERSON \
HEADER_ARTIST_FMT_TYPE_GROUP HEADER_ARTIST_FMT_NAME \
HEADER_ARTIST_FMT_DISAMBIGUATION
export HEADER_ARTIST_FMT HEADER_ARTIST_FMT_CNT HEADER_ARTIST_FMT_RIGHTALIGN \
HEADER_ARTIST_FMT_FLAG_LOCAL HEADER_ARTIST_FMT_FLAG_NO_LOCAL \
HEADER_ARTIST_FMT_TYPE_PERSON HEADER_ARTIST_FMT_TYPE_GROUP \
HEADER_ARTIST_FMT_NAME HEADER_ARTIST_FMT_DISAMBIGUATION
# Header that displays the release-group (based on release-group view)
HEADER_RG_FMT="${HEADER_RG_FMT:-"🎤\t<<artist>> 》<<title>> 〉"}"
@@ -251,7 +249,7 @@ if [ ! "${THEME_LOADED:-}" ]; then
HEADER_RG_FMT_SECONDARY_DEMO="${HEADER_RG_FMT_SECONDARY_DEMO:-"$RGV_FMT_SECONDARY_DEMO"}"
HEADER_RG_FMT_SECONDARY_FIELDREC="${HEADER_RG_FMT_SECONDARY_FIELDREC:-"$RGV_FMT_SECONDARY_FIELDREC"}"
HEADER_RG_FMT_TITLE="${HEADER_RG_FMT_TITLE:-"$RGV_FMT_TITLE"}"
HEADER_RG_FMT_ARTIST="${HEADER_RG_FMT_ARTIST:-"${CARTIST}%s$OFF"}"
HEADER_RG_FMT_ARTIST="${HEADER_RG_FMT_ARTIST:-"${CARTIST}%s${OFF}"}"
HEADER_RG_FMT_YEAR="${HEADER_RG_FMT_YEAR:-"$RGV_FMT_YEAR"}"
export HEADER_RG_FMT HEADER_RG_FMT_CNT HEADER_RG_FMT_RIGHTALIGN \
HEADER_RG_FMT_FLAG_LOCAL HEADER_RG_FMT_FLAG_NO_LOCAL \
@@ -268,8 +266,6 @@ if [ ! "${THEME_LOADED:-}" ]; then
HEADER_RG_FMT_YEAR
# Header that displays the release (based on release view)
#HEADER_RELEASE="${HEADER_RELEASE:-" ${CARTIST}%s$OFF 》${CTITLE}%s$OFF 〉%s"}"
#HEADER_RELEASE_FORMAT="${HEADER_RELEASE_FORMAT:-"${CRELINFO}<<tracks>> tx <<media>> $OFF|$CRELINFO <<label>> <<country>> <<year>>$OFF"}"
HEADER_R_FMT="${HEADER_R_FMT:-"🎤\t<<artist>> 》<<title>> 〉<<tracks>> ${CRELINFO}tx${OFF} <<media>> | <<label>> <<country>> <<year>>"}"
HEADER_R_FMT_CNT=$(($(printf "$HEADER_R_FMT" | tr -cd '\t' | wc -c) + 1))
HEADER_R_FMT_RIGHTALIGN="${HEADER_R_FMT_RIGHTALIGN:-"1"}"
@@ -283,13 +279,13 @@ if [ ! "${THEME_LOADED:-}" ]; then
HEADER_R_FMT_STATUS_EXPUNGED="${HEADER_R_FMT_STATUS_EXPUNGED:-"$RV_FMT_STATUS_EXPUNGED"}"
HEADER_R_FMT_STATUS_CANCELLED="${HEADER_R_FMT_STATUS_CANCELLED:-"$RV_FMT_STATUS_CANCELLED"}"
HEADER_R_FMT_STATUS_UNKNOWN="${HEADER_R_FMT_STATUS_UNKNOWN:-"$RV_FMT_STATUS_UNKNOWN"}"
HEADER_R_FMT_TRACKS="${HEADER_R_FMT_TRACKS:-"${CRELINFO}%s$OFF"}"
HEADER_R_FMT_MEDIA="${HEADER_R_FMT_MEDIA:-"${CRELINFO}%s$OFF"}"
HEADER_R_FMT_YEAR="${HEADER_R_FMT_YEAR:-"${CRELINFO}%s$OFF"}"
HEADER_R_FMT_COUNTRY="${HEADER_R_FMT_COUNTRY:-"${CRELINFO}%s$OFF"}"
HEADER_R_FMT_LABEL="${HEADER_R_FMT_LABEL:-"${CRELINFO}%s$OFF"}"
HEADER_R_FMT_TITLE="${HEADER_R_FMT_TITLE:-"${CTITLE}%s$OFF"}"
HEADER_R_FMT_ARTIST="${HEADER_R_FMT_ARTIST:-"${CARTIST}%s$OFF"}"
HEADER_R_FMT_TRACKS="${HEADER_R_FMT_TRACKS:-"${CRELINFO}%s${OFF}"}"
HEADER_R_FMT_MEDIA="${HEADER_R_FMT_MEDIA:-"${CRELINFO}%s${OFF}"}"
HEADER_R_FMT_YEAR="${HEADER_R_FMT_YEAR:-"${CRELINFO}%s${OFF}"}"
HEADER_R_FMT_COUNTRY="${HEADER_R_FMT_COUNTRY:-"${CRELINFO}%s${OFF}"}"
HEADER_R_FMT_LABEL="${HEADER_R_FMT_LABEL:-"${CRELINFO}%s${OFF}"}"
HEADER_R_FMT_TITLE="${HEADER_R_FMT_TITLE:-"${CTITLE}%s${OFF}"}"
HEADER_R_FMT_ARTIST="${HEADER_R_FMT_ARTIST:-"${CARTIST}%s${OFF}"}"
export HEADER_R_FMT HEADER_R_FMT_CNT HEADER_R_FMT_RIGHTALIGN \
HEADER_R_FMT_FLAG_LOCAL HEADER_R_FMT_FLAG_NO_LOCAL \
HEADER_R_FMT_STATUS_OFFICIAL HEADER_R_FMT_STATUS_PROMO \
@@ -318,9 +314,9 @@ if [ ! "${THEME_LOADED:-}" ]; then
PREVIEW_ARTIST_PERSON_FMT="${PREVIEW_ARTIST_PERSON_FMT:-"\n\n<<bio>><<alias>><<start>><<end>>\n<<url>>"}"
PREVIEW_ARTIST_PERSON_NAME="${PREVIEW_ARTIST_PERSON_NAME:-"%s"}"
PREVIEW_ARTIST_PERSON_SORTNAME="${PREVIEW_ARTIST_PERSON_SORTNAME:-"%s"}"
PREVIEW_ARTIST_PERSON_BIO="${PREVIEW_ARTIST_PERSON_BIO:-"${CDESC}%s$OFF\n\n"}"
PREVIEW_ARTIST_PERSON_BIO="${PREVIEW_ARTIST_PERSON_BIO:-"${CDESC}%s${OFF}\n\n"}"
PREVIEW_ARTIST_PERSON_DISAMB="${PREVIEW_ARTIST_PERSON_DISAMB:-"%s"}"
PREVIEW_ARTIST_PERSON_ALIAS="${PREVIEW_ARTIST_PERSON_ALIAS:-"${FAINT}Also known as ${ITALIC}%s$OFF\n\n"}"
PREVIEW_ARTIST_PERSON_ALIAS="${PREVIEW_ARTIST_PERSON_ALIAS:-"${FAINT}Also known as ${ITALIC}%s${OFF}\n\n"}"
PREVIEW_ARTIST_PERSON_ALIAS_JOIN="${PREVIEW_ARTIST_PERSON_ALIAS_JOIN:-"%s, %s"}"
PREVIEW_ARTIST_PERSON_START="${PREVIEW_ARTIST_PERSON_START:-"🍼 Born: %s\n"}"
PREVIEW_ARTIST_PERSON_START_FMT="${PREVIEW_ARTIST_PERSON_START_FMT:-"<<startdate>> <<startplace>>"}"
@@ -330,12 +326,12 @@ if [ ! "${THEME_LOADED:-}" ]; then
PREVIEW_ARTIST_PERSON_END_FMT="${PREVIEW_ARTIST_PERSON_END_FMT:-"<<enddate>> <<endplace>>"}"
PREVIEW_ARTIST_PERSON_END_ENDDATE="${PREVIEW_ARTIST_PERSON_END_ENDDATE:-"%s"}"
PREVIEW_ARTIST_PERSON_END_ENDPLACE="${PREVIEW_ARTIST_PERSON_END_ENDPLACE:-"in %s"}"
PREVIEW_ARTIST_PERSON_URL="${PREVIEW_ARTIST_PERSON_URL:-"\n${UNDERLINE}Links:$OFF%s\n"}"
PREVIEW_ARTIST_PERSON_URL="${PREVIEW_ARTIST_PERSON_URL:-"\n%s\n"}"
PREVIEW_ARTIST_PERSON_URL_JOIN="${PREVIEW_ARTIST_PERSON_URL_JOIN:-"%s\n%s"}"
PREVIEW_ARTIST_PERSON_URL_FMT="${PREVIEW_ARTIST_PERSON_URL_FMT:-"${PREVIEW_NO_WRAP}<<urlindex>>: <<urlname>> <<urllink>>\n"}"
PREVIEW_ARTIST_PERSON_URL_URLINDEX="${PREVIEW_ARTIST_PERSON_URL_URLINDEX:-"${CDISAMB}%3d$OFF"}"
PREVIEW_ARTIST_PERSON_URL_URLNAME="${PREVIEW_ARTIST_PERSON_URL_URLNAME:-"${CDESC}%s$OFF"}"
PREVIEW_ARTIST_PERSON_URL_URLLINK="${PREVIEW_ARTIST_PERSON_URL_URLLINK:-"${FAINT}%s$OFF"}"
PREVIEW_ARTIST_PERSON_URL_URLINDEX="${PREVIEW_ARTIST_PERSON_URL_URLINDEX:-"${CDISAMB}%3d${OFF}"}"
PREVIEW_ARTIST_PERSON_URL_URLNAME="${PREVIEW_ARTIST_PERSON_URL_URLNAME:-"${CDESC}%s${OFF}"}"
PREVIEW_ARTIST_PERSON_URL_URLLINK="${PREVIEW_ARTIST_PERSON_URL_URLLINK:-"${FAINT}%s${OFF}"}"
export PREVIEW_ARTIST_PERSON_FMT PREVIEW_ARTIST_PERSON_NAME \
PREVIEW_ARTIST_PERSON_SORTNAME PREVIEW_ARTIST_PERSON_BIO \
PREVIEW_ARTIST_PERSON_DISAMB PREVIEW_ARTIST_PERSON_ALIAS \
@@ -384,11 +380,11 @@ if [ ! "${THEME_LOADED:-}" ]; then
# Keybinding themes
# =================
# Format keybinding group
KBF_GROUP="${KBF_GROUP:-"${UNDERLINE}${CKB}%s$OFF"}"
KBF_GROUP="${KBF_GROUP:-"${UNDERLINE}${CKB}%s${OFF}"}"
# Format key
KBF_KEY="${KBF_KEY:-"${BOLD}${CKB}%s$OFF"}"
KBF_KEY="${KBF_KEY:-"${BOLD}${CKB}%s${OFF}"}"
# Format description
KBF_DESC="${KBF_DESC:-"${CKB}%s$OFF"}"
KBF_DESC="${KBF_DESC:-"${CKB}%s${OFF}"}"
export KBF_GROUP KBF_KEY KBF_DESC
export THEME_LOADED=1