* A question about im-config @ 2017-01-22 0:57 tumashu 2017-01-22 1:15 ` Danny Milosavljevic 0 siblings, 1 reply; 8+ messages in thread From: tumashu @ 2017-01-22 0:57 UTC (permalink / raw) To: guix [-- Attachment #1: Type: text/plain, Size: 2347 bytes --] Im-config (https://anonscm.debian.org/cgit/collab-maint/im-config.git) is a shell script which used to manager input method by debian, I want to package it to guixsd, but many problem I faced: 1. How to deal with "/usr/bin/XXX" in schell script, for example: /usr/bin/fcitx, /usr/bin/ibux .... 2. How to deal with " /usr/lib/*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin. " ---------------------------------------------------------------- # start fcitx # vim: set sts=4 expandtab: if [ "$IM_CONFIG_PHASE" = 2 ]; then # start fcitx daemon /usr/bin/fcitx & fi if [ "$IM_CONFIG_PHASE" = 1 ]; then # set variables for the plain XIM XMODIFIERS=@im=fcitx GTK_IM_MODULE=xim # use immodule only when available for both GTK 2.0 and 3.0 IM_CONFIG_MARKER2=0 for IM_CONFIG_MARKER in /usr/lib/*/gtk-2.0/*/immodules/im-fcitx.so \ /usr/lib/gtk-2.0/*/immodules/im-fcitx.so ; do if [ -e $IM_CONFIG_MARKER ]; then IM_CONFIG_MARKER2=1 break fi done IM_CONFIG_MARKER3=0 for IM_CONFIG_MARKER in /usr/lib/*/gtk-3.0/*/immodules/im-fcitx.so \ /usr/lib/gtk-3.0/*/immodules/im-fcitx.so ; do if [ -e $IM_CONFIG_MARKER ]; then IM_CONFIG_MARKER3=1 break fi done if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then GTK_IM_MODULE=fcitx fi QT4_IM_MODULE=xim # use immodule when available for Qt4 for IM_CONFIG_MARKER in /usr/lib/*/qt4/plugins/inputmethods/qtim-fcitx.so \ /usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so ; do if [ -e $IM_CONFIG_MARKER ]; then QT4_IM_MODULE=fcitx break fi done QT_IM_MODULE=xim # use immodule when available for Qt5 for IM_CONFIG_MARKER in /usr/lib/*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ; do if [ -e $IM_CONFIG_MARKER ]; then QT_IM_MODULE=fcitx break fi done # This is placeholder at this moment. CLUTTER_IM_MODULE=xim # use immodule when available for clutter for IM_CONFIG_MARKER in /usr/lib/*/clutter-imcontext/immodules/im-fcitx.so \ /usr/lib/clutter-imcontext/immodules/im-fcitx.so; do if [ -e $IM_CONFIG_MARKER ]; then CLUTTER_IM_MODULE=fcitx break fi done fi ------------------------------------------------------------------ [-- Attachment #2: Type: text/html, Size: 2587 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: A question about im-config 2017-01-22 0:57 A question about im-config tumashu @ 2017-01-22 1:15 ` Danny Milosavljevic 2017-01-22 2:39 ` tumashu 0 siblings, 1 reply; 8+ messages in thread From: Danny Milosavljevic @ 2017-01-22 1:15 UTC (permalink / raw) To: tumashu; +Cc: guix Hi tumashu, On Sun, 22 Jan 2017 08:57:49 +0800 (CST) tumashu <tumashu@163.com> wrote: > Im-config (https://anonscm.debian.org/cgit/collab-maint/im-config.git) is a shell script which > used to manager input method by debian, I want to package it to guixsd, but many problem I faced: > > 1. How to deal with "/usr/bin/XXX" in schell script, for example: /usr/bin/fcitx, /usr/bin/ibux .... > 2. How to deal with " > /usr/lib/*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin. > " Please substitute paths by store paths. The intention is to make sure that im-config always keeps doing the same thing every time it is invoked. To do that you can add a phase by: (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "im-config" (("/usr/bin/fcitx") (string-append (assoc-ref inputs "fcitx") "/bin/fcitx")) ... )))))) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re:Re: A question about im-config 2017-01-22 1:15 ` Danny Milosavljevic @ 2017-01-22 2:39 ` tumashu 2017-01-22 8:06 ` Integrating different input methods into Guix Danny Milosavljevic 0 siblings, 1 reply; 8+ messages in thread From: tumashu @ 2017-01-22 2:39 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix [-- Attachment #1: Type: text/plain, Size: 1344 bytes --] The other problem is: im-config include many im's config files and I cannot let im-config depend all the im, if fcitx is not installed, How to deal with "/usr/bin/fcitx" in fcitx config file which is included in im-config? just replace it with "fcitx"? At 2017-01-22 09:15:26, "Danny Milosavljevic" <dannym@scratchpost.org> wrote: >Hi tumashu, > >On Sun, 22 Jan 2017 08:57:49 +0800 (CST) >tumashu <tumashu@163.com> wrote: > >> Im-config (https://anonscm.debian.org/cgit/collab-maint/im-config.git) is a shell script which >> used to manager input method by debian, I want to package it to guixsd, but many problem I faced: >> >> 1. How to deal with "/usr/bin/XXX" in schell script, for example: /usr/bin/fcitx, /usr/bin/ibux .... >> 2. How to deal with " >> /usr/lib/*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin. >> " > >Please substitute paths by store paths. The intention is to make sure that im-config always keeps doing the same thing every time it is invoked. > >To do that you can add a phase by: > >(arguments > `(#:phases > (modify-phases %standard-phases > (add-after 'unpack 'patch-paths > (lambda* (#:key inputs outputs #:allow-other-keys) > (substitute* "im-config" > (("/usr/bin/fcitx") (string-append (assoc-ref inputs "fcitx") "/bin/fcitx")) >... >)))))) > [-- Attachment #2: Type: text/html, Size: 1682 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Integrating different input methods into Guix 2017-01-22 2:39 ` tumashu @ 2017-01-22 8:06 ` Danny Milosavljevic 2017-01-22 23:57 ` tumashu 2017-01-26 8:02 ` Chris Marusich 0 siblings, 2 replies; 8+ messages in thread From: Danny Milosavljevic @ 2017-01-22 8:06 UTC (permalink / raw) To: tumashu; +Cc: guix Hi, On Sun, 22 Jan 2017 10:39:15 +0800 (CST) tumashu <tumashu@163.com> wrote: > The other problem is: > > im-config include many im's config files and I cannot let im-config depend all the im, > if fcitx is not installed, How to deal with "/usr/bin/fcitx" in fcitx config file which is included in im-config? > just replace it with "fcitx"? You mean the configs for all the input methods ("cjkv.conf", "ibus.conf", "fcitx.conf", "uim.conf", "hime.conf", "gcin.conf", "maliit.conf", "scim.conf", "hangul.conf", "thai.conf", "xim.conf", "kinput2.conf", "xsunpinyin.conf") in "data" ? I think then one would maybe write a "input-method-root-service" Guix service and other im services and let each im service extend that service. That way the user can have the different input methods as services in their Guix system config file. See gnu/services/cups.scm "union-directory" for how you merge multiple extension's directory trees into one. See operating-system-environment-variables for the environment variables that are already exported to every process. See the Guix manual "Service Composition" for how to compose services. We already have packages for ibus, fcitx - but no service for ibus, fcitx. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re:Integrating different input methods into Guix 2017-01-22 8:06 ` Integrating different input methods into Guix Danny Milosavljevic @ 2017-01-22 23:57 ` tumashu 2017-01-23 0:32 ` Integrating " Danny Milosavljevic 2017-01-26 8:02 ` Chris Marusich 1 sibling, 1 reply; 8+ messages in thread From: tumashu @ 2017-01-22 23:57 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix [-- Attachment #1: Type: text/plain, Size: 1415 bytes --] Thanks for the information, but coding a im service is beyond my ability at the moment :-) At 2017-01-22 16:06:05, "Danny Milosavljevic" <dannym@scratchpost.org> wrote: >Hi, > >On Sun, 22 Jan 2017 10:39:15 +0800 (CST) >tumashu <tumashu@163.com> wrote: > >> The other problem is: >> >> im-config include many im's config files and I cannot let im-config depend all the im, >> if fcitx is not installed, How to deal with "/usr/bin/fcitx" in fcitx config file which is included in im-config? >> just replace it with "fcitx"? > >You mean the configs for all the input methods ("cjkv.conf", "ibus.conf", "fcitx.conf", "uim.conf", "hime.conf", "gcin.conf", "maliit.conf", "scim.conf", "hangul.conf", "thai.conf", "xim.conf", "kinput2.conf", "xsunpinyin.conf") in "data" ? > >I think then one would maybe write a "input-method-root-service" Guix service and other im services and let each im service extend that service. > >That way the user can have the different input methods as services in their Guix system config file. > >See gnu/services/cups.scm "union-directory" for how you merge multiple extension's directory trees into one. > >See operating-system-environment-variables for the environment variables that are already exported to every process. > >See the Guix manual "Service Composition" for how to compose services. > >We already have packages for ibus, fcitx - but no service for ibus, fcitx. [-- Attachment #2: Type: text/html, Size: 1705 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Integrating different input methods into Guix 2017-01-22 23:57 ` tumashu @ 2017-01-23 0:32 ` Danny Milosavljevic 2017-01-23 6:38 ` tumashu 0 siblings, 1 reply; 8+ messages in thread From: Danny Milosavljevic @ 2017-01-23 0:32 UTC (permalink / raw) To: tumashu; +Cc: guix Hi, I understand. For now, let's see what the others say about the proposed design. If you want to just set the environment variables in your user session, you can just edit ~/.bash_profile and invoke im-config there (maybe unchanged - although it bothers me that it then would invoke random versions of the input methods - which can change depending on what's installed right now). But it would be nicer if the login screens used the input methods, too. That would be possible by either writing a service, or, as a quick fix, by adding the environment variables to gnu/services/xorg.scm : (fork+exec-command (list (string-append #$slim "/bin/slim") "-nodaemon") #:environment-variables (list (string-append "SLIM_CFGFILE=" #$slim.cfg) "IM_CONFIG_xyz=FIXME" #$@(if theme (list #~(string-append "SLIM_THEMESDIR=" #$theme)) #~()))))) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re:Re: Integrating different input methods into Guix 2017-01-23 0:32 ` Integrating " Danny Milosavljevic @ 2017-01-23 6:38 ` tumashu 0 siblings, 0 replies; 8+ messages in thread From: tumashu @ 2017-01-23 6:38 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix [-- Attachment #1: Type: text/plain, Size: 1131 bytes --] Service seem to be a good idea... At 2017-01-23 08:32:11, "Danny Milosavljevic" <dannym@scratchpost.org> wrote: >Hi, > >I understand. For now, let's see what the others say about the proposed design. > >If you want to just set the environment variables in your user session, you can just edit ~/.bash_profile and invoke im-config there (maybe unchanged - although it bothers me that it then would invoke random versions of the input methods - which can change depending on what's installed right now). > >But it would be nicer if the login screens used the input methods, too. That would be possible by either writing a service, or, as a quick fix, by adding the environment variables to gnu/services/xorg.scm : > > (fork+exec-command > (list (string-append #$slim "/bin/slim") "-nodaemon") > #:environment-variables > (list (string-append "SLIM_CFGFILE=" #$slim.cfg) > "IM_CONFIG_xyz=FIXME" > #$@(if theme > (list #~(string-append "SLIM_THEMESDIR=" #$theme)) > #~()))))) > [-- Attachment #2: Type: text/html, Size: 1379 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Integrating different input methods into Guix 2017-01-22 8:06 ` Integrating different input methods into Guix Danny Milosavljevic 2017-01-22 23:57 ` tumashu @ 2017-01-26 8:02 ` Chris Marusich 1 sibling, 0 replies; 8+ messages in thread From: Chris Marusich @ 2017-01-26 8:02 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix, tumashu [-- Attachment #1: Type: text/plain, Size: 1735 bytes --] Danny Milosavljevic <dannym@scratchpost.org> writes: > Hi, > > On Sun, 22 Jan 2017 10:39:15 +0800 (CST) > tumashu <tumashu@163.com> wrote: > >> The other problem is: >> >> im-config include many im's config files and I cannot let im-config depend all the im, >> if fcitx is not installed, How to deal with "/usr/bin/fcitx" in fcitx config file which is included in im-config? >> just replace it with "fcitx"? > > You mean the configs for all the input methods ("cjkv.conf", > "ibus.conf", "fcitx.conf", "uim.conf", "hime.conf", "gcin.conf", > "maliit.conf", "scim.conf", "hangul.conf", "thai.conf", "xim.conf", > "kinput2.conf", "xsunpinyin.conf") in "data" ? > > I think then one would maybe write a "input-method-root-service" Guix service and other im services and let each im service extend that service. > > That way the user can have the different input methods as services in their Guix system config file. > > See gnu/services/cups.scm "union-directory" for how you merge multiple extension's directory trees into one. > > See operating-system-environment-variables for the environment variables that are already exported to every process. > > See the Guix manual "Service Composition" for how to compose services. > > We already have packages for ibus, fcitx - but no service for ibus, fcitx. Anyone who works on this should search the guix-devel archives for discussions related to ibus. I don't know how it works with fctix, but with ibus it's kind of messy. A service might work, but there's some state that needs to be managed (e.g., immodules cache files for GTK2 and GTK3) in order for the input method to function properly. Unfortunately, it's rather complex. -- Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-01-26 8:02 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-22 0:57 A question about im-config tumashu 2017-01-22 1:15 ` Danny Milosavljevic 2017-01-22 2:39 ` tumashu 2017-01-22 8:06 ` Integrating different input methods into Guix Danny Milosavljevic 2017-01-22 23:57 ` tumashu 2017-01-23 0:32 ` Integrating " Danny Milosavljevic 2017-01-23 6:38 ` tumashu 2017-01-26 8:02 ` Chris Marusich
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.