;;; module/auto-start.fnl --- Auto-start utilities ;;; Commentary: ;; Largely copied from ;; https://github.com/PapyElGringo/material-awesome/blob/master/module/auto-start.lua ;;; Code: (local awful (require :awful)) (local beautiful (require :beautiful)) (local naughty (require :naughty)) (local spawn awful.spawn.with_shell) (local async awful.spawn.easy_async_with_shell) ;;; ;; Functions (fn cb [prog] (lambda [stdout stderr exitreason exitcode] (when (not (= 0 exitcode)) (naughty.notify {:title (.. "async startup handler: " prog) :text stderr})))) (fn run-once [cmds] (each [_ cmd (ipairs cmds)] (let [first-space (: cmd :find " ") findme (if first-space (: cmd :sub 0 (- first-space 1)) cmd)] (spawn (string.format "pgrep -u $USER -x %s >/dev/null || (%s)" findme cmd))))) ;; Keyboard (async "tpset \"Natural Scrolling\" 1" (cb "tpset")) (async "tpset \"Tapping\" 1" (cb "tpset")) (spawn "setxkbmap -option caps:ctrl_modifier") (async (.. "feh --bg-fill " beautiful.wallpaper) (cb "feh")) (run-once ["nm-applet" ;; WiFi "pa-applet" ;; Sound manager "blueman-applet" ;; Bluetooth "compton -b" ;; Compositor "libinput-gestures" "fcitx-autostart" ;; Keyboard ]) {} ;;; module/auto-start.fnl ends here