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