Update dotfiles (2026-10-27 20:18:43)
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user