summaryrefslogtreecommitdiffhomepage
path: root/attic/orgs/misc.el
diff options
context:
space:
mode:
Diffstat (limited to 'attic/orgs/misc.el')
-rw-r--r--attic/orgs/misc.el95
1 files changed, 95 insertions, 0 deletions
diff --git a/attic/orgs/misc.el b/attic/orgs/misc.el
new file mode 100644
index 0000000..b56c5df
--- /dev/null
+++ b/attic/orgs/misc.el
@@ -0,0 +1,95 @@
+;;;; sway
+(defun jao-swaymsg (msg)
+ (shell-command (format "swaymsg '%s' >/dev/null" msg)))
+
+(defmacro jao-def-swaymsg (name msg)
+ `(defun ,(intern (format "jao-sway-%s" name)) ()
+ (interactive)
+ (jao-swaymsg ,msg)))
+(jao-def-swaymsg firefox "[app_id=firefox] focus")
+
+(defvar jao-sway-enabled
+ (and (eq window-system 'pgtk) (not jao-xmonad-enabled)))
+
+(defun jao-sway-set-wallpaper (f)
+ (jao-swaymsg (format "output * bg %s fill" f))
+ (make-symbolic-link f "~/.wallpaper.sway" t))
+
+(defun jao-sway-run-or-focus (cmd &optional ws)
+ (if (jao-shell-running-p "firefox")
+ (jao-swaymsg (format "[app_id=%s] focus" cmd))
+ (jao-swaymsg (format "workspace %s" (or ws 2)))
+ (start-process-shell-command cmd nil cmd)))
+
+(defun jao-sway-run-or-focus-tidal ()
+ (interactive)
+ (if (jao-shell-running-p "tidal-hifi")
+ (jao-swaymsg "[app_id=tidal-hifi] scratchpad show")
+ (start-process-shell-command "tidal-hifi" nil "tidal-hifi &")
+ (jao-sway-run-or-focus-tidal)))
+
+(defun jao-sway-run-or-focus-firefox ()
+ (interactive)
+ (jao-sway-run-or-focus "firefox"))
+
+(defun jao-sway-enable ()
+ (setq jao-browse-doc-use-emacs-p t)
+ (setq jao-wallpaper-random-wake nil)
+ (jao-trisect)
+ (jao-set-transparency 85)
+ (jao-themes-setup)
+ ;; (display-time-mode 1)
+ (global-set-key (kbd "s-f") #'jao-sway-run-or-focus-firefox)
+ (defalias 'jao-streaming-list #'jao-sway-run-or-focus-tidal)
+ (message "Welcome to sway"))
+
+(when jao-sway-enabled
+ (defalias 'x-change-window-property #'ignore)
+ (add-hook 'after-init-hook #'jao-sway-enable))
+
+;;;; time display
+(setq display-time-world-list
+ '(("Europe/Paris" "Barcelona")
+ ("America/Los_Angeles" "Los Angeles")
+ ("America/New_York" "New York")
+ ("Europe/London" "London")
+ ("Asia/Calcutta" "Bangalore")
+ ("Asia/Tokyo" "Tokyo")))
+
+(defun jao-time--pdt-hour ()
+ (jao-time-at-zone "%H" "America/Los_Angeles"))
+
+(defun jao-time--chicago-hour ()
+ (jao-time-at-zone "%H" "America/Chicago"))
+
+(defun jao-time-at-zone (format zone)
+ (set-time-zone-rule zone)
+ (prog1 (format-time-string format)
+ (set-time-zone-rule nil)))
+
+(defun jao-time-echo-la-time ()
+ (interactive)
+ (message (jao-time-at-zone "LA %H:%M" "America/Los_Angeles")))
+
+(defun jao-time-echo-times ()
+ (interactive)
+ (let ((msg (format "%s (%s)"
+ (format-time-string "%a, %e %B - %H:%M")
+ (jao-time-at-zone "%H:%M" "America/Los_Angeles"))))
+ (jao-notify msg "" (jao-data-file "clock-world-icon.png"))))
+
+(defun jao-time-to-epoch (&optional s)
+ "Transform a time string to an epoch integer in milliseconds."
+ (interactive)
+ (let ((s (or s (read-string "Time string: " (thing-at-point 'string)))))
+ (message "%s = %s"
+ s
+ (round (* 1000 (time-to-seconds (parse-time-string s)))))))
+
+(defun jao-epoch-to-time (&optional v)
+ "Transform an epoch, given in milliseconds, to a time string."
+ (interactive)
+ (let ((v (or v (read-number "Milliseconds: " (thing-at-point 'number)))))
+ (message "%s = %s" v
+ (format-time-string "%Y-%m-%d %H:%M:%S"
+ (seconds-to-time (/ v 1000.0))))))