aboutsummaryrefslogtreecommitdiff
path: root/tw/home/files/sessionmenu
blob: 552c2b3c219ab857296416264875d2d5a385fe11 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env -S guile --no-auto-compile
!#
(use-modules (ice-9 format)
             (ice-9 match)
             (ice-9 ports))

(define (call-command/stderr . command)
  "Call COMMAND using `system*', but redirect all output to stderr."
  (with-output-to-port (current-error-port)
    (lambda () (apply system* command))))

(match (command-line)
  ((_ "quit")
   (exit 0))
  ((_ "Reload i3 configuration")
   (call-command/stderr "i3-msg" "reload"))
  ((_ "Log out")
   (call-command/stderr "i3-msg" "exit"))
  ((_ "Shutdown")
   (call-command/stderr "sudo" "-n" "/run/current-system/profile/sbin/shutdown"))
  ((_ "Reboot")
   (call-command/stderr "sudo" "-n" "/run/current-system/profile/sbin/reboot"))
  (_
   (format #t "\0~a\x1f~a~%~{~a\0icon\x1f~a~%~}"
           "prompt" "Session"
           '("Reload i3 configuration" "reload"
             "Log out" "system-log-out"
             "Shutdown" "system-shutdown"
             "Reboot" "system-reboot"))))