Recently used

Автоматическое добавление файлов в список недавних. Это актуально для быстрого доступа к скриншотам (например для публикации).

Добавление осуществляется при помощи вот этого скрипта. Для автоматического добавления используется инструмента lsyncd, который мониторит указанную директорию (в частности $HOME/Pictures) и при обнаружении нового файла добавляет в список недавних.

Конфигурация lsyncd:

convert = {
	delay = 0,

	maxProcesses = 1,

	action = function(inlet)
		local event = inlet.getEvent()

		if event.isdir then
			-- ignores events on dirs
			inlet.discardEvent(event)
			return
		end

		local path = "\""..event.sourcePath.."\""

		if event.etype == "Create" then
			local cmd = "recently_used".." "..path
			log("Normal", "Add recently "..path)
			spawnShell(event, cmd)
			return
		end

		-- ignores other events.
		inlet.discardEvent(event)
	end,

}

sync{convert, source="/home/dvetutnev/Pictures"}

Запускаем lsyncd при помощи пользовательского юнита systemd:

[Install]
WantedBy=default.target

[Service]
ExecStart=/home/dvetutnev/.nix-profile/bin/lsyncd -nodaemon /home/dvetutnev/.recently_used/pictures.lua
LockPersonality=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateUsers=true
Restart=on-failure
RestartForceExitStatus=3
RestartForceExitStatus=4
RestrictNamespaces=true
SuccessExitStatus=3
SuccessExitStatus=4
SystemCallArchitectures=native
SystemCallFilter=@system-service

[Unit]
After=graphical.target
Description=Add screenshot to recently used

У меня lsyncd установлен при помощи пакетного менеджера, поэтому у него такой странный путь.

Локальная установка (добавляем симлинки на скрипт и юнит):

$ ln -s $HOME/.recently_used/recently_used.py ~/.local/bin/recently_used
$ ln -s $HOME/.recently_used/recently_used.service ~/.config/systemd/user/recently_used.service

И запускаем сервис:

$ systemctl --user daemon-reload
$ systemctl --user enable recently_used.service
$ systemctl --user start recently_used.service

Subscribe to Заметочки

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe