Update dotfiles (2026-10-27 20:18:43)

This commit is contained in:
2026-10-27 20:18:43 +01:00
parent 2e8ede7127
commit 4c7b7b7e54
33 changed files with 18842 additions and 18824 deletions
-219
View File
@@ -1,219 +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/gallery)
mode = viewer
# Window position (parent or absolute coordinates, e.g. 100,200)
position = parent
# Window size (fullscreen/parent/image, or absolute size, e.g. 800,600)
size = parent
# 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 (RGBA)
window = #000000ff
# Background for transparent images (grid/RGBA)
transparency = grid
# Default image scale (optimal/fit/width/height/fill/real)
scale = optimal
# Initial image position
position = center
# Fix position of the image on the window surface (yes/no)
fixed = yes
# Anti-aliasing (yes/no)
antialiasing = yes
# Run slideshow at startup (yes/no)
slideshow = no
# Slideshow image display time (seconds)
slideshow_time = 0
# Number of previously viewed images to store in cache
history = 1
# Number of preloaded images (read ahead)
preload = 1
################################################################################
# Gallery mode configuration
################################################################################
[gallery]
# Max size of the thumbnail (pixels)
size = 200
# Max number of thumbnails in cache, 0 to unlimit
cache = 100
# Fill the entire tile with thumbnail (yes/no)
fill = yes
# Use anti-aliasing for thumbnails (yes/no)
antialiasing = no
# Background color of the window (RGBA)
window = #000000ff
# Background color of the tile (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/reverse/random)
order = alpha
# Looping list of images (yes/no)
loop = yes
# Read directories recursively (yes/no)
recursive = no
# Open all files in the start directory (yes/no)
all = 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
# 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 gallery mode (position = content)
[info.gallery]
top_left = none
top_right = none
bottom_left = none
bottom_right = name,status
################################################################################
# Viewer mode key binding configuration: key = action [parameters]
################################################################################
[keys.viewer]
F1 = help
h = first_file
l = last_file
j = prev_file
k = next_file
Home = first_file
End = last_file
Left = prev_file
Right = 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
Shift+s = slideshow
s = animation
f = fullscreen
Return = mode
#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
Alt+s = scale
bracketleft = rotate_left
bracketright = rotate_right
m = flip_vertical
Shift+m = flip_horizontal
a = antialiasing
r = reload
i = info
Shift+Delete = exec rm "%"; 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
Ctrl+ScrollDown = zoom -10
Shift+ScrollUp = prev_file
Shift+ScrollDown = next_file
Alt+ScrollUp = prev_frame
Alt+ScrollDown = next_frame
################################################################################
# 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
f = fullscreen
Return = mode
a = antialiasing
r = reload
i = info
Shift+Delete = exec rm "%"; skip_file
Escape = exit
q = exit
# Mouse related
ScrollLeft = step_right
ScrollRight = step_left
ScrollUp = step_up
ScrollDown = step_down
+212
View File
@@ -0,0 +1,212 @@
swayimg.mode = "viewer"
swayimg.appid = "swayimg"
swayimg.imagelist.order = "mtime"
-- "none": unsorted (whatever order the system returns)
-- "alpha": lexicographic, so 1, 10, 2, 20, a, b, c
-- "numeric": numeric-aware, so 1, 2, 3, 10, 100, a, b, c
-- "mtime": by modification time
-- "size": by file size
-- "random": shuffled
swayimg.imagelist.adjacent = true -- INI list.all = yes (default: false)
-- Text overlay
swayimg.text.visible = false -- INI info.show = no (default: true)
swayimg.text.size = 19 -- INI font.size = 14pt; Lua uses pixels (14pt ~ 19px)
swayimg.text.shadow = 0xd0000000 -- INI font.shadow = #000000d0 (ARGB here)
-- INI info.viewer layout: image size at top left, frame info at bottom left
swayimg.viewer.text = {
topleft = {
"File:\t{name}",
"Format:\t{format}",
"File size:\t{sizehr}",
"File time:\t{time}",
"Size:\t{frame.width}x{frame.height}",
"EXIF date:\t{meta.Exif.Photo.DateTimeOriginal}",
"EXIF camera:\t{meta.Exif.Image.Model}",
},
topright = {
"Image:\t{list.index} of {list.total}",
},
bottomleft = {
"Scale:\t{scale}",
"Frame:\t{frame.index} of {frame.total}",
},
}
-- INI info.gallery layout: only the file name, bottom right
swayimg.gallery.text = {
bottomright = { "{name}" },
}
-- Gallery appearance
swayimg.gallery.border_color = 0xff000000 -- INI gallery.border = #000000ff (default: 0xffaaaaaa)
-- Helpers
local function next_frame()
swayimg.viewer.frame = swayimg.viewer.frame + 1
end
local function prev_frame()
local frame = swayimg.viewer.frame
if frame > 0 then
swayimg.viewer.frame = frame - 1
end
end
-- INI "skip_file": drop the current image from the list
local function skip_image(img)
if img then
swayimg.imagelist.remove(img.path)
end
end
-- INI: exec rm "%"; skip_file (permanently deletes the file from disk!)
local function delete_image(img)
if img then
local path = img.path
os.remove(path)
swayimg.imagelist.remove(path)
swayimg.text.status = "Deleted " .. path
end
end
-- Signals (INI general.sigusr1 = reload, general.sigusr2 = next_file)
swayimg.viewer.on_signal("USR1", function()
swayimg.viewer.reload()
end)
swayimg.viewer.on_signal("USR2", function()
swayimg.viewer.open("next")
end)
swayimg.slideshow.on_signal("USR1", function()
swayimg.slideshow.reload()
end)
swayimg.slideshow.on_signal("USR2", function()
swayimg.slideshow.open("next")
end)
swayimg.gallery.on_signal("USR1", function()
swayimg.gallery.reload()
end)
-- Viewer key bindings
-- file navigation
swayimg.viewer.on_key("h", function()
swayimg.viewer.open("first")
end)
swayimg.viewer.on_key("l", function()
swayimg.viewer.open("last")
end)
swayimg.viewer.on_key("j", function()
swayimg.viewer.open("prev")
end)
swayimg.viewer.on_key("k", function()
swayimg.viewer.open("next")
end)
swayimg.viewer.on_key("Home", function()
swayimg.viewer.open("first")
end)
swayimg.viewer.on_key("End", function()
swayimg.viewer.open("last")
end)
-- NOTE: Left/Right switch images, as in the INI. The default (pan image)
-- is overridden; scroll or the vertical arrows still pan.
swayimg.viewer.on_key("left", function()
swayimg.viewer.open("prev")
end)
swayimg.viewer.on_key("right", function()
swayimg.viewer.open("next")
end)
swayimg.viewer.on_key("space", function()
swayimg.viewer.open("next")
end)
swayimg.viewer.on_key("Shift+r", function()
swayimg.viewer.open("random")
end)
swayimg.viewer.on_key("Shift+d", function()
swayimg.viewer.open("prev_dir")
end)
swayimg.viewer.on_key("d", function()
swayimg.viewer.open("next_dir")
end)
-- frames / animation / slideshow
swayimg.viewer.on_key("Shift+o", prev_frame)
swayimg.viewer.on_key("o", next_frame)
swayimg.viewer.on_key("s", function() -- INI: s = animation (toggle)
swayimg.viewer.animation = not swayimg.viewer.animation
end)
swayimg.viewer.on_key("Shift+s", function() -- INI: Shift+s = slideshow
swayimg.mode = "slideshow"
end)
-- skip / delete
swayimg.viewer.on_key("c", function()
skip_image(swayimg.viewer.get_image())
end)
swayimg.viewer.on_key("Shift+Delete", function()
delete_image(swayimg.viewer.get_image())
end)
-- zoom
swayimg.viewer.on_key("plus", function()
swayimg.viewer.scale = swayimg.viewer.scale + swayimg.viewer.scale / 10
end)
swayimg.viewer.on_key("w", function()
swayimg.viewer.set_fix_scale("width")
end)
swayimg.viewer.on_key("Shift+w", function()
swayimg.viewer.set_fix_scale("height")
end)
swayimg.viewer.on_key("z", function()
swayimg.viewer.set_fix_scale("fit")
end)
swayimg.viewer.on_key("Shift+z", function()
swayimg.viewer.set_fix_scale("fill")
end)
swayimg.viewer.on_key("0", function()
swayimg.viewer.set_fix_scale("real")
end)
swayimg.viewer.on_key("backspace", function()
swayimg.viewer.set_fix_scale("optimal")
end)
-- misc
swayimg.viewer.on_key("r", function()
swayimg.viewer.reload()
end)
swayimg.viewer.on_key("i", function()
swayimg.text.visible = not swayimg.text.visible
end)
swayimg.viewer.on_key("q", function()
swayimg.exit()
end)
-- mouse
swayimg.viewer.on_mouse("Shift+ScrollUp", function()
swayimg.viewer.open("prev")
end)
swayimg.viewer.on_mouse("Shift+ScrollDown", function()
swayimg.viewer.open("next")
end)
swayimg.viewer.on_mouse("Alt+ScrollUp", prev_frame)
swayimg.viewer.on_mouse("Alt+ScrollDown", next_frame)
--------------------------------------------------------------------------------
-- Gallery key bindings
--------------------------------------------------------------------------------
swayimg.gallery.on_key("c", function()
skip_image(swayimg.gallery.get_image())
end)
swayimg.gallery.on_key("Shift+Delete", function()
delete_image(swayimg.gallery.get_image())
end)
swayimg.gallery.on_key("r", function()
swayimg.gallery.reload()
end)
swayimg.gallery.on_key("i", function()
swayimg.text.visible = not swayimg.text.visible
end)
swayimg.gallery.on_key("q", function()
swayimg.exit()
end)