Sweep every machine for config worth tracking
Reactive capture missed wallust entirely, so this is a systematic pass over ~/.config on all four machines: every entry that is not already a symlink, judged on whether it is hand-authored config or app-generated state. Shared and identical everywhere -> common/: lazygit, ncmpcpp, neofetch, matplotlib. Everything else differs per machine and goes in hosts/<host>/config/: gtk-2.0/3.0/4.0, mimeapps.list, user-dirs.dirs, mpv, swaync, swayimg, bob, pavucontrol.ini, zoom; plus beets, bottom, glow and mpd on system76; fastfetch, gh, uv, traggo, tiling-assistant and xdg-desktop-portal on the work laptop; inbox-tidy and llmfit on mainframe. Deliberately excluded, all verified to hold live credentials: the work laptop's Claude OAuth tokens (~/.config/anthropic/credentials), the NAS restic repo password and hetzner.env, subsonic passwords in subtui, stmp and termsonic, mopidy, supersonic, the Proton bridge env and the LiteLLM virtual keys. The ignore list now names those shapes directly — a bare `password` file would not have been caught before. Also excluded as generated state or too large to be meaningful: GIMP, kicad, BambuStudio, OrcaSlicer, calibre, LightBurn, obs-studio, feishin, libreoffice, VirtualBox, FortiClient; and mainframe's dead X11-era leftovers (i3, openbox, lxpanel, lxsession, pcmanfm).
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
directory: /srv/audio/music/gaps
|
||||
library: ~/.cache/beets/musiclibrary.db
|
||||
|
||||
import:
|
||||
copy: no
|
||||
# write: no # Don't modify tags
|
||||
|
||||
plugins:
|
||||
- musicbrainz
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"add_neovim_binary_to_path": true
|
||||
}
|
||||
@@ -0,0 +1,317 @@
|
||||
# This is a default config file for bottom. All of the settings are commented
|
||||
# out by default; if you wish to change them uncomment and modify as you see
|
||||
# fit.
|
||||
|
||||
# This group of options represents a command-line option. Flags explicitly
|
||||
# added when running (ie: btm -a) will override this config file if an option
|
||||
# is also set here.
|
||||
[flags]
|
||||
# Whether to hide the average cpu entry.
|
||||
#hide_avg_cpu = false
|
||||
|
||||
# Whether to use a dedicated row for the average cpu entry
|
||||
#average_cpu_row = false
|
||||
|
||||
# Whether to use dot markers rather than braille.
|
||||
#dot_marker = false
|
||||
|
||||
# The update rate of the application.
|
||||
#rate = "1s"
|
||||
|
||||
# Whether to put the CPU legend to the left.
|
||||
#cpu_left_legend = false
|
||||
|
||||
# Whether to set CPU% on a process to be based on the total CPU or just current usage.
|
||||
#current_usage = false
|
||||
|
||||
# Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus).
|
||||
#unnormalized_cpu = false
|
||||
|
||||
# Whether to group processes with the same name together by default. Doesn't do anything
|
||||
# if tree is set to true or --tree is set.
|
||||
#group_processes = false
|
||||
|
||||
# Whether to make process searching case sensitive by default.
|
||||
#case_sensitive = false
|
||||
|
||||
# Whether to make process searching look for matching the entire word by default.
|
||||
#whole_word = false
|
||||
|
||||
# Whether to make process searching use regex by default.
|
||||
#regex = false
|
||||
|
||||
# The temperature unit. One of the following, defaults to "c" for Celsius:
|
||||
#temperature_type = "c"
|
||||
##temperature_type = "k"
|
||||
##temperature_type = "f"
|
||||
##temperature_type = "kelvin"
|
||||
##temperature_type = "fahrenheit"
|
||||
##temperature_type = "celsius"
|
||||
|
||||
# The default time interval (in milliseconds).
|
||||
#default_time_value = "60s"
|
||||
|
||||
# The time delta on each zoom in/out action (in milliseconds).
|
||||
#time_delta = 15000
|
||||
|
||||
# Hides the time scale.
|
||||
#hide_time = false
|
||||
|
||||
# Override layout default widget
|
||||
#default_widget_type = "proc"
|
||||
#default_widget_count = 1
|
||||
|
||||
# Expand selected widget upon starting the app
|
||||
#expanded = true
|
||||
|
||||
# Use basic mode
|
||||
#basic = false
|
||||
|
||||
# Use the old network legend style
|
||||
#use_old_network_legend = false
|
||||
|
||||
# Remove space in tables
|
||||
#hide_table_gap = false
|
||||
|
||||
# Show the battery widgets
|
||||
#battery = false
|
||||
|
||||
# Disable mouse clicks
|
||||
#disable_click = false
|
||||
|
||||
# Disable keyboard shortcuts
|
||||
#disable_keys = false
|
||||
|
||||
# Show memory values in the processes widget as values by default
|
||||
#process_memory_as_value = false
|
||||
|
||||
# Show tree mode by default in the processes widget.
|
||||
#tree = false
|
||||
|
||||
# Shows an indicator in table widgets tracking where in the list you are.
|
||||
#show_table_scroll_position = false
|
||||
|
||||
# Show processes as their commands by default in the process widget.
|
||||
#process_command = false
|
||||
|
||||
# Displays the network widget with binary prefixes.
|
||||
#network_use_binary_prefix = false
|
||||
|
||||
# Displays the network widget using bytes.
|
||||
#network_use_bytes = false
|
||||
|
||||
# Displays the network widget with a log scale.
|
||||
#network_use_log = false
|
||||
|
||||
# Hides advanced options to stop a process on Unix-like systems.
|
||||
#disable_advanced_kill = false
|
||||
|
||||
# Prevents performing any actions that affect the system (e.g. stopping processes).
|
||||
#read_only = false
|
||||
|
||||
# Hides the kernel threads
|
||||
#hide_k_threads = false
|
||||
|
||||
# Hide GPU(s) information
|
||||
#disable_gpu = false
|
||||
|
||||
# Shows cache and buffer memory
|
||||
#enable_cache_memory = false
|
||||
|
||||
# Subtract freeable ARC from memory usage
|
||||
#free_arc = false
|
||||
|
||||
# How much data is stored at once in terms of time.
|
||||
#retention = "10m"
|
||||
|
||||
# Where to place the legend for the memory widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right".
|
||||
#memory_legend = "top-right"
|
||||
|
||||
# Where to place the legend for the network widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right".
|
||||
#network_legend = "top-right"
|
||||
|
||||
|
||||
# Processes widget configuration
|
||||
#[processes]
|
||||
# The columns shown by the process widget. The following columns are supported (the GPU columns are only available if the GPU feature is enabled when built):
|
||||
# PID, Name, CPU%, Mem%, R/s, W/s, T.Read, T.Write, User, State, Time, GMem%, GPU%, Nice, Priority
|
||||
#columns = ["PID", "Name", "CPU%", "Mem%", "Virt", "R/s", "W/s", "T.Read", "T.Write", "User", "State", "GMem%", "GPU%", "Priority"]
|
||||
|
||||
# Gather process child thread information
|
||||
#get_threads = false
|
||||
|
||||
|
||||
# CPU widget configuration
|
||||
#[cpu]
|
||||
# One of "all" (default), "average"/"avg"
|
||||
#default = "average"
|
||||
|
||||
|
||||
# Disk widget configuration
|
||||
#[disk]
|
||||
# The columns shown by the process widget. The following columns are supported:
|
||||
# Disk, Mount, Used, Free, Total, Used%, Free%, R/s, W/s
|
||||
#columns = ["Disk", "Mount", "Used", "Free", "Total", "Used%", "R/s", "W/s"]
|
||||
|
||||
# By default, there are no disk name filters enabled. These can be turned on to filter out specific data entries if you
|
||||
# don't want to see them. An example use case is provided below.
|
||||
#[disk.name_filter]
|
||||
# Whether to ignore any matches. Defaults to true.
|
||||
#is_list_ignored = true
|
||||
|
||||
# A list of filters to try and match.
|
||||
#list = ["/dev/sda\\d+", "/dev/nvme0n1p2"]
|
||||
|
||||
# Whether to use regex. Defaults to false.
|
||||
#regex = true
|
||||
|
||||
# Whether to be case-sensitive. Defaults to false.
|
||||
#case_sensitive = false
|
||||
|
||||
# Whether to be require matching the whole word. Defaults to false.
|
||||
#whole_word = false
|
||||
|
||||
# By default, there are no mount name filters enabled. An example use case is provided below.
|
||||
#[disk.mount_filter]
|
||||
# Whether to ignore any matches. Defaults to true.
|
||||
#is_list_ignored = true
|
||||
|
||||
# A list of filters to try and match.
|
||||
#list = ["/mnt/.*", "/boot"]
|
||||
|
||||
# Whether to use regex. Defaults to false.
|
||||
#regex = true
|
||||
|
||||
# Whether to be case-sensitive. Defaults to false.
|
||||
#case_sensitive = false
|
||||
|
||||
# Whether to be require matching the whole word. Defaults to false.
|
||||
#whole_word = false
|
||||
|
||||
|
||||
# Temperature widget configuration
|
||||
#[temperature]
|
||||
# By default, there are no temperature sensor filters enabled. An example use case is provided below.
|
||||
#[temperature.sensor_filter]
|
||||
# Whether to ignore any matches. Defaults to true.
|
||||
#is_list_ignored = true
|
||||
|
||||
# A list of filters to try and match.
|
||||
#list = ["cpu", "wifi"]
|
||||
|
||||
# Whether to use regex. Defaults to false.
|
||||
#regex = false
|
||||
|
||||
# Whether to be case-sensitive. Defaults to false.
|
||||
#case_sensitive = false
|
||||
|
||||
# Whether to be require matching the whole word. Defaults to false.
|
||||
#whole_word = false
|
||||
|
||||
|
||||
# Network widget configuration
|
||||
#[network]
|
||||
# By default, there are no network interface filters enabled. An example use case is provided below.
|
||||
#[network.interface_filter]
|
||||
# Whether to ignore any matches. Defaults to true.
|
||||
#is_list_ignored = true
|
||||
|
||||
# A list of filters to try and match.
|
||||
#list = ["virbr0.*"]
|
||||
|
||||
# Whether to use regex. Defaults to false.
|
||||
#regex = true
|
||||
|
||||
# Whether to be case-sensitive. Defaults to false.
|
||||
#case_sensitive = false
|
||||
|
||||
# Whether to be require matching the whole word. Defaults to false.
|
||||
#whole_word = false
|
||||
|
||||
|
||||
# These are all the components that support custom theming. Note that colour support
|
||||
# will depend on terminal support.
|
||||
#[styles] # Uncomment if you want to use custom styling
|
||||
# Built-in themes. Valid values are:
|
||||
# - "default"
|
||||
# - "default-light"
|
||||
# - "gruvbox"
|
||||
# - "gruvbox-light"
|
||||
# - "nord"
|
||||
# - "nord-light".
|
||||
#
|
||||
# This will have the lowest precedence if a custom colour palette is set,
|
||||
# or overridden if the command-line flag for a built-in theme is set.
|
||||
#theme = "default"
|
||||
|
||||
#[styles.cpu]
|
||||
#all_entry_color = "green"
|
||||
#avg_entry_color = "red"
|
||||
#cpu_core_colors = ["light magenta", "light yellow", "light cyan", "light green", "light blue", "cyan", "green", "blue"]
|
||||
|
||||
#[styles.memory]
|
||||
#ram_color = "light magenta"
|
||||
#cache_color = "light red"
|
||||
#swap_color = "light yellow"
|
||||
#arc_color = "light cyan"
|
||||
#gpu_colors = ["light blue", "light red", "cyan", "green", "blue", "red"]
|
||||
|
||||
#[styles.network]
|
||||
#rx_color = "light magenta"
|
||||
#tx_color = "light yellow"
|
||||
#rx_total_color = "light cyan"
|
||||
#tx_total_color = "light green"
|
||||
|
||||
#[styles.battery]
|
||||
#high_battery_color = "green"
|
||||
#medium_battery_color = "yellow"
|
||||
#low_battery_color = "red"
|
||||
|
||||
#[styles.tables]
|
||||
#headers = {color = "light blue", bold = true}
|
||||
|
||||
#[styles.graphs]
|
||||
#graph_color = "gray"
|
||||
#legend_text = {color = "gray"}
|
||||
|
||||
#[styles.widgets]
|
||||
#border_color = "gray"
|
||||
#selected_border_color = "light blue"
|
||||
#widget_title = {color = "gray"}
|
||||
#text = {color = "gray"}
|
||||
#selected_text = {color = "black", bg_color = "light blue"}
|
||||
#disabled_text = {color = "dark gray"}
|
||||
|
||||
# Only on Linux
|
||||
#thread_text = {color = "green"}
|
||||
|
||||
# Layout - layouts follow a pattern like this:
|
||||
# [[row]] represents a row in the application.
|
||||
# [[row.child]] represents either a widget or a column.
|
||||
# [[row.child.child]] represents a widget.
|
||||
#
|
||||
# All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"].
|
||||
# All layout components have a ratio value - if this is not set, then it defaults to 1.
|
||||
# The default widget layout:
|
||||
#[[row]]
|
||||
# ratio=30
|
||||
# [[row.child]]
|
||||
# type="cpu"
|
||||
#[[row]]
|
||||
# ratio=40
|
||||
# [[row.child]]
|
||||
# ratio=4
|
||||
# type="mem"
|
||||
# [[row.child]]
|
||||
# ratio=3
|
||||
# [[row.child.child]]
|
||||
# type="temp"
|
||||
# [[row.child.child]]
|
||||
# type="disk"
|
||||
#[[row]]
|
||||
# ratio=30
|
||||
# [[row.child]]
|
||||
# type="net"
|
||||
# [[row.child]]
|
||||
# type="proc"
|
||||
# default=true
|
||||
@@ -0,0 +1,8 @@
|
||||
# style name or JSON path (default "auto")
|
||||
style: "auto"
|
||||
# mouse support (TUI-mode only)
|
||||
mouse: false
|
||||
# use pager to display markdown
|
||||
pager: false
|
||||
# word-wrap at width
|
||||
width: 80
|
||||
@@ -0,0 +1,11 @@
|
||||
[Filechooser Settings]
|
||||
LocationMode=path-bar
|
||||
ShowHidden=false
|
||||
ShowSizeColumn=true
|
||||
GeometryX=3336
|
||||
GeometryY=579
|
||||
GeometryWidth=1008
|
||||
GeometryHeight=692
|
||||
SortColumn=name
|
||||
SortOrder=ascending
|
||||
StartupMode=recent
|
||||
@@ -0,0 +1,6 @@
|
||||
file:///home/connor/docs/revolution
|
||||
file:///home/connor/docs/lightburn
|
||||
file:///home/connor/docs
|
||||
file:///home/connor/docs/canonical_app
|
||||
file:///home/connor/downloads
|
||||
file:///tmp
|
||||
@@ -0,0 +1,5 @@
|
||||
[Added Associations]
|
||||
application/x-compressed-tar=xarchiver.desktop;org.gnome.Nautilus.desktop;
|
||||
|
||||
[Default Applications]
|
||||
x-scheme-handler/claude-cli=claude-code-url-handler.desktop
|
||||
@@ -0,0 +1,419 @@
|
||||
# An example configuration file for MPD.
|
||||
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
|
||||
|
||||
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
#
|
||||
music_directory "~/audio/music"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
playlist_directory "~/audio/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "~/audio/mpd/database"
|
||||
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog.
|
||||
#
|
||||
# If you use systemd, do not configure a log_file. With systemd, MPD
|
||||
# defaults to the systemd journal, which is fine.
|
||||
#
|
||||
log_file "~/audio/mpd/log"
|
||||
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
# If you use systemd, do not configure a pid_file.
|
||||
#
|
||||
pid_file "~/audio/mpd/pid"
|
||||
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
state_file "~/audio/mpd/state"
|
||||
#
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#
|
||||
sticker_file "~/audio/mpd/sticker.sql"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# General music daemon options ################################################
|
||||
#
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "nobody"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other than the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activation is in use.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "~/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# Suppress all messages below the given threshold. Use "verbose" for
|
||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||
# "warning" and "error".
|
||||
#
|
||||
#log_level "notice"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. The complete list of possible values can be
|
||||
# found in the user manual.
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This example just enables the "comment" tag without disabling all
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
#auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Zeroconf / Avahi Service Discovery ##########################################
|
||||
#
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network. %h will be replaced with the hostname.
|
||||
#
|
||||
#zeroconf_name "Music Player @ %h"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Permissions #################################################################
|
||||
#
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Database #######################################################################
|
||||
#
|
||||
# An example of a database section instead of the old 'db_file' setting.
|
||||
# It enables mounting other storages into the music directory.
|
||||
#
|
||||
#database {
|
||||
# plugin "simple"
|
||||
# path "~/.local/share/mpd/db"
|
||||
# cache_directory "~/.local/share/mpd/cache"
|
||||
#}
|
||||
#
|
||||
# An example of database config for a satellite setup
|
||||
#
|
||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
# port "6600"
|
||||
#}
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
}
|
||||
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "alsa"
|
||||
# name "My ALSA Device"
|
||||
## device "hw:0,0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "default" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
## mixer_index "0" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoder "vorbis" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
# type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "PulseAudio MPD Output"
|
||||
# server "remote_server" # optional
|
||||
# sink "remote_server_sink" # optional
|
||||
# media_role "media_role" #optional
|
||||
}
|
||||
#
|
||||
# An example of a winmm output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "winmm"
|
||||
# name "My WinMM output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a wasapi output (Windows multimedia API).
|
||||
#
|
||||
#audio_output {
|
||||
# type "wasapi"
|
||||
# name "My WASAPI output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
# or
|
||||
## device "0" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
||||
## exclusive "no" # optional
|
||||
## Enumerate all devices in log.
|
||||
## enumerate "no" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an openal output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "openal"
|
||||
# name "My OpenAL output"
|
||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
||||
#}
|
||||
#
|
||||
# An example of an sndio output.
|
||||
#
|
||||
#audio_output {
|
||||
# type "sndio"
|
||||
# name "sndio output"
|
||||
# mixer_type "hardware"
|
||||
#}
|
||||
#
|
||||
# An example of an OS X output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "osx"
|
||||
# name "My OS X Device"
|
||||
## device "Built-in Output" # optional
|
||||
## channel_map "-1,-1,0,1" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
#audio_output {
|
||||
# type "null"
|
||||
# name "My Null Output"
|
||||
# mixer_type "none" # optional
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Normalization automatic volume adjustments ##################################
|
||||
#
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||
# more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
||||
# By default this setting is disabled.
|
||||
#
|
||||
#replaygain_missing_preamp "0"
|
||||
#
|
||||
# This setting enables or disables ReplayGain limiting.
|
||||
# MPD calculates actual amplification based on the ReplayGain tags
|
||||
# and replaygain_preamp / replaygain_missing_preamp setting.
|
||||
# If replaygain_limit is enabled MPD will never amplify audio signal
|
||||
# above its original level. If replaygain_limit is disabled such amplification
|
||||
# might occur. By default this setting is enabled.
|
||||
#
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
volume_normalization "no"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#
|
||||
###############################################################################
|
||||
@@ -0,0 +1,326 @@
|
||||
###
|
||||
### Main mpvacious configuration file.
|
||||
### Save this file to ~/.config/mpv/script-opts/subs2srs.conf
|
||||
###
|
||||
|
||||
##
|
||||
## General settings
|
||||
##
|
||||
|
||||
# Anki deck for new cards. Subdecks are supported.
|
||||
deck_name=Italian
|
||||
|
||||
# Model names are listed in `Tools -> Manage note types` menu in Anki.
|
||||
# If you don't have a model for Japanese, get it from
|
||||
# https://tatsumoto.neocities.org/blog/setting-up-anki.html#import-an-example-mining-deck
|
||||
model_name=Italian
|
||||
|
||||
# Field names as they appear in the selected note type.
|
||||
# If you set `audio_field` or `image_field` empty,
|
||||
# the corresponding media file will not be created.
|
||||
sentence_field=Italian
|
||||
secondary_field=English
|
||||
audio_field=Audio
|
||||
image_field=Image
|
||||
|
||||
# The tag(s) added to new notes. Spaces separate multiple tags.
|
||||
# Leave nothing after `=` to disable tagging completely.
|
||||
# The following substitutions are supported:
|
||||
# %n - the name of the video
|
||||
# %t - timestamp
|
||||
# %d - episode number (if none, returns nothing)
|
||||
# %e - SUBS2SRS_TAGS environment variable (if you have it set)
|
||||
note_tag=subs2srs
|
||||
#note_tag=%n %t %e
|
||||
#note_tag=
|
||||
|
||||
# Size and name of the font used in the menu
|
||||
menu_font_size=24
|
||||
menu_font_name=Noto Serif CJK JP
|
||||
|
||||
# AnkiConnect server address
|
||||
# The default address for a server on the same device is http://127.0.0.1:8765.
|
||||
# If Anki is running and AnkiConnect is installed, opening this URL should
|
||||
# open a page showing the current version of AnkiConnect.
|
||||
# Change this if you have changed webBindAddress in AnkiConnect's settings.
|
||||
ankiconnect_url=127.0.0.1:8765
|
||||
|
||||
##
|
||||
## Toggleables.
|
||||
## Possible values: `yes` or `no`.
|
||||
##
|
||||
|
||||
# Use FFmpeg encoder instead of mpv encoder
|
||||
# If mpvacious encounters problems creating audio and images for Anki cards,
|
||||
# setting this to `yes` should fix them.
|
||||
#
|
||||
# You need to install ffmpeg and add it to the PATH first.
|
||||
# https://wiki.archlinux.org/title/FFmpeg
|
||||
# https://www.ffmpeg.org/download.html
|
||||
#
|
||||
# FFmpeg encoder is unable to create audio and images from remote content (like YouTube videos).
|
||||
use_ffmpeg=no
|
||||
|
||||
# Automatically create the deck for new cards (see deck_name option)
|
||||
create_deck=yes
|
||||
|
||||
# Allow making notes with the same sentence field.
|
||||
allow_duplicates=no
|
||||
|
||||
# When mpv starts, automatically copy subs to the clipboard as they appear on screen.
|
||||
# This option can be also toggled in the addon's OSD menu.
|
||||
autoclip=yes
|
||||
|
||||
# Possible options:
|
||||
# "disabled" - autocopy is disabled
|
||||
# "clipboard" - copy to the system clipboard (e.g. uses xclip)
|
||||
# "goldendict" - send the subtitle string to goldendict (goldendict-ng).
|
||||
# "custom_command" - run any custom command specified in `autoclip_custom_args`.
|
||||
autoclip_method=clipboard
|
||||
|
||||
# Command to run when autoclip is enabled and set to "custom_command".
|
||||
# If empty, nothing will be done.
|
||||
# If set, calls the external program.
|
||||
# The following substitutions are supported:
|
||||
# %MPV_PRIMARY% - primary subtitle line
|
||||
# %MPV_SECONDARY% - secondary subtitle line
|
||||
autoclip_custom_args=/usr/local/bin/goldendict %MPV_PRIMARY%
|
||||
|
||||
# Remove all spaces from the primary subtitle text.
|
||||
# Set this to "yes" for languages without spaces like Japanese.
|
||||
# However, if mpvacious detects any latin characters in the string, spaces will not be removed.
|
||||
nuke_spaces=yes
|
||||
|
||||
# if set to `yes`, the volume of the outputted audio file
|
||||
# depends on the volume of the player at the time of export
|
||||
tie_volumes=no
|
||||
|
||||
# Remove text in parentheses and leading/trailing spaces or
|
||||
# newlines that may interfere with Rikaitan before copying
|
||||
# subtitles to the clipboard
|
||||
clipboard_trim_enabled=yes
|
||||
|
||||
# Add media to fields before or after existing data
|
||||
append_media=yes
|
||||
|
||||
# Remove text in brackets before substituting %n into tag
|
||||
tag_nuke_brackets=yes
|
||||
|
||||
# Remove text in parentheses before substituting %n into tag
|
||||
tag_nuke_parentheses=no
|
||||
|
||||
# Remove the episode number before substituting %n into tag
|
||||
tag_del_episode_num=yes
|
||||
|
||||
# Remove everything after the episode number before substituting %n into tag
|
||||
# Does nothing if the previous option tag_del_episode_num is disabled.
|
||||
tag_del_after_episode_num=yes
|
||||
|
||||
# Convert filename to lowercase for tagging.
|
||||
tag_filename_lowercase=no
|
||||
|
||||
# Lets you disable anki browser manipulation by mpvacious.
|
||||
disable_gui_browse=no
|
||||
|
||||
# Play audio clip automatically in background
|
||||
# after note creation (or note update) to ensure that the audio is correctly cut.
|
||||
preview_audio=no
|
||||
|
||||
# When selecting subtitle lines, print them on the screen.
|
||||
show_selected_text=yes
|
||||
|
||||
# For convenience, read config file from disk before a card is made.
|
||||
# Useful if you change your config often since you won't have to restart mpv every time,
|
||||
# but reading from disk takes some time.
|
||||
reload_config_before_card_creation=yes
|
||||
|
||||
##
|
||||
## Image settings
|
||||
##
|
||||
|
||||
# Snapshot format.
|
||||
# Do not switch to `jpg` unless your computer doesn't support `webp` or `avif`.
|
||||
snapshot_format=avif
|
||||
#snapshot_format=webp
|
||||
#snapshot_format=jpg
|
||||
|
||||
# Quality of produced image files. 0 = lowest, 100=highest.
|
||||
snapshot_quality=15
|
||||
|
||||
# Image dimensions
|
||||
# If either (but not both) of the width or height parameters is -2,
|
||||
# the value will be calculated preserving the aspect-ratio.
|
||||
snapshot_width=-2
|
||||
snapshot_height=200
|
||||
|
||||
# Screenshot (yes, no)
|
||||
# Usually not required.
|
||||
# When making Anki cards, create a screenshot (by calling 'screenshot-to-file') instead of a snapshot.
|
||||
# If set to yes, image dimensions and quality cannot be controlled due to mpv limitations.
|
||||
# 'snapshot_format' is still respected.
|
||||
# When using this, a custom sync server is recommended, e.g. https://github.com/ankicommunity/anki-sync-server
|
||||
screenshot=no
|
||||
|
||||
# The exact image template used when exporting to Anki's image field.
|
||||
# Adding data-editor-shrink="true" makes the image smaller by default within the Anki viewer
|
||||
# on versions 2.1.53+ (equivalent of double-clicking on the image).
|
||||
# You likely would not want to change this unless you know what you are doing.
|
||||
image_template=<img alt="snapshot" src="%s">
|
||||
#image_template=<img alt="snapshot" data-editor-shrink="true" src="%s">
|
||||
|
||||
# Similar to image_template but with audio.
|
||||
# Normally, the user doesn't need to change this setting,
|
||||
# but it may be needed for audio files to be playable on AnkiWeb.
|
||||
audio_template=[sound:%s]
|
||||
#audio_template=<audio controls="" src="%s"></audio>
|
||||
|
||||
##
|
||||
## Animated snapshots
|
||||
## Animated snapshots will capture the video from the start to the end times selected when using mpvacious.
|
||||
##
|
||||
|
||||
# If enabled, generates animated snapshots (something like GIFs) instead of static snapshots.
|
||||
animated_snapshot_enabled=no
|
||||
|
||||
# Animated snapshot format. Like "snapshot_format" but for animated images. Can be either avif or webp.
|
||||
animated_snapshot_format=avif
|
||||
#animated_snapshot_format=webp
|
||||
|
||||
# Number of frame per seconds, a value between 0 and 30 (30 included)
|
||||
# Higher values will increase both quality and file size, lower values will do the opposite
|
||||
animated_snapshot_fps=10
|
||||
|
||||
# Animated snapshot dimensions
|
||||
# If either (but not both) of the width or height parameters is -2,
|
||||
# the value will be calculated preserving the aspect-ratio.
|
||||
animated_snapshot_width=-2
|
||||
animated_snapshot_height=200
|
||||
|
||||
# Quality of the produced animation, 0 = lowest, 100 = highest
|
||||
animated_snapshot_quality=5
|
||||
|
||||
##
|
||||
## Audio settings
|
||||
##
|
||||
|
||||
# Audio format.
|
||||
# Opus is the recommended format.
|
||||
audio_format=opus
|
||||
#audio_format=mp3
|
||||
|
||||
# Container for opus files.
|
||||
# It may be required to use a different container for Opus.
|
||||
# This is the case on certain computers or devices
|
||||
# which are running proprietary operating systems, e.g. AnkiMobile. Using them is discouraged.
|
||||
# ・ Ogg/Opus play everywhere except AnkiWeb in Safari and AnkiMobile.
|
||||
# ・ M4A (iOS 17.2 and probably even earlier) and WEBM (since iOS 17.4) play everywhere.
|
||||
# ・ Opus in CAF can be used with older iOS. CAF plays only on Anki Desktop, Safari and AnkiMobile.
|
||||
# ・ (iOS Lockdown Mode disables Opus support completely,
|
||||
# though you may try to add an exception for AnkiMobile.)
|
||||
opus_container=ogg
|
||||
#opus_container=opus
|
||||
#opus_container=m4a
|
||||
#opus_container=webm
|
||||
#opus_container=caf
|
||||
|
||||
# Sane values are 16k-32k for opus, 64k-128k for mp3.
|
||||
audio_bitrate=24k
|
||||
|
||||
# Set a pad to the dialog timings. 0.5 = half a second.
|
||||
# Pads are never applied to manually set timings.
|
||||
audio_padding=0.0
|
||||
#audio_padding=0.5
|
||||
|
||||
##
|
||||
## Forvo support (Rikaitan users only)
|
||||
##
|
||||
|
||||
# yes - fetch audio from Forvo if Rikaitan couldn't find the audio (default)
|
||||
# always - always fetch audio from Forvo and replace the audio added by Rikaitan
|
||||
# no - never use Forvo
|
||||
use_forvo=yes
|
||||
|
||||
# Vocab field should be equal to {expression} field in Rikaitan
|
||||
vocab_field=VocabKanji
|
||||
|
||||
# Vocab Audio field should be equal to {audio} field in Rikaitan
|
||||
vocab_audio_field=VocabAudio
|
||||
|
||||
##
|
||||
## Misc info
|
||||
## Various context information that can be written on your cards in a specified field.
|
||||
##
|
||||
|
||||
# yes to enable or no to disable.
|
||||
miscinfo_enable=yes
|
||||
|
||||
# Field name
|
||||
miscinfo_field=Notes
|
||||
|
||||
# Format string used to fill the misc info field.
|
||||
# It supports the same substitutions as `note_tag`. HTML is supported.
|
||||
miscinfo_format=%n EP%d (%t)
|
||||
#miscinfo_format=From <b>mpvacious</b> %n at %t.
|
||||
|
||||
##
|
||||
## Secondary subtitles
|
||||
## Mpvacious can try automatically loading secondary subtitles that will appear at the top.
|
||||
## For example, you may want to load English subs alongside Japanese subs.
|
||||
##
|
||||
## Secondary subtitles should be present in the container.
|
||||
## But if you manually set secondary sid from the command line, mpvacious won't change it.
|
||||
##
|
||||
|
||||
# Load secondary subtitle track automatically when a file is opened.
|
||||
secondary_sub_auto_load=yes
|
||||
|
||||
# Language of secondary subs. This is your native language or a language you know well.
|
||||
# If you leave this parameter empty, secondary subs will NOT be automatically loaded.
|
||||
secondary_sub_lang=eng,en,rus,ru
|
||||
#secondary_sub_lang=
|
||||
|
||||
# Hover area.
|
||||
# Proportion of the top part of the mpv window where the secondary subtitles are visible when hovered over.
|
||||
# Possible values: from 0.0 to 1.0
|
||||
secondary_sub_area=0.15
|
||||
|
||||
# Visibility state
|
||||
# Can be set to: 'auto', 'never', 'always'.
|
||||
# If set to 'never' or 'always', secondary_sub_area has no effect.
|
||||
# If set to 'auto', visibility behaves according to the value of secondary_sub_area.
|
||||
# Default binding to cycle this value: Ctrl+v.
|
||||
secondary_sub_visibility=auto
|
||||
|
||||
# Perform two-pass loudness normalization.
|
||||
# Parameter explanation can be found e.g. at:
|
||||
# https://auphonic.com/blog/2013/01/07/loudness-targets-mobile-audio-podcasts-radio-tv/
|
||||
# https://auphonic.com/blog/2019/08/19/dynamic-range-processing/
|
||||
# MAKE SURE TO REMOVE loudnorm FROM CUSTOM ARGS BEFORE ENABLING.
|
||||
loudnorm=no
|
||||
loudnorm_target=-16
|
||||
loudnorm_range=11
|
||||
loudnorm_peak=-1.5
|
||||
|
||||
##
|
||||
## Custom audio encoding arguments
|
||||
## These arguments are added to the command line.
|
||||
## `mpv` and `ffmpeg` accept slightly different parameters.
|
||||
## Feel free to experiment for yourself, but be careful or media creation might stop working.
|
||||
##
|
||||
|
||||
# loudnorm IN CUSTOM ARGS IS LEFT FOR BACKWARD COMPATIBILITY.
|
||||
# MAKE SURE TO REMOVE ALL MENTIONS OF loudnorm FROM CUSTOM ARGS
|
||||
# (E.G. SET TO EMPTY STRINGS) BEFORE ENABLING TWO-PASS loudnorm.
|
||||
# ENABLING loudnorm BOTH THROUGH THE SWITCH AND THROUGH CUSTOM ARGS
|
||||
# CAN LEAD TO UNPREDICTABLE RESULTS.
|
||||
|
||||
# Ffmpeg
|
||||
ffmpeg_audio_args=-af loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true
|
||||
#ffmpeg_audio_args=
|
||||
#ffmpeg_audio_args=-af silenceremove=1:0:-50dB
|
||||
|
||||
# mpv
|
||||
# mpv accepts each filter as a separate argument, e.g. --af-append=1 --af-append=2
|
||||
mpv_audio_args=--af-append=loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true
|
||||
#mpv_audio_args=
|
||||
#mpv_audio_args=--af-append=silenceremove=1:0:-50dB
|
||||
@@ -0,0 +1,8 @@
|
||||
[window]
|
||||
width=500
|
||||
height=400
|
||||
sinkInputType=1
|
||||
sourceOutputType=1
|
||||
sinkType=0
|
||||
sourceType=1
|
||||
showVolumeMeters=1
|
||||
@@ -0,0 +1,278 @@
|
||||
# Swayimg configuration file.
|
||||
# vim: filetype=dosini
|
||||
|
||||
# This file contains the default configuration.
|
||||
# The viewer searches for the config file in the following locations:
|
||||
# 1. $XDG_CONFIG_HOME/swayimg/config
|
||||
# 2. $HOME/.config/swayimg/config
|
||||
# 3. $XDG_CONFIG_DIRS/swayimg/config
|
||||
# 4. /etc/xdg/swayimg/config
|
||||
|
||||
# Any of these options can be overridden using the --config argument
|
||||
# on the command line, for instance:
|
||||
# $ swayimg --config="general.mode=gallery"
|
||||
|
||||
################################################################################
|
||||
# General configuration
|
||||
################################################################################
|
||||
[general]
|
||||
# Mode at startup (viewer/slideshow/gallery)
|
||||
mode = viewer
|
||||
# Window size (fullscreen/image, or absolute size)
|
||||
size = image
|
||||
# Sway/Hyprland only: Window position (auto or absolute coordinates, e.g. 10,20)
|
||||
position = auto
|
||||
# Sway/Hyprland only: create floating window above the currently focused one
|
||||
overlay = no
|
||||
# Use window decoration (yes/no)
|
||||
decoration = no
|
||||
# Action performed by SIGUSR1 signal (same format as for key bindings)
|
||||
sigusr1 = reload
|
||||
# Action performed by SIGUSR2 signal (same format as for key bindings)
|
||||
sigusr2 = next_file
|
||||
# Application ID and window class name
|
||||
app_id = swayimg
|
||||
|
||||
################################################################################
|
||||
# Viewer mode configuration
|
||||
################################################################################
|
||||
[viewer]
|
||||
# Window background color (auto/extend/mirror/RGBA)
|
||||
window = #00000000
|
||||
# Background for transparent images (grid/RGBA)
|
||||
transparency = grid
|
||||
# Default image scale (optimal/width/height/fit/fill/real/keep)
|
||||
scale = optimal
|
||||
# Initial image position on the window (center/top/bottom/free/...)
|
||||
position = center
|
||||
# Anti-aliasing mode (none/box/bilinear/bicubic/mks13)
|
||||
antialiasing = mks13
|
||||
# Loop image list: jump to first image when end of list is reached (yes/no)
|
||||
loop = yes
|
||||
# Number of previously viewed images to store in cache
|
||||
history = 1
|
||||
# Number of preloaded images (read ahead)
|
||||
preload = 1
|
||||
|
||||
################################################################################
|
||||
# Slideshow mode configuration
|
||||
################################################################################
|
||||
[slideshow]
|
||||
# Slideshow image display time (seconds)
|
||||
time = 3
|
||||
# Window background color (auto/extend/mirror/RGBA)
|
||||
window = auto
|
||||
# Background for transparent images (grid/RGBA)
|
||||
transparency = #000000ff
|
||||
# Default image scale (optimal/width/height/fit/fill/real)
|
||||
scale = fit
|
||||
# Initial image position on the window (center/top/bottom/free/...)
|
||||
position = center
|
||||
# Anti-aliasing mode (none/box/bilinear/bicubic/mks13)
|
||||
antialiasing = mks13
|
||||
|
||||
################################################################################
|
||||
# Gallery mode configuration
|
||||
################################################################################
|
||||
[gallery]
|
||||
# Height and width of each thumbnail (pixels)
|
||||
size = 200
|
||||
# Max number of invisible thumbnails stored in memory cache
|
||||
cache = 100
|
||||
# Load not only visible but also adjacent thumbnails
|
||||
preload = no
|
||||
# Enable/disable storing thumbnails in persistent storage (yes/no)
|
||||
pstore = no
|
||||
# Fill the entire tile with thumbnail (yes/no)
|
||||
fill = yes
|
||||
# Anti-aliasing mode for thumbnails (none/box/bilinear/bicubic/mks13)
|
||||
antialiasing = mks13
|
||||
# Background color of the window (RGBA)
|
||||
window = #00000000
|
||||
# Background color of non-selected tiles (RGBA)
|
||||
background = #202020ff
|
||||
# Background color of the selected tile (RGBA)
|
||||
select = #404040ff
|
||||
# Border color of the selected tile (RGBA)
|
||||
border = #000000ff
|
||||
# Shadow color of the selected tile (RGBA)
|
||||
shadow = #000000ff
|
||||
|
||||
################################################################################
|
||||
# Image list configuration
|
||||
################################################################################
|
||||
[list]
|
||||
# Default order (none/alpha/numeric/mtime/size/random)
|
||||
order = alpha
|
||||
# Reverse order (yes/no)
|
||||
reverse = no
|
||||
# Read directories recursively (yes/no)
|
||||
recursive = no
|
||||
# Add files from the same directory as the first file (yes/no)
|
||||
all = no
|
||||
# Enable file system monitoring for adding new images to the list (yes/no)
|
||||
fsmon = yes
|
||||
|
||||
################################################################################
|
||||
# Font configuration
|
||||
################################################################################
|
||||
[font]
|
||||
# Font name
|
||||
name = monospace
|
||||
# Font size (pt)
|
||||
size = 14
|
||||
# Font color (RGBA)
|
||||
color = #ccccccff
|
||||
# Shadow color (RGBA)
|
||||
shadow = #000000d0
|
||||
# Background color (RGBA)
|
||||
background = #00000000
|
||||
|
||||
################################################################################
|
||||
# Image meta info scheme (format, size, EXIF, etc.)
|
||||
################################################################################
|
||||
[info]
|
||||
# Show on startup (yes/no)
|
||||
show = no
|
||||
# Text padding from window edges
|
||||
padding = 10
|
||||
# Timeout to hide info (seconds, 0 to always show)
|
||||
info_timeout = 5
|
||||
# Timeout to hide status message (seconds)
|
||||
status_timeout = 3
|
||||
|
||||
# Display scheme for viewer mode (position = content)
|
||||
[info.viewer]
|
||||
top_left = +name,+format,+filesize,+imagesize,+exif
|
||||
top_right = index
|
||||
bottom_left = scale,frame
|
||||
bottom_right = status
|
||||
|
||||
# Display scheme for slideshow mode (position = content)
|
||||
[info.slideshow]
|
||||
top_left = none
|
||||
top_right = none
|
||||
bottom_left = none
|
||||
bottom_right = dir,status
|
||||
|
||||
# Display scheme for gallery mode (position = content)
|
||||
[info.gallery]
|
||||
top_left = none
|
||||
top_right = index
|
||||
bottom_left = none
|
||||
bottom_right = name,status
|
||||
|
||||
################################################################################
|
||||
# Viewer mode key binding configuration: key = action [parameters]
|
||||
################################################################################
|
||||
[keys.viewer]
|
||||
F1 = help
|
||||
Home = first_file
|
||||
End = last_file
|
||||
Prior = prev_file
|
||||
Next = next_file
|
||||
Space = next_file
|
||||
Shift+r = rand_file
|
||||
Shift+d = prev_dir
|
||||
d = next_dir
|
||||
Shift+o = prev_frame
|
||||
o = next_frame
|
||||
c = skip_file
|
||||
s = mode slideshow
|
||||
n = animation
|
||||
f = fullscreen
|
||||
Return = mode gallery
|
||||
Left = step_left 10
|
||||
Right = step_right 10
|
||||
Up = step_up 10
|
||||
Down = step_down 10
|
||||
Equal = zoom +10
|
||||
Plus = zoom +10
|
||||
Minus = zoom -10
|
||||
w = zoom width
|
||||
Shift+w = zoom height
|
||||
z = zoom fit
|
||||
Shift+z = zoom fill
|
||||
0 = zoom real
|
||||
BackSpace = zoom optimal
|
||||
k = zoom keep
|
||||
Alt+s = zoom
|
||||
Alt+p = position
|
||||
bracketleft = rotate_left
|
||||
bracketright = rotate_right
|
||||
m = flip_vertical
|
||||
Shift+m = flip_horizontal
|
||||
a = antialiasing
|
||||
r = reload
|
||||
i = info
|
||||
Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file
|
||||
Escape = exit
|
||||
q = exit
|
||||
# Mouse related
|
||||
ScrollLeft = step_right 5
|
||||
ScrollRight = step_left 5
|
||||
ScrollUp = step_up 5
|
||||
ScrollDown = step_down 5
|
||||
Ctrl+ScrollUp = zoom +10 mouse
|
||||
Ctrl+ScrollDown = zoom -10 mouse
|
||||
Shift+ScrollUp = prev_file
|
||||
Shift+ScrollDown = next_file
|
||||
Alt+ScrollUp = prev_frame
|
||||
Alt+ScrollDown = next_frame
|
||||
MouseLeft = drag
|
||||
MouseSide = prev_file
|
||||
MouseExtra = next_file
|
||||
|
||||
################################################################################
|
||||
# Slideshow mode key binding configuration: key = action [parameters]
|
||||
################################################################################
|
||||
[keys.slideshow]
|
||||
F1 = help
|
||||
Home = first_file
|
||||
End = last_file
|
||||
Prior = prev_file
|
||||
Next = next_file
|
||||
Shift+r = rand_file
|
||||
Shift+d = prev_dir
|
||||
d = next_dir
|
||||
Space = pause
|
||||
i = info
|
||||
f = fullscreen
|
||||
Return = mode
|
||||
Escape = exit
|
||||
q = exit
|
||||
|
||||
################################################################################
|
||||
# Gallery mode key binding configuration: key = action [parameters]
|
||||
################################################################################
|
||||
[keys.gallery]
|
||||
F1 = help
|
||||
Home = first_file
|
||||
End = last_file
|
||||
Left = step_left
|
||||
Right = step_right
|
||||
Up = step_up
|
||||
Down = step_down
|
||||
Prior = page_up
|
||||
Next = page_down
|
||||
c = skip_file
|
||||
s = mode slideshow
|
||||
f = fullscreen
|
||||
Return = mode viewer
|
||||
a = antialiasing
|
||||
r = reload
|
||||
i = info
|
||||
Equal = thumb +20
|
||||
Plus = thumb +20
|
||||
Minus = thumb -20
|
||||
Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file
|
||||
Escape = exit
|
||||
q = exit
|
||||
# Mouse related
|
||||
ScrollLeft = step_right
|
||||
ScrollRight = step_left
|
||||
ScrollUp = step_up
|
||||
ScrollDown = step_down
|
||||
Ctrl+ScrollUp = thumb +20
|
||||
Ctrl+ScrollDown = thumb -20
|
||||
MouseLeft = mode viewer
|
||||
@@ -0,0 +1,19 @@
|
||||
@define-color background #121412;
|
||||
@define-color foreground #CDFEFF;
|
||||
|
||||
@define-color color0 #393B3A;
|
||||
@define-color color1 #8FA47F;
|
||||
@define-color color2 #9A9DB8;
|
||||
@define-color color3 #B29C9E;
|
||||
@define-color color4 #A0B483;
|
||||
@define-color color5 #C9D9AE;
|
||||
@define-color color6 #70FCFE;
|
||||
@define-color color7 #AFF5F6;
|
||||
@define-color color8 #7AABAC;
|
||||
@define-color color9 #8FA47F;
|
||||
@define-color color10 #9A9DB8;
|
||||
@define-color color11 #B29C9E;
|
||||
@define-color color12 #A0B483;
|
||||
@define-color color13 #C9D9AE;
|
||||
@define-color color14 #70FCFE;
|
||||
@define-color color15 #AFF5F6;
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"positionX": "right",
|
||||
"positionY": "top",
|
||||
"layer": "overlay",
|
||||
"control-center-layer": "top",
|
||||
"control-center-margin-top": 8,
|
||||
"control-center-margin-bottom": 8,
|
||||
"control-center-margin-right": 8,
|
||||
"control-center-margin-left": 0,
|
||||
"notification-icon-size": 48,
|
||||
"notification-body-image-height": 100,
|
||||
"notification-body-image-width": 200,
|
||||
"timeout": 8,
|
||||
"timeout-low": 5,
|
||||
"timeout-critical": 0,
|
||||
"fit-to-screen": false,
|
||||
"control-center-width": 350,
|
||||
"control-center-height": 700,
|
||||
"notification-window-width": 350,
|
||||
"widgets": ["title", "dnd", "mpris", "notifications"],
|
||||
"widget-config": {
|
||||
"title": {
|
||||
"text": "Notifications",
|
||||
"clear-all-button": true,
|
||||
"button-text": "Clear All"
|
||||
},
|
||||
"dnd": {
|
||||
"text": "Do Not Disturb"
|
||||
},
|
||||
"mpris": {
|
||||
"image-size": 72,
|
||||
"image-radius": 8
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
@import "colors.css";
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
font-family: Roboto, sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Notification popup */
|
||||
.notification-row {
|
||||
outline: none;
|
||||
margin: 10px 30px;
|
||||
}
|
||||
|
||||
.notification-row:focus,
|
||||
.notification-row:hover {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.notification {
|
||||
background: @background;
|
||||
border: 1px solid @color4;
|
||||
border-radius: 12px;
|
||||
padding: 0;
|
||||
margin: 5px;
|
||||
min-width: 500px;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Urgency variants */
|
||||
.notification.critical {
|
||||
border-color: @color1;
|
||||
}
|
||||
|
||||
.notification.low {
|
||||
border-color: @color3;
|
||||
}
|
||||
|
||||
/* Header bar (app name + timestamp + close button) */
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary {
|
||||
color: @color7;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.notification-default-action {
|
||||
padding: 0;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.notification-default-action:hover {
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/* Content area */
|
||||
.notification-content {
|
||||
padding: 10px 40px;
|
||||
}
|
||||
|
||||
.notification-icon {
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
opacity: 0;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.notification-summary {
|
||||
font-weight: 500;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
.notification-body {
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body {
|
||||
/* Notification body */
|
||||
font-weight: normal;
|
||||
background: transparent;
|
||||
text-shadow: none;
|
||||
padding: 5px 20px;
|
||||
}
|
||||
|
||||
/* Action buttons (e.g. "Reply", "Mark as read") */
|
||||
.notification-action {
|
||||
background: rgba(26, 110, 207, 0.2);
|
||||
border: 1px solid rgba(26, 110, 207, 0.4);
|
||||
border-radius: 6px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
padding: 5px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.notification-action:hover {
|
||||
background: rgba(26, 110, 207, 0.4);
|
||||
}
|
||||
|
||||
/* ── Control center panel ── */
|
||||
|
||||
.control-center {
|
||||
background: rgba(10, 14, 22, 0.95);
|
||||
border-left: 1px solid rgba(26, 110, 207, 0.3);
|
||||
border-radius: 0 0 0 12px;
|
||||
min-width: 500px;
|
||||
}
|
||||
|
||||
/* Title widget */
|
||||
.widget-title {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
padding: 16px 16px 8px;
|
||||
}
|
||||
|
||||
.widget-title > button {
|
||||
background: rgba(26, 110, 207, 0.2);
|
||||
border: 1px solid rgba(26, 110, 207, 0.4);
|
||||
border-radius: 6px;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
font-size: 11px;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
|
||||
.widget-title > button:hover {
|
||||
background: rgba(26, 110, 207, 0.4);
|
||||
}
|
||||
|
||||
/* DND toggle */
|
||||
.widget-dnd {
|
||||
padding: 8px 16px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border-radius: 12px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: rgba(26, 110, 207, 0.7);
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
min-width: 18px;
|
||||
min-height: 18px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
/* MPRIS widget */
|
||||
.widget-mpris {
|
||||
padding: 12px 16px;
|
||||
background: rgba(26, 110, 207, 0.08);
|
||||
border-radius: 10px;
|
||||
margin: 0 8px 8px;
|
||||
}
|
||||
|
||||
.widget-mpris-player {
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.widget-mpris-title {
|
||||
font-weight: 500;
|
||||
font-size: 13px;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.widget-mpris-subtitle {
|
||||
font-size: 11px;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
/* Notification list inside control center */
|
||||
.control-center-list {
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
.control-center-list-placeholder {
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Close buttons */
|
||||
.close-button {
|
||||
background: transparent;
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 50%;
|
||||
padding: 2px;
|
||||
min-width: 18px;
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
background: rgba(255, 74, 110, 0.3);
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/"
|
||||
XDG_DOWNLOAD_DIR="$HOME/"
|
||||
XDG_TEMPLATES_DIR="$HOME/"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/"
|
||||
XDG_DOCUMENTS_DIR="$HOME/"
|
||||
XDG_MUSIC_DIR="$HOME/"
|
||||
XDG_PICTURES_DIR="$HOME/"
|
||||
XDG_VIDEOS_DIR="$HOME/"
|
||||
@@ -0,0 +1,3 @@
|
||||
[General]
|
||||
initialize_flag=1
|
||||
random_key="iWXNyZBvOkqtifCZhpYbhHkKdWvhAG7CjZekjmmfcd8="
|
||||
@@ -0,0 +1,81 @@
|
||||
[General]
|
||||
CefOsrWindowlessFrameRate=30
|
||||
GeoLocale=system
|
||||
SensitiveInfoMaskOn=true
|
||||
ShowBiDirecSyncNoti=true
|
||||
autoPlayGif=false
|
||||
autoScale=true
|
||||
bForceMaximizeWM=false
|
||||
captureHDCamera=true
|
||||
cefInstanceCountLimit=-1
|
||||
cefRefreshTime=0
|
||||
chatListPanelLastWidth=230
|
||||
com.disable.connection.pk.status=false
|
||||
com.zoom.client.langid=0
|
||||
com.zoom.pt.settings.closedcaption.fontsize=16
|
||||
conf.webserver=https://zoom.us
|
||||
currentMeetingId=82199284629
|
||||
deviceID=28:A0:6B:E5:A9:C0
|
||||
disableCef=false
|
||||
disableUsePasskey=false
|
||||
enable.host.auto.grab=true
|
||||
enableAlphaBuffer=true
|
||||
enableCefGpu=false
|
||||
enableCefLog=false
|
||||
enableCefOsrIme=true
|
||||
enableCefOsrMode=true
|
||||
enableCefRemoteDebug=false
|
||||
enableCefRemoteDebugPort=9222
|
||||
enableCefTa=false
|
||||
enableCloudSwitch=true
|
||||
enableLog=true
|
||||
enableMiniWindow=true
|
||||
enableQmlCache=true
|
||||
enableScreenSaveGuard=false
|
||||
enableStartMeetingWithRoomSystem=false
|
||||
enableTestMode=false
|
||||
enableUnifywebviewTa=false
|
||||
enableWaylandShare=false
|
||||
enablegpucomputeutilization=false
|
||||
fake.version=
|
||||
flashChatTime=0
|
||||
forceEnableTrayIcon=true
|
||||
forceSSOURL=
|
||||
hideCrashReport=false
|
||||
host.auto.grab.interval=10
|
||||
isTransCoding=false
|
||||
legacyAvatarCacheCleaned=1776020340
|
||||
logLevel=info
|
||||
newMeetingWithVideo=true
|
||||
noSandbox=false
|
||||
playSoundForNewMessage=false
|
||||
shareBarTopMargin=0
|
||||
shortcut_as_global_ShortcutID_Screenshot=false
|
||||
shortcut_as_global_ShortcutID_ScreenshotIncludeChatWindow=false
|
||||
shortcut_as_global_ShortcutID_ShowHideFloatingMeetingControls=true
|
||||
showOneTimePTAICTipHubble=false
|
||||
showOneTimeQAMostUpvoteHubble=true
|
||||
showOneTimeQueriesOptionTip=true
|
||||
showOneTimeSmartRecognitionCoackMark=true
|
||||
showOneTimeTranslationUpSellTip=false
|
||||
showSystemTitlebar=false
|
||||
speaker_volume=255
|
||||
sso_domain=.zoom.us
|
||||
sso_gov_domain=.zoomgov.com
|
||||
system.audio.type=default
|
||||
systemDockMargin=0
|
||||
timeFormat12HoursEnable=true
|
||||
translationFreeTrialTipShowTime=0
|
||||
upcoming_meeting_header_image=
|
||||
useSystemTheme=false
|
||||
userEmailAddress=
|
||||
waylandDesktopNotifications=false
|
||||
webview.debug.enable=false
|
||||
xwayland=true
|
||||
|
||||
[AS]
|
||||
showframewindow=true
|
||||
|
||||
[CodeSnippet]
|
||||
lastCodeType=0
|
||||
wrapMode=0
|
||||
Reference in New Issue
Block a user