Andrew Tropin schreef op zo 09-01-2022 om 12:12 [+0300]: > [...] There is another less generalized example, which demonstrates > how > serialization of sway configuration works right now. > > --8<---------------cut here---------------start------------->8--- > `((include ,(local-file "./sway/config")) >   (bindsym $mod+Ctrl+Shift+a exec >            ,(file-append emacs "/bin/emacsclient") -c --eval > "'(eshell)'") >   (bindsym $mod+Ctrl+Shift+o "[class=\"IceCat\"]" kill) >   (input * ((xkb_layout us,ru) >             (xkb_variant dvorak,)))) > --8<---------------cut here---------------end--------------->8--- > > would yield something like: > > --8<---------------cut here---------------start------------->8--- > include /gnu/store/408jwvh6wxxn1j85lj95fniih05gx5xj-config > bindsym $mod+Ctrl+Shift+a exec /gnu/store/...-emacsclient -c --eval > '(eshell)' > bindsym $mod+Ctrl+Shift+o [class="IceCat"] kill > input * { >     xkb_layout us,ru >     xkb_variant dvorak, > } > --8<---------------cut here---------------end--------------->8--- > > The new text-config serialization implementation (after fee0bc > commit) > doesn't support gexps and tries to insert the literal content of the > file in place where file-like object was used, which > > 1. Confuses the users. [...] > 2. Looks strange implementation-wise. [...] > (mixed-text-file ... > "source \" "\n" > #~(read-everything-from-file > #$(computed-file "unecessary-file-name" > #~#$(local-file "blabla.sh")))) > when originally it was > (mixed-text-file > "source \" "\n" > (local-file "blabla.sh")) Can we have (mixed-text-file "source \" "\n" (local-file "blabla.sh")) and the sway configuration you quoted? That syntax seems reasonable and easy to use to me. But without reintroducing slurp-file-gexp. Greetings, Maxime.