git.fiddlerwoaroof.com
Browse code

chore(stumpwm): improve asdf output translations and browser finding

Ed L authored on 07/01/2022 03:22:48
Showing 3 changed files
... ...
@@ -3,6 +3,31 @@
3 3
 (eval-when (:compile-toplevel :load-toplevel :execute)
4 4
   (load "~/quicklisp/setup.lisp"))
5 5
 
6
+(eval-when (:compile-toplevel :load-toplevel :execute)
7
+ (defun library-translation (input dd)
8
+   (declare (ignore dd))
9
+   (merge-pathnames
10
+     (make-pathname :directory
11
+                    (list* :relative
12
+                           "lisp-dylibs"
13
+                           (cdr
14
+                             (pathname-directory
15
+                               (parse-namestring
16
+                                 input))))
17
+                    :defaults input)
18
+     (user-homedir-pathname)))
19
+
20
+ (defun is-library ()
21
+   (make-pathname :directory (list :absolute :wild-inferiors)
22
+                  :name :wild
23
+                  :type "so"
24
+                  :version :wild))
25
+
26
+ (asdf:initialize-output-translations
27
+   `(:output-translations
28
+      :inherit-configuration
29
+      (,(is-library) (:function library-translation)))))
30
+
6 31
 (eval-when (:compile-toplevel :load-toplevel :execute)
7 32
   (ql:quickload :xembed)
8 33
   (ql:quickload :stumpwm)
... ...
@@ -38,7 +38,11 @@
38 38
                  (mpd-remote.song::album current-song)
39 39
                  (mpd-remote.song::title current-song)))))
40 40
 
41
-  (defparameter *browser-command* "/usr/bin/google-chrome-beta")
41
+  (defparameter *browser-command*
42
+    (namestring
43
+     (merge-pathnames (make-pathname :directory '(:relative "bin")
44
+                                     :name "firefox")
45
+                      (user-homedir-pathname))))
42 46
 
43 47
   (defun cat (&rest strings)
44 48
     (uiop:escape-sh-command strings))
... ...
@@ -46,17 +50,17 @@
46 50
   (defgeneric get-search-url (provider &rest strings)
47 51
     (:method-combination append :most-specific-last)
48 52
     (:method :around (provider &rest r)
49
-     (declare (ignore r))
50
-     (apply #'concatenate 'string (call-next-method)))
53
+      (declare (ignore r))
54
+      (apply #'concatenate 'string (call-next-method)))
51 55
 
52 56
     (:method append (provider &rest r)
53
-     (declare (ignore r))
54
-     (list "https://duckduckgo.com/?q="))
57
+      (declare (ignore r))
58
+      (list "https://duckduckgo.com/?q="))
55 59
     (:method append ((provider (eql nil)) &rest strings)
56
-     (list* (car strings) (loop for string in (cdr strings) nconcing (list "+" string))))
60
+      (list* (car strings) (loop for string in (cdr strings) nconcing (list "+" string))))
57 61
 
58 62
     (:method append ((provider (eql :google)) &rest strings)
59
-     (list* "%21google" (loop for string in strings nconcing (list "+" string)))))
63
+      (list* "%21google" (loop for string in strings nconcing (list "+" string)))))
60 64
 
61 65
   (defmacro add-provider (name ddg-shortcut)
62 66
     `(defmethod get-search-url append ((provider (eql ,name)) &rest strings)
... ...
@@ -82,36 +86,25 @@
82 86
     (push (get-x-selection) (ubiquitous:value :clip))
83 87
     (ubiquitous:offload))
84 88
 
85
-  (defcommand google (provider search-string) ((:string "Search Provider? ") (:string "Search Google for: "))
86
-    "Search google for a given string"
87
-    (check-type search-string (or null string))
88
-    (when search-string)
89
-    (run-shell-command (cat *browser-command* " "
90
-                            (get-search-url :google (substitute #\+ #\space search-string)))))
91
-
92
-
93 89
   (defcommand do-search (provider search-string) ((:string "Provider: ") (:string "Search for: "))
94 90
     "Run a search against a specified provider"
95 91
     (check-type provider (or null string))
96 92
     (check-type search-string (or null string))
97 93
     (when (and provider search-string)
98 94
       (let ((provider (intern (string-upcase provider) :keyword)))
99
-        (run-shell-command (cat *browser-command* " "
100
-                                (get-search-url provider (substitute #\+ #\space search-string)))))))
95
+        (run-shell-command (cat *browser-command* (get-search-url provider (substitute #\+ #\space search-string)))))))
101 96
 
102 97
   (defcommand google (search-string) ((:string "Search Google for: "))
103 98
     "Search google for a given string"
104 99
     (check-type search-string (or null string))
105 100
     (when search-string
106
-      (run-shell-command (cat *browser-command* " "
107
-                              (get-search-url :google (substitute #\+ #\space search-string))))))
101
+      (run-shell-command (cat *browser-command* (get-search-url :google (substitute #\+ #\space search-string))))))
108 102
 
109 103
   (defcommand duckduckgo (search-string) ((:string "Search DDG for: "))
110 104
     "Search duckduckgo gor a given string"
111 105
     (check-type search-string (or null string))
112 106
     (when search-string
113
-      (run-shell-command (cat *browser-command* " "
114
-                              (get-search-url nil (substitute #\+ #\space search-string))))))
107
+      (run-shell-command (cat *browser-command* (get-search-url nil (substitute #\+ #\space search-string))))))
115 108
 
116 109
   (defcommand search-for-selection (provider) ((:string "Search Provider?"))
117 110
     "Search for the x selection with provider"
... ...
@@ -121,8 +114,9 @@
121 114
     "get moi a jira ticket"
122 115
     (unless (alpha-char-p (elt number 0))
123 116
       (setf number (format nil "ATOMOS-~a" number)))
124
-    (run-shell-command #1=(cat *browser-command*
125
-                               (format nil "https://atomampd.atlassian.net/browse/~a" number))))
117
+    (run-shell-command #1=(format nil "'~a'"
118
+                                  (cat *browser-command*
119
+                                       (format nil "https://atomampd.atlassian.net/browse/~a" number)))))
126 120
 
127 121
   (defcommand run-yeganesh () ()
128 122
     "Run Command given by yeganesh"
... ...
@@ -5,7 +5,7 @@
5 5
   (defvar *selection-search-map* nil "selection search map")
6 6
   (defvar *search-map* nil "search map"))
7 7
 
8
-;;#+devtime
8
+#+devtime
9 9
 (progn
10 10
   (setf *window-format* "%s%m%n: %15t")
11 11
   (setf *window-format-by-class* "%m%n %c %s%92t"))
... ...
@@ -13,11 +13,13 @@
13 13
 ;;#-devtime
14 14
 #+(or)
15 15
 (eval-when (:load-toplevel :compile-toplevel :execute)
16
+ (require :sb-posix)
16 17
   (load-module "stumptray"))
17 18
 
18 19
 (eval-when (:load-toplevel :compile-toplevel :execute)
19 20
   #-devtime
20 21
   (progn 
22
+    (sb-posix:setenv "PATH" (format nil "/snap/bin:~a" (sb-posix:getenv "PATH")) 1)
21 23
     (set-prefix-key (kbd "s-space"))
22 24
     (mode-line)
23 25
     #+(or)