Standardise across machines; add genuinely-customised app config
Two passes, both aimed at a consistent experience rather than a faithful
snapshot of each machine's accidents.
Standardisation. Audited every host-layer config present on more than one
machine and asked whether the difference was intent or drift:
- mpv was byte-identical; swayimg differed only because system76 still
had the shipped default and the work laptop had the real config; bob
differed by one setting the work laptop was simply missing.
- user-dirs.dirs disagreed with BOTH machines and with zshenv, which has
said $HOME/downloads all along. Standardised on that.
- mimeapps.list is now the union of both machines' associations.
- swaync's config and style are shared; only wallust's generated
colors.css stays per host, alongside hypr's and waybar's.
All of the above moved to common/.
Dropped as pure state rather than config: gtk-2.0 (file-chooser geometry),
pavucontrol.ini (window size), zoom.conf (a per-install random_key) and
zoomus.conf (panel widths). gtk-3.0 stays per host — its bookmarks encode
the two different home directories.
App config. GIMP, inkscape, FreeCAD, cura, OrcaSlicer, LightBurn and OBS
all hold real settings, so a curated subset of each is now tracked:
settings, keybindings and user content, but not session state, tool
options, device lists or window geometry. kicad is skipped — both library
tables hold a single entry, i.e. untouched defaults.
Content lives once in common/ even when only one machine has the app; the
host configs decide who gets the link. That is the distinction that lets
53% of link sources be shared while the NAS still does not get GIMP.
Two exclusions on credential grounds: obs-studio/plugin_config holds a
websocket server_password, and gh is dropped entirely because `gh auth
login` writes a token into hosts.yml — now also blocked by name.
This commit is contained in:
1 parent
1f906acd80
commit
a2dc43d665
66 files changed
+8623
-569
No files matched your search
@@ -1,9 +0,0 @@
|
||||
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.
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"add_neovim_binary_to_path": true
|
||||
}
|
||||
@@ -1,317 +0,0 @@
|
||||
# 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
|
||||
@@ -1,8 +0,0 @@
|
||||
# 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
|
||||
@@ -1,11 +0,0 @@
|
||||
[Filechooser Settings]
|
||||
LocationMode=path-bar
|
||||
ShowHidden=false
|
||||
ShowSizeColumn=true
|
||||
GeometryX=3336
|
||||
GeometryY=579
|
||||
GeometryWidth=1008
|
||||
GeometryHeight=692
|
||||
SortColumn=name
|
||||
SortOrder=ascending
|
||||
StartupMode=recent
|
||||
@@ -1,5 +0,0 @@
|
||||
[Added Associations]
|
||||
application/x-compressed-tar=xarchiver.desktop;org.gnome.Nautilus.desktop;
|
||||
|
||||
[Default Applications]
|
||||
x-scheme-handler/claude-cli=claude-code-url-handler.desktop
|
||||
@@ -1,419 +0,0 @@
|
||||
# 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"
|
||||
#
|
||||
###############################################################################
|
||||
@@ -1,326 +0,0 @@
|
||||
###
|
||||
### 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
|
||||
@@ -1,8 +0,0 @@
|
||||
[window]
|
||||
width=500
|
||||
height=400
|
||||
sinkInputType=1
|
||||
sourceOutputType=1
|
||||
sinkType=0
|
||||
sourceType=1
|
||||
showVolumeMeters=1
|
||||
@@ -1,278 +0,0 @@
|
||||
# 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
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,201 +0,0 @@
|
||||
@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);
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
# 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/"
|
||||
@@ -1,3 +0,0 @@
|
||||
[General]
|
||||
initialize_flag=1
|
||||
random_key="iWXNyZBvOkqtifCZhpYbhHkKdWvhAG7CjZekjmmfcd8="
|
||||
@@ -1,81 +0,0 @@
|
||||
[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