awesome/module/autostart.fnl

53 lines
1.3 KiB
Plaintext
Raw Normal View History

;;; 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