(defmacro defvar/os (id &rest args)
(let ((arglen (length args))
plist)
(unless (and (evenp arglen)
(> arglen 0))
(error "wrong number of arguments: %s" arglen))
(while args
(push (list
(pcase (pop args)
(:windows ''windows-nt)
(:macos ''darwin)
(:linux ''gnu/linux))
(pop args))
plist)
)
`(defvar ,id
(pcase system-type
,@plist
))))