mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2026-03-12 21:04:22 +00:00
rosenthal: Remove %rosenthal-set-keymap.
It'll be moved to the testament repository. * modules/rosenthal/services/desktop.scm (%rosenthal-set-keymap-script) (%rosenthal-set-keymap): Delete variables.
This commit is contained in:
parent
fdada954a6
commit
2fa2efe8ae
@ -74,7 +74,6 @@
|
|||||||
home-waybar-configuration
|
home-waybar-configuration
|
||||||
home-waybar-service-type
|
home-waybar-service-type
|
||||||
|
|
||||||
%rosenthal-set-keymap
|
|
||||||
%rosenthal-skeletons
|
%rosenthal-skeletons
|
||||||
%rosenthal-desktop-services/gdm
|
%rosenthal-desktop-services/gdm
|
||||||
%rosenthal-desktop-services/tuigreet
|
%rosenthal-desktop-services/tuigreet
|
||||||
@ -551,116 +550,6 @@ gtk-key-theme-name = ~a~%"
|
|||||||
;;; Configuration file presets.
|
;;; Configuration file presets.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define %rosenthal-set-keymap-script
|
|
||||||
(program-file "set-keymap"
|
|
||||||
(with-imported-modules (source-module-closure '((guix build utils)))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (srfi srfi-1)
|
|
||||||
(srfi srfi-26)
|
|
||||||
(srfi srfi-37)
|
|
||||||
(ice-9 match)
|
|
||||||
(ice-9 popen)
|
|
||||||
(guix build utils))
|
|
||||||
|
|
||||||
(define* (build-keyboard-layout file layout #:optional variant #:key model options)
|
|
||||||
(define pipe
|
|
||||||
(apply open-pipe* OPEN_READ
|
|
||||||
#$(file-append console-setup "/bin/ckbcomp")
|
|
||||||
(string-append "-I" #$xkeyboard-config "/share/X11/xkb")
|
|
||||||
"-rules" "base"
|
|
||||||
`(,@(if model
|
|
||||||
'("-model" ,model)
|
|
||||||
'())
|
|
||||||
,layout
|
|
||||||
,(or variant "")
|
|
||||||
,(string-join options ","))))
|
|
||||||
(mkdir-p (dirname file))
|
|
||||||
(call-with-output-file file
|
|
||||||
(lambda (output)
|
|
||||||
(dump-port pipe output))))
|
|
||||||
|
|
||||||
(define* (set-keyboard-layout layout #:optional variant #:key model options)
|
|
||||||
(define file-name
|
|
||||||
(port-filename
|
|
||||||
(mkstemp "/tmp/console-keymap.XXXXXX")))
|
|
||||||
(build-keyboard-layout file-name layout variant #:model model #:options options)
|
|
||||||
(invoke "sudo" #$(file-append kbd "/bin/loadkeys") file-name)
|
|
||||||
(false-if-exception
|
|
||||||
(substitute*
|
|
||||||
(in-vicinity
|
|
||||||
(if (zero? (getuid))
|
|
||||||
"/home/live/.config"
|
|
||||||
(getenv "XDG_CONFIG_HOME"))
|
|
||||||
"niri/config.kdl")
|
|
||||||
(("^ (layout|variant|model|options) .*") "")
|
|
||||||
(("^ xkb \\{.*" line)
|
|
||||||
(string-append
|
|
||||||
line
|
|
||||||
(format #f " layout ~s~%" layout)
|
|
||||||
(if variant (format #f " variant ~s~%" variant) "")
|
|
||||||
(if model (format #f " model ~s~%" model) "")
|
|
||||||
(format #f " options ~s~%" (string-join options ",")))))))
|
|
||||||
|
|
||||||
(define (show-help-and-exit)
|
|
||||||
(display "\
|
|
||||||
Usage: set-keymap LAYOUT [VARIANT] [-m MODEL] [-o OPTIONS]
|
|
||||||
|
|
||||||
OPTIONS are comma-separated e.g. \"ctrl:nocaps,grp:alt_shift_toggle\"
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
set-keymap us
|
|
||||||
set-keymap us dvorak
|
|
||||||
set-keymap us dvorak -o ctrl:nocaps\n")
|
|
||||||
(quit))
|
|
||||||
|
|
||||||
(define (parse-options)
|
|
||||||
(args-fold (cdr (program-arguments))
|
|
||||||
(list (option '(#\m "model") #t #f
|
|
||||||
(lambda (opt name arg result)
|
|
||||||
(alist-cons 'model arg result)))
|
|
||||||
(option '(#\o "options") #t #f
|
|
||||||
(lambda (opt name arg result)
|
|
||||||
(alist-cons 'options (string-split arg #\,)
|
|
||||||
result)))
|
|
||||||
(option '("help") #f #f
|
|
||||||
(lambda _
|
|
||||||
(show-help-and-exit))))
|
|
||||||
(lambda (opt name arg loads)
|
|
||||||
(error "Unrecognized option `~A'" name))
|
|
||||||
(lambda (opt loads) (cons opt loads))
|
|
||||||
'()))
|
|
||||||
|
|
||||||
(let* ((opts (parse-options))
|
|
||||||
(model (assoc-ref opts 'model))
|
|
||||||
(options (or (assoc-ref opts 'options) '()))
|
|
||||||
(args (remove pair? (reverse opts))))
|
|
||||||
(match args
|
|
||||||
((layout)
|
|
||||||
(set-keyboard-layout layout #:model model #:options options))
|
|
||||||
((layout variant)
|
|
||||||
(set-keyboard-layout layout variant #:model model #:options options))
|
|
||||||
(_
|
|
||||||
(show-help-and-exit))))))))
|
|
||||||
|
|
||||||
(define %rosenthal-set-keymap
|
|
||||||
(hidden-package
|
|
||||||
(package
|
|
||||||
(name "rosenthal-set-keymap")
|
|
||||||
(version "0.0.0")
|
|
||||||
(source %rosenthal-set-keymap-script)
|
|
||||||
(build-system copy-build-system)
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(replace 'install
|
|
||||||
(lambda _
|
|
||||||
(install-file "set-keymap" (in-vicinity #$output "bin")))))))
|
|
||||||
(home-page "")
|
|
||||||
(synopsis "")
|
|
||||||
(description "")
|
|
||||||
(license #f))))
|
|
||||||
|
|
||||||
(define %rosenthal-skeletons
|
(define %rosenthal-skeletons
|
||||||
`((".config/emacs/init.el"
|
`((".config/emacs/init.el"
|
||||||
,(local-file "../examples/emacs/init.el"))
|
,(local-file "../examples/emacs/init.el"))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user