165 lines
5.4 KiB
Common Lisp
165 lines
5.4 KiB
Common Lisp
|
(in-package :stumpwm)
|
||
|
|
||
|
|
||
|
(init-load-path #p"~/.config/stumpwm/modules/")
|
||
|
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-cpu")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-mem")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-disk")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-net")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-screenshot")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-swm-gaps")
|
||
|
;;(stumpwm:add-to-load-path "/home/hashirama/.guix-profile/share/common-lisp/source/cl-clx-truetype")
|
||
|
(stumpwm:add-to-load-path "~/.guix-profile/share/common-lisp/sbcl/stumpwm-ttf-fonts")
|
||
|
|
||
|
;;;; gaps
|
||
|
;;(load-module "swm-gaps")
|
||
|
;;
|
||
|
(when *initializing*
|
||
|
(mode-line))
|
||
|
|
||
|
|
||
|
(run-shell-command "xmodmap -e 'clear mod4'" t) ;; clears windowskey/mod4
|
||
|
|
||
|
(run-shell-command "xmodmap -e 'keycode 133 = F20'" t) ;;assigns F20 to keycode 133
|
||
|
|
||
|
(set-prefix-key (kbd "F20")) ;; sets prefix to F20 which was just assigned to windows key
|
||
|
|
||
|
(run-shell-command "exec feh --bg-fill ~/wallpaper.jpg & picom -b")
|
||
|
(run-shell-command "xrandr --output HDMI-A-0 --mode 1366x768")
|
||
|
(define-key *top-map* (kbd "M-p") "exec nyxt")
|
||
|
(define-key *top-map* (kbd "M-l") "exec kitty")
|
||
|
(define-key *top-map* (kbd "M-d") "exec rofi -show run")
|
||
|
(define-key *root-map* (kbd "R") "restart-hard")
|
||
|
|
||
|
;; Frames
|
||
|
(define-key *root-map* (kbd "x") "hsplit")
|
||
|
(define-key *root-map* (kbd "z") "vsplit")
|
||
|
(define-key *root-map* (kbd "n") "remove-split")
|
||
|
(define-key *root-map* (kbd "Q") "quit")
|
||
|
|
||
|
(define-key *root-map* (kbd "q") "delete")
|
||
|
(define-key *root-map* (kbd "r") "remove")
|
||
|
|
||
|
(define-key *root-map* (kbd "h") "move-focus left")
|
||
|
(define-key *root-map* (kbd "j") "move-focus down")
|
||
|
(define-key *root-map* (kbd "k") "move-focus up")
|
||
|
(define-key *root-map* (kbd "l") "move-focus right")
|
||
|
(define-key *top-map* (kbd "H") "move-window left")
|
||
|
(define-key *top-map* (kbd "J") "move-window down")
|
||
|
(define-key *top-map* (kbd "K") "move-window up")
|
||
|
(define-key *top-map* (kbd "L") "move-window right")
|
||
|
|
||
|
(setf *mouse-focus-policy* :click)
|
||
|
|
||
|
|
||
|
(setf *mode-line-pad-x* 2) ; Adjust the value as needed
|
||
|
(setf *mode-line-pad-y* 2) ; Adjust the value as needed
|
||
|
|
||
|
;; Set modeline colors
|
||
|
(setf *mode-line-background-color* "black")
|
||
|
(setf *mode-line-foreground-color* "white") ; Adjust the value as needed
|
||
|
(setf *mode-line-border-color* "black")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
;; ----------
|
||
|
(setf *message-window-gravity* :center
|
||
|
*input-window-gravity* :center
|
||
|
*window-border-style* :thin
|
||
|
*message-window-padding* 10
|
||
|
*maxsize-border-width* 2
|
||
|
*normal-border-width* 2
|
||
|
*transient-border-width* 2
|
||
|
stumpwm::*float-window-border* 4
|
||
|
stumpwm::*float-window-title-height* 20
|
||
|
*mouse-focus-policy* :click)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
(defun pretty-time ()
|
||
|
"日付を '17:19:51 2014年4月27日、日曜日' の形式で返します。"
|
||
|
(defun stringify-dow (dow)
|
||
|
(nth dow '("月曜日" "火曜日" "水曜日" "木曜日" "金曜日" "土曜日" "日曜日")))
|
||
|
(defun stringify-mon (mon)
|
||
|
(nth (- mon 1) '("1月" "2月" "3月" "4月"
|
||
|
"5月" "6月" "7月" "8月"
|
||
|
"9月" "10月" "11月" "12月")))
|
||
|
(multiple-value-bind (sec min hr date mon yr dow dst-p tz)
|
||
|
(get-decoded-time)
|
||
|
(format NIL "~2,'0d:~2,'0d:~2,'0d ~d年~a時 ~d分、~a秒"
|
||
|
yr (stringify-mon mon)
|
||
|
date (stringify-dow dow)
|
||
|
hr min sec)))
|
||
|
|
||
|
;; ----
|
||
|
|
||
|
(setf *mode-line-timeout* 2)
|
||
|
|
||
|
|
||
|
;;---
|
||
|
|
||
|
|
||
|
(defvar *senju/workspaces*
|
||
|
;; (list "一" "二" "三" "四" "五" "六" "七" "八" "九" "十" "数学" "勉強"))
|
||
|
|
||
|
(list "一" "二" "三" "四" "五" "六" "七" "八" "九" "十" "数学" "勉強"))
|
||
|
(stumpwm:grename (nth 0 *senju/workspaces*))
|
||
|
(dolist (workspace (cdr *senju/workspaces*))
|
||
|
(stumpwm:gnewbg workspace))
|
||
|
|
||
|
(defvar *move-to-keybinds*
|
||
|
(list "!" "@" "#" "$" "%" "^" "&" "*" "(" "[" "]"))
|
||
|
(dotimes (y (length *senju/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))))
|
||
|
|
||
|
(defun workspace-number-to-character (index)
|
||
|
(elt '("一" "二" "三" "四" "五" "六" "七" "八" "九" "十" "数学" "勉強") index))
|
||
|
|
||
|
;; Modify the modeline format to display group numbers as characters
|
||
|
(defvar *modeline-format*
|
||
|
'(" " (:eval (workspace-number-to-character (current-group))) " " mode-line-misc-info mode-line-client
|
||
|
mode-line-modified mode-line-frame-identification " " mode-line-buffer-identification))
|
||
|
|
||
|
|
||
|
|
||
|
;--
|
||
|
|
||
|
(setf *screen-mode-line-format* (list "[^B%n^b] %W^>%d"))
|
||
|
(setf *mode-line-timeout* 2)
|
||
|
(setf *screen-mode-line-format*
|
||
|
(list "[^B%n^b] %W " ; groups/windows
|
||
|
"^>" ; right align
|
||
|
(list '(:eval (concat "| "
|
||
|
(run-shell-command "top -bn 1 | grep '%Cpu' | awk '{printf \"%.0f%%\", $2 + $4}'" :output)
|
||
|
" |")))
|
||
|
|
||
|
|
||
|
" ^7* " '(:eval (pretty-time)); date
|
||
|
))
|
||
|
|
||
|
|
||
|
(load-module "ttf-fonts")
|
||
|
|
||
|
(xft:cache-fonts)
|
||
|
|
||
|
(set-font (make-instance 'xft:font :family "HanaMinA" :subfamily "Regular" :size 10))
|
||
|
(setf *startup-message* "fonts loaded")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
(setf *inner-gaps-size* 10
|
||
|
:*outer-gaps-size* 5
|
||
|
*head-gaps-size* 5)
|
||
|
;;
|
||
|
(when *initializing*
|
||
|
(swm-gaps:toggle-gaps))
|
||
|
|