Compare commits
6 commits
af77f610b6
...
8e2f5eed4a
Author | SHA1 | Date | |
---|---|---|---|
8e2f5eed4a | |||
b775263a34 | |||
ac08c5edd8 | |||
752a3152b4 | |||
921724c48f | |||
f64dbccd6f |
15 changed files with 130 additions and 58 deletions
|
@ -12,7 +12,7 @@ executable bit set. TEXT is a sequence of strings and file-like objects, as in:
|
|||
(define build
|
||||
(let ((text (if guile (drop text 2) text)))
|
||||
(gexp (call-with-output-file (ungexp output "out")
|
||||
(lambda (port)
|
||||
(λ (port)
|
||||
(set-port-encoding! port "UTF-8")
|
||||
(display (string-append (ungexp-splicing text)) port)
|
||||
(chmod port #o555))))))
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
"alias hc=herbstclient\n"
|
||||
"setopt SHARE_HISTORY\n"
|
||||
"setopt HIST_IGNORE_ALL_DUPS\n"
|
||||
"setopt HIST_IGNORE_SPACE\n"
|
||||
"setopt PROMPT_SUBST\n"
|
||||
"zle -N x-copy-region-as-kill\n"
|
||||
"zle -N x-kill-region\n"
|
||||
|
|
|
@ -218,7 +218,7 @@ horizontal axis.")
|
|||
(define (home-dunst-config-dunstrc config)
|
||||
(computed-file "dunstrc"
|
||||
#~(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(λ (port)
|
||||
(display #$(serialize-dunst-configuration config)
|
||||
port)))))
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
(define (home-guile-config-file config)
|
||||
(computed-file "guile"
|
||||
#~(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(λ (port)
|
||||
(display #$(serialize-guile-configuration config) port)))))
|
||||
|
||||
(define (home-guile-config-files config)
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
(define (build-keybindings bindings)
|
||||
(append
|
||||
(list "herbstclient keyunbind --all\n")
|
||||
(map (lambda (binding)
|
||||
(map (λ (binding)
|
||||
(format #f "herbstclient keybind ~a ~a\n"
|
||||
(kbd (car binding)) (cdr binding)))
|
||||
bindings)))
|
||||
|
@ -70,18 +70,16 @@
|
|||
(home-herbstluftwm-configuration-key-bindings config))
|
||||
|
||||
(list "herbstclient mouseunbind --all\n")
|
||||
(map (lambda (binding)
|
||||
(map (λ (binding)
|
||||
(format #f "herbstclient mousebind ~a ~a\n"
|
||||
(kbd (car binding)) (cdr binding)))
|
||||
(home-herbstluftwm-configuration-mouse-bindings config))
|
||||
(map (lambda (setting)
|
||||
(map (λ (setting)
|
||||
(format #f "herbstclient set ~s ~s\n"
|
||||
(car setting) (cdr setting)))
|
||||
(home-herbstluftwm-configuration-settings config))
|
||||
(map (lambda (tag)
|
||||
(format #f "herbstclient add ~s\n" tag))
|
||||
tags)
|
||||
(map (lambda (key tag)
|
||||
(map (λ (tag) (format #f "herbstclient add ~s\n" tag)) tags)
|
||||
(map (λ (key tag)
|
||||
(format #f "herbstclient keybind Mod4-~a use ~s\n" key tag))
|
||||
(take (home-herbstluftwm-configuration-tag-keys config)
|
||||
(length tags))
|
||||
|
@ -89,26 +87,25 @@
|
|||
(if (> (length tags) 0)
|
||||
(list (format #f "herbstclient use ~s\nherbstclient merge_tag default ~s\n" (car tags) (car tags)))
|
||||
'())
|
||||
(map (lambda (attribute-pair)
|
||||
(map (λ (attribute-pair)
|
||||
(format #f "herbstclient attr ~a ~s\n"
|
||||
(string-join (map symbol->string (car attribute-pair)) ".")
|
||||
(cdr attribute-pair)))
|
||||
(home-herbstluftwm-configuration-attributes config))
|
||||
(list "herbstclient unrule -F\n")
|
||||
(map (lambda (rule)
|
||||
(map (λ (rule)
|
||||
(format #f "herbstclient rule ~a\n"
|
||||
(string-join rule " ")))
|
||||
(home-herbstluftwm-configuration-rules config))
|
||||
(list "herbstclient unlock\n"
|
||||
(format #f "herbstclient pad ~a\n"
|
||||
(string-join (map number->string (home-herbstluftwm-configuration-padding config)) " ")))
|
||||
(map (lambda (layout-pair)
|
||||
(map (λ (layout-pair)
|
||||
(format #f "herbstclient load ~s '~s'\n"
|
||||
(car layout-pair)
|
||||
(cdr layout-pair)))
|
||||
(home-herbstluftwm-configuration-layouts config))
|
||||
(map (lambda (line)
|
||||
(format #f "herbstclient ~a\n" line))
|
||||
(map (λ (line) (format #f "herbstclient ~a\n" line))
|
||||
(home-herbstluftwm-configuration-extra config))))))
|
||||
|
||||
(define (add-herbstluftwm-executable config)
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
(define (home-mpd-audio-output-list? value)
|
||||
(and (list? value)
|
||||
(every (lambda (v) (is-a? v <home-mpd-audio-output>)) value)))
|
||||
(every (λ (v) (is-a? v <home-mpd-audio-output>)) value)))
|
||||
|
||||
(define-maybe string)
|
||||
(define-maybe home-mpd-audio-output-list)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
(symbol->string field)
|
||||
": {\n"
|
||||
(apply string-append
|
||||
(map (lambda (type)
|
||||
(map (λ (type)
|
||||
(string-append
|
||||
" "
|
||||
(symbol->string (car type))
|
||||
|
@ -44,7 +44,7 @@
|
|||
(string-append
|
||||
"{ "
|
||||
(apply string-append
|
||||
(map (lambda (option)
|
||||
(map (λ (option)
|
||||
(string-append (symbol->string (car option)) " = " (if (cdr option) "true" "false")))
|
||||
(cdr type)))
|
||||
" },"))
|
||||
|
@ -61,7 +61,7 @@
|
|||
|
||||
(define (serialize-list field value)
|
||||
(string-append (symbol->string field) " = [\n"
|
||||
(apply string-append (map (lambda (item)
|
||||
(apply string-append (map (λ (item)
|
||||
(string-append " \"" item "\",\n"))
|
||||
value))
|
||||
"];\n"))
|
||||
|
@ -166,7 +166,7 @@
|
|||
(computed-file
|
||||
"picom.conf"
|
||||
#~(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(λ (port)
|
||||
(display #$(serialize-configuration config home-picom-configuration-fields) port)))))
|
||||
|
||||
(define (home-picom-files-service config)
|
||||
|
|
|
@ -95,18 +95,18 @@
|
|||
"\n}\n")))
|
||||
|
||||
(define (format-rofi-theme theme)
|
||||
(let ((keys (map (lambda (s)
|
||||
(let ((keys (map (λ (s)
|
||||
(if (symbol? s)
|
||||
(symbol->string s)
|
||||
(object->string s)))
|
||||
(butlast theme 1)))
|
||||
(values (car (list-tail theme (- (length theme) 1)))))
|
||||
(string-append (string-join keys ", ")
|
||||
" {\n "
|
||||
(string-join
|
||||
(map format-rofi-config values)
|
||||
"\n ")
|
||||
"\n}\n")))
|
||||
(string-append (string-join keys ", ")
|
||||
" {\n "
|
||||
(string-join
|
||||
(map format-rofi-config values)
|
||||
"\n ")
|
||||
"\n}\n")))
|
||||
|
||||
(define (serialize-rofi-theme theme)
|
||||
(string-join (map format-rofi-theme theme) "\n"))
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
#:use-module ((gnu services configuration)
|
||||
#:select (serialize-package
|
||||
define-configuration))
|
||||
#:use-module ((gnu packages lisp)
|
||||
#:select (sbcl))
|
||||
#:use-module ((gnu packages wm)
|
||||
#:select (stumpwm
|
||||
stumpish))
|
||||
stumpish
|
||||
sbcl-stumpwm-swm-gaps))
|
||||
#:use-module ((gnu home services)
|
||||
#:select (service-type
|
||||
service-extension
|
||||
|
@ -25,13 +28,19 @@
|
|||
(package
|
||||
(package stumpwm)
|
||||
"Package to use for setting Stumpwm")
|
||||
(gaps-package
|
||||
(package sbcl-stumpwm-swm-gaps)
|
||||
"Package to use for setting Stumpwm Gaps")
|
||||
(stumpish-package
|
||||
(package stumpish)
|
||||
"Package to use for setting Stumpish"))
|
||||
|
||||
(define (add-stumpwm-packages config)
|
||||
(list (home-stumpwm-configuration-package config)
|
||||
(home-stumpwm-configuration-stumpish-package config)))
|
||||
(list sbcl
|
||||
(home-stumpwm-configuration-package config)
|
||||
(list stumpwm "lib")
|
||||
(home-stumpwm-configuration-stumpish-package config)
|
||||
(home-stumpwm-configuration-gaps-package config)))
|
||||
|
||||
(define (home-stumpwm-config-files config)
|
||||
`(("stumpwm/config" ,(local-file "stumpwm/config"))))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
(in-package :stumpwm-user)
|
||||
|
||||
(require 'swank)
|
||||
(require 'swm-gaps)
|
||||
|
||||
(set-prefix-key (kbd "s-x"))
|
||||
|
||||
|
@ -76,6 +77,70 @@ after it has been unlocked."
|
|||
"%d "))
|
||||
(mode-line)
|
||||
|
||||
;;; Redefine this function again because for some reason on my system
|
||||
;;; `(frame-width ...)' returns a ratio, not an integer, which is not accepted
|
||||
;;; by `xlib:drawable-width'.
|
||||
(defun stumpwm::maximize-window (win)
|
||||
"Redefined gaps aware maximize function."
|
||||
(multiple-value-bind (x y wx wy width height border stick)
|
||||
(stumpwm::geometry-hints win)
|
||||
|
||||
(let ((ox 0) (oy 0) (ow 0) (oh 0)
|
||||
(frame (stumpwm::window-frame win)))
|
||||
(if (swm-gaps::apply-gaps-p win)
|
||||
(multiple-value-setq (ox oy ow oh) (swm-gaps::gaps-offsets win)))
|
||||
|
||||
;; Only do width or height subtraction if result will be positive,
|
||||
;; otherwise stumpwm will crash. Also, only modify window dimensions
|
||||
;; if needed (i.e. window at least fills frame minus gap).
|
||||
(when (and (< ow width)
|
||||
(>= width (- (frame-width frame) ow)))
|
||||
(setf width (- width ow)))
|
||||
(when (and (< oh height)
|
||||
(>= height (- (frame-height frame) oh)))
|
||||
(setf height (- height oh)))
|
||||
|
||||
(setf x (+ x ox)
|
||||
y (+ y oy))
|
||||
|
||||
;; This is the only place a window's geometry should change
|
||||
(set-window-geometry win :x wx :y wy :width width :height height :border-width 0)
|
||||
(xlib:with-state ((window-parent win))
|
||||
;; FIXME: updating the border doesn't need to be run everytime
|
||||
;; the window is maximized, but only when the border style or
|
||||
;; window type changes. The overhead is probably minimal,
|
||||
;; though.
|
||||
(setf (xlib:drawable-x (window-parent win)) x
|
||||
(xlib:drawable-y (window-parent win)) y
|
||||
(xlib:drawable-border-width (window-parent win)) border)
|
||||
;; the parent window should stick to the size of the window
|
||||
;; unless it isn't being maximized to fill the frame.
|
||||
(if (or stick
|
||||
(find *window-border-style* '(:tight :none)))
|
||||
(setf (xlib:drawable-width (window-parent win)) (window-width win)
|
||||
(xlib:drawable-height (window-parent win)) (window-height win))
|
||||
(let ((frame (stumpwm::window-frame win)))
|
||||
(setf (xlib:drawable-width (window-parent win)) (- (round (frame-width frame))
|
||||
(* 2 (xlib:drawable-border-width (window-parent win)))
|
||||
ow)
|
||||
(xlib:drawable-height (window-parent win)) (- (stumpwm::frame-display-height (window-group win) frame)
|
||||
(* 2 (xlib:drawable-border-width (window-parent win)))
|
||||
oh))))
|
||||
;; update the "extents"
|
||||
(xlib:change-property (window-xwin win) :_NET_FRAME_EXTENTS
|
||||
(list wx
|
||||
(- (xlib:drawable-width (window-parent win)) width wx)
|
||||
wy
|
||||
(- (xlib:drawable-height (window-parent win)) height wy))
|
||||
:cardinal 32))
|
||||
(update-configuration win))))
|
||||
|
||||
(setf swm-gaps:*head-gaps-size* 0)
|
||||
(setf swm-gaps:*inner-gaps-size* 15)
|
||||
(setf swm-gaps:*outer-gaps-size* 15)
|
||||
|
||||
(swm-gaps:toggle-gaps-on)
|
||||
|
||||
(restore-from-file "default")
|
||||
|
||||
(define-frame-preference "Default"
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
(if (> (length buttons) 0)
|
||||
(list
|
||||
"--ignore-buttons"
|
||||
(string-join (map (lambda (i) (format #f "~s" i)) buttons) ","))
|
||||
(string-join (map (λ (i) (format #f "~s" i)) buttons) ","))
|
||||
'())))
|
||||
#:log-file (format #f "~a/.local/var/log/unclutter.log" (getenv "HOME"))))
|
||||
(stop #~(make-kill-destructor)))))
|
||||
|
|
|
@ -28,11 +28,11 @@
|
|||
|
||||
(define (serialize-keymap parent keymap)
|
||||
(string-join
|
||||
(let* ((prefixes (filter (lambda (pair) (list? (cdr pair))) keymap))
|
||||
(others (filter (lambda (pair) (not (list? (cdr pair)))) keymap))
|
||||
(names (map (lambda (_) (gensym)) prefixes)))
|
||||
(let* ((prefixes (filter (λ (pair) (list? (cdr pair))) keymap))
|
||||
(others (filter (λ (pair) (not (list? (cdr pair)))) keymap))
|
||||
(names (map (λ (_) (gensym)) prefixes)))
|
||||
(append
|
||||
(map (lambda (key-pair sym)
|
||||
(map (λ (key-pair sym)
|
||||
(format #f " (define (~s)\n (ungrab-all-keys)\n (remove-all-keys)\n ~a\n (xbindkey-function '(control g) (reset-higher-level-binding ~a))\n (xbindkey-function '(Return) (reset-higher-level-binding ~a))\n (xbindkey-function '(Escape) (reset-higher-level-binding ~a))\n (grab-all-keys))\n"
|
||||
sym
|
||||
(serialize-keymap sym (cdr key-pair))
|
||||
|
@ -40,7 +40,7 @@
|
|||
parent
|
||||
parent))
|
||||
prefixes names)
|
||||
(map (lambda (key-pair)
|
||||
(map (λ (key-pair)
|
||||
(let ((key (car key-pair)))
|
||||
(format #f " (xbindkey ~s ~s)\n (xbindkey-function '(release ~s) (reset-higher-level-binding ~a))\n"
|
||||
(if (string? key) key `(quote ,key))
|
||||
|
@ -54,27 +54,27 @@
|
|||
(apply mixed-text-file
|
||||
"xbindkeysrc.scm"
|
||||
"(define (reset-higher-level-binding level) (lambda () (ungrab-all-keys) (remove-all-keys) (level) (grab-all-keys)))\n"
|
||||
(let* ((prefixes (filter (lambda (pair) (list? (cdr pair)))
|
||||
(let* ((prefixes (filter (λ (pair) (list? (cdr pair)))
|
||||
(home-xbindkeys-configuration-keybindings config)))
|
||||
(others (filter (lambda (pair) (not (list? (cdr pair))))
|
||||
(others (filter (λ (pair) (not (list? (cdr pair))))
|
||||
(home-xbindkeys-configuration-keybindings config)))
|
||||
(names (map (lambda (_) (gensym)) prefixes)))
|
||||
(names (map (λ (_) (gensym)) prefixes)))
|
||||
(append
|
||||
(map (lambda (key-pair sym)
|
||||
(map (λ (key-pair sym)
|
||||
(format #f " (define (~s)\n (ungrab-all-keys)\n (remove-all-keys)\n ~a\n (xbindkey-function '(control g) (reset-higher-level-binding ~a))\n (xbindkey-function '(Return) (reset-higher-level-binding ~a))\n (xbindkey-function '(Escape) (reset-higher-level-binding ~a))\n (grab-all-keys))\n"
|
||||
sym
|
||||
(serialize-keymap "first-binding" (cdr key-pair))
|
||||
'first-binding
|
||||
'first-binding
|
||||
'first-binding))
|
||||
sym
|
||||
(serialize-keymap "first-binding" (cdr key-pair))
|
||||
'first-binding
|
||||
'first-binding
|
||||
'first-binding))
|
||||
prefixes names)
|
||||
(list "(define (first-binding)\n"
|
||||
" \"Top-level bindings\"\n")
|
||||
(map (lambda (key-pair sym)
|
||||
(map (λ (key-pair sym)
|
||||
(let ((key (car key-pair)))
|
||||
(format #f "(xbindkey-function ~s ~s)\n" (if (string? key) key `(quote ,key)) sym)))
|
||||
prefixes names)
|
||||
(map (lambda (key-pair)
|
||||
(map (λ (key-pair)
|
||||
(format #f " (xbindkey (quote ~s) ~s) \n" (car key-pair) (cdr key-pair)))
|
||||
others)
|
||||
(list " )\n"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
(define (kbd str)
|
||||
(let ((parts (string-split str #\-)))
|
||||
(string-join
|
||||
(fold-right (lambda (key previous)
|
||||
(fold-right (λ (key previous)
|
||||
(if (null? previous)
|
||||
(list (convert-key key))
|
||||
(cons (convert-modifier key) previous)))
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#:use-module (oni packages go))
|
||||
|
||||
(define-public emacs-oni-config
|
||||
(let ((commit "4ab9d3c4b3c7ff057b68cc45e39730a406a37612")
|
||||
(let ((commit "dddc309e9e775069ae09de320668bb3ec8667745")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-oni-config")
|
||||
|
@ -24,7 +24,7 @@
|
|||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ipzspx4kkry8gi534yd62qq8506s9phvymw4m719mm4l2wi3mq6"))))
|
||||
(base32 "0cr05brmjp4fjxmj420613ja6gd8m9jkh32f2vl825d0kn5d0yr6"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://code.ryuslash.org/ryuslash/emacs-config")
|
||||
(synopsis "My Emacs configuration")
|
||||
|
@ -290,8 +290,7 @@ Emacs")))
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-bats
|
||||
(lambda _
|
||||
(chdir "oni-bats"))))
|
||||
(λ _ (chdir "oni-bats"))))
|
||||
#:include '("\\.el$" "^snippets\\/bats-mode\\/")))
|
||||
(propagated-inputs
|
||||
`(("emacs-bats" ,emacs-bats)
|
||||
|
@ -309,8 +308,7 @@ Emacs")))
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-org
|
||||
(lambda _
|
||||
(chdir "oni-org"))))
|
||||
(λ _ (chdir "oni-org"))))
|
||||
#:include '("\\.el$"
|
||||
"^snippets\\/org-mode\\/"
|
||||
"^capture-templates\\/"
|
||||
|
@ -458,7 +456,7 @@ Emacs")))
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-conf
|
||||
(lambda _ (chdir "oni-conf"))))
|
||||
(λ _ (chdir "oni-conf"))))
|
||||
#:include '("\\.el$"
|
||||
"^snippets\\/conf-mode\\/")))
|
||||
(propagated-inputs
|
||||
|
@ -498,7 +496,7 @@ Emacs")))
|
|||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-csharp
|
||||
(lambda _ (chdir "oni-csharp"))))
|
||||
(λ _ (chdir "oni-csharp"))))
|
||||
#:include '("\\.el$" "^snippets\\/")))
|
||||
(propagated-inputs
|
||||
`(("emacs-csharp-mode" ,emacs-csharp-mode)
|
||||
|
@ -519,7 +517,7 @@ Emacs")))
|
|||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-css
|
||||
(lambda _ (chdir "oni-css"))))
|
||||
(λ _ (chdir "oni-css"))))
|
||||
#:include '("\\.el$" "^snippets\\/")))
|
||||
(propagated-inputs
|
||||
`(("emacs-oni-company" ,emacs-oni-company)
|
||||
|
@ -548,7 +546,7 @@ Emacs")))
|
|||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir-oni-elisp
|
||||
(lambda _ (chdir "oni-elisp"))))
|
||||
(λ _ (chdir "oni-elisp"))))
|
||||
#:include '("\\.el$" "^snippets\\/")))
|
||||
(propagated-inputs
|
||||
`(("emacs-oni-company" ,emacs-oni-company)
|
||||
|
|
|
@ -25,6 +25,7 @@ api.map('r', 'D');
|
|||
api.map('c0', 'yy');
|
||||
api.map('<Alt-p>', 'E');
|
||||
api.map('<Alt-n>', 'R');
|
||||
api.map('<Ctrl-u>f', 'af');
|
||||
|
||||
api.unmap('h');
|
||||
api.unmap('j');
|
||||
|
@ -34,6 +35,7 @@ api.unmap('D');
|
|||
api.unmap('yy');
|
||||
api.unmap('E');
|
||||
api.unmap('R');
|
||||
api.unmap('af');
|
||||
|
||||
api.map('<Ctrl-v>', 'P');
|
||||
api.map('<Alt-v>', 'U');
|
||||
|
|
Loading…
Reference in a new issue