blob: ea923ba0a166095072c74d4522b629b737b32166 (
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
(in-package :stumpwm)
;; autostart
(run-shell-command "
emacs --daemon &
feh --bg-scale ~/dotfiles/wallpaper.png &
picom &
exec qbittorrent &")
;; UI
(setf *message-window-gravity* :center
*input-window-gravity* :center
*window-border-style :thin
*mouse-focus-policy* :click
*transient-border-width* 2
*normal-size-border-width* 2)
;; change the prefix key to something else
(set-prefix-key (kbd "C-t"))
;; prompt the user for an interactive command. The first arg is an
;; optional initial contents.
(defcommand colon1 (&optional (initial "")) (:rest)
(let ((cmd (read-one-line (current-screen) ": " :initial-input initial)))
(when cmd
(eval-command cmd t))))
;; Run rofi
(define-key *root-map* (kbd "C-r") "exec rofi -show drun")
(define-key *root-map* (kbd "e") "exec emacsclient -c")
(define-key *root-map* (kbd "e") "emacs --daemon")ay
;; Browse somewhere
(define-key *root-map* (kbd "b") "colon1 exec firefox http://www.")
;; Ssh somewhere
(define-key *root-map* (kbd "C-s") "colon1 exec xterm -e ssh ")
;; Lock screen
(define-key *root-map* (kbd "C-l") "exec xlock")
;; Audio
(define-key *top-map* (kbd "XF86AudioLowerVolume") "exec amixer sset Master 5%-")
(define-key *top-map* (kbd "XF86AudioRaiseVolume") "exec amixer sset Master 5%+")
;; Web jump (works for DuckDuckGo and Imdb)
(defmacro make-web-jump (name prefix)
`(defcommand ,(intern name) (search) ((:rest ,(concatenate 'string name " search: ")))
(nsubstitute #\+ #\Space search)
(run-shell-command (concatenate 'string ,prefix search))))
(make-web-jump "duckduckgo" "firefox https://duckduckgo.com/?q=")
(make-web-jump "imdb" "firefox http://www.imdb.com/find?q=")
;; C-t M-s is a terrble binding, but you get the idea.
(define-key *root-map* (kbd "M-s") "duckduckgo")
(define-key *root-map* (kbd "i") "imdb")
;; Message window font
(set-font "-xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-15")
;;; Define window placement policy...
(defvar *thanos/workspaces*
(list "EMACS"
"WEB"
"ANKI"
"DOC"
"RAND"
"VID"
"TOR"))
(stumpwm:grename (nth 0 *thanos/workspaces*))
(dolist (workspace (cdr *thanos/workspaces*))
(stumpwm:gnewbg workspace))
(defvar *move-to-keybinds* (list "!" "@" "#" "$" "%" "^" "&" "*" "("))
(dotimes (y (length *ce/workspaces*))
(let ((workspace (write-to-string (+ y 1))))
(define-key *root-map* (kbd workspace) (concat "gselect " workspace))
(define-key *root-map* (kbd (nth y *move-to-keybinds*)) (concat "gmove-and-follow " workspace))))
;; Clear rules
(clear-window-placement-rules)
;; Last rule to match takes precedence!
;; TIP: if the argument to :title or :role begins with an ellipsis, a substring
;; match is performed.
;; TIP: if the :create flag is set then a missing group will be created and
;; restored from *data-dir*/create file.
;; TIP: if the :restore flag is set then group dump is restored even for an
;; existing group using *data-dir*/restore file.
(define-frame-preference "Default"
;; frame raise lock (lock AND raise == jumpto)
(0 t nil :class "Konqueror" :role "...konqueror-mainwindow")
(1 t nil :class "XTerm"))
(define-frame-preference "Ardour"
(0 t t :instance "ardour_editor" :type :normal)
(0 t t :title "Ardour - Session Control")
(0 nil nil :class "XTerm")
(1 t nil :type :normal)
(1 t t :instance "ardour_mixer")
(2 t t :instance "jvmetro")
(1 t t :instance "qjackctl")
(3 t t :instance "qjackctl" :role "qjackctlMainForm"))
(define-frame-preference "Shareland"
(0 t nil :class "XTerm")
(1 nil t :class "aMule"))
(define-frame-preference "Emacs"
(1 t t :restore "emacs-editing-dump" :title "...xdvi")
(0 t t :create "emacs-dump" :class "Emacs"))
(setf *mouse-focus-policy* :click)
|