This is a collection of dotfiles and scripts for my bspwm setup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
1.3 KiB

-- playlist.lua
--
-- Automatically adds files from the same directory
-- to the playlist.
local msg = require 'mp.msg'
local utils = require 'mp.utils'
local current_dir = nil
table.indexOf = function(t, x)
for k, v in pairs(t) do
if x == v then return k end
end
end
function alphanumsort(t)
local function padnum(d) return ("%012d"):format(d) end
table.sort(t, function(a,b)
return tostring(a):gsub("%d+",padnum) <
tostring(b):gsub("%d+",padnum)
end)
return t
end
mp.register_event("file-loaded", function()
local dir = utils.split_path(mp.get_property("path"))
if dir ~= current_dir then
local entries = utils.readdir(dir, "files")
if entries ~= nil then
entries = alphanumsort(entries)
local index = table.indexOf(entries, mp.get_property("filename"))
if index ~= nil then
index = index - 1
current_dir = dir
mp.commandv("playlist_clear")
for k, v in pairs(entries) do
mp.commandv("loadfile", utils.join_path(current_dir, v), "append")
end
mp.commandv("playlist_remove", "current")
mp.set_property("playlist-pos", index)
end
end
end
end)