SCIM 无法自动启动
-
- 帖子: 58
- 注册时间: 2006-07-23 17:06
SCIM 无法自动启动
SCIM 无法自动启动
July 28th, 2006 | Category: Technic
Scim如果无法自动启动可以在终端那里输入
scim -d 然后再CTRL+空格
如果觉得麻烦就通过修改etc/gdm/Xsession文件来实现自动启动
修改/etc/gdm/Xsession文件
找到
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
把以下的修改成
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n “$SESSIONFILES” ]; then
export XMODIFIERS=”@im=SCIM”
export GTK_IM_MODULE=”scim”
scim -d
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
重新启动X看看能不能启动SCIM
July 28th, 2006 | Category: Technic
Scim如果无法自动启动可以在终端那里输入
scim -d 然后再CTRL+空格
如果觉得麻烦就通过修改etc/gdm/Xsession文件来实现自动启动
修改/etc/gdm/Xsession文件
找到
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
把以下的修改成
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n “$SESSIONFILES” ]; then
export XMODIFIERS=”@im=SCIM”
export GTK_IM_MODULE=”scim”
scim -d
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
重新启动X看看能不能启动SCIM
-
- 帖子: 58
- 注册时间: 2006-07-23 17:06
- huangjiahua
- 帖子: 3294
- 注册时间: 2005-03-30 0:27
- 联系:
-
- 帖子: 58
- 注册时间: 2006-07-23 17:06
- huangjiahua
- 帖子: 3294
- 注册时间: 2005-03-30 0:27
- 联系:
楼上先把 Xsession 改回去吧
hua@vgh:eva$ cat /etc/gdm/Xsession
hua@vgh:eva$ cat /etc/gdm/Xsession
代码: 全选
#!/bin/sh
#
# This is SORT OF LIKE an X session, but not quite. You get a command as the
# first argument (it could be multiple words, so run it with "eval"). As a
# special case, the command can be:
# failsafe - Run an xterm only
# default - Run the appropriate Xclients startup (see the code below)
# custom - Run ~/.xsession and if that's not available run 'default'
#
# (Note that other arguments could also follow, but only the command one is
# right now relevant and supported)
#
# The output is ALREADY redirected to .xsession-errors in GDM. This way
# .xsession-errors actually gets more output such as if the PreSession script
# is failing. This also prevents DoS attacks if some app in the users session
# can be prodded to dump lots of stuff on the stdout/stderr. We wish to be
# robust don't we? In case you wish to use an existing script for other DM's,
# you can just not redirect when GDMSESSION is set. GDMSESSION will always
# be set from gdm.
#
# Also note that this is not run as a login shell, this is just executed.
#
# based on:
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
PROGNAME=Xsession
message () {
# pretty-print messages of arbitrary length; use xmessage if it
# is available and $DISPLAY is set
MESSAGE="$PROGNAME: $*"
echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2
if [ -n "$DISPLAY" ]; then
if [ -n "$zenity" ]; then
"$zenity" --info --text "`gettextfunc "$MESSAGE"`"
elif [ -n "$xmessage" ]; then
echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file -
fi
fi
}
message_nonl () {
# pretty-print messages of arbitrary length (no trailing newline); use
# xmessage if it is available and $DISPLAY is set
MESSAGE="$PROGNAME: $*"
echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2;
if [ -n "$DISPLAY" ]; then
if [ -n "$zenity" ]; then
"$zenity" --info --text "`gettextfunc "$MESSAGE"`"
elif [ -n "$xmessage" ]; then
echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file -
fi
fi
}
errormsg () {
# exit script with error
message "$*"
exit 1
}
internal_errormsg () {
# exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
# One big call to message() for the sake of xmessage; if we had two then
# the user would have dismissed the error we want reported before seeing the
# request to report it.
errormsg "$*" \
"Please report the installed version of the \"xfree86-common\"" \
"package and the complete text of this error message to" \
"<debian-x@lists.debian.org>."
}
run_parts () {
# until run-parts --noexec is implemented
if [ -z "$1" ]; then
internal_errormsg "run_parts() called without an argument."
fi
if [ ! -d "$1" ]; then
internal_errormsg "run_parts() called, but \"$1\" does not exist or is" \
"not a directory."
fi
for F in $(ls $1); do
if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
if [ -f "$1/$F" ]; then
echo "$1/$F"
fi
fi
done
}
# initialize variables for use by all session scripts
OPTIONFILE=/etc/X11/Xsession.options
SYSRESOURCES=/etc/X11/Xresources
USRRESOURCES=$HOME/.Xresources
SYSSESSIONDIR=/etc/X11/Xsession.d
USERXSESSION=$HOME/.xsession
ALTUSERXSESSION=$HOME/.Xsession
# this will go into the .xsession-errors along with all other echo's
# good for debugging where things went wrong
echo "$0: Beginning session setup..."
# First read /etc/profile and .profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.profile" && . "$HOME/.profile"
# Second read /etc/xprofile and .xprofile for X specific setup
test -f /etc/xprofile && . /etc/xprofile
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
# Translation stuff
if [ -x "/usr/lib/gdm/gdmtranslate" ] ; then
gdmtranslate="/usr/lib/gdm/gdmtranslate"
else
gdmtranslate=
fi
# Note that this should only go to zenity dialogs which always expect utf8
gettextfunc () {
if [ "x$gdmtranslate" != "x" ] ; then
"$gdmtranslate" --utf8 "$1"
else
echo "$1"
fi
}
zenity=`which zenity 2>/dev/null`
xmessage=`which xmessage 2>/dev/null`
command="$1"
if [ -z "$command" ] ; then
command=failsafe
fi
if [ x"$command" = xfailsafe ] ; then
if [ -n "$zenity" ] ; then
"$zenity" --info --text "`gettextfunc "This is the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`"
else
echo "$0: Starting the failsafe xterm session."
fi
exec xterm -geometry 80x24+0+0
fi
# clean up after xbanner
freetemp=`which freetemp 2>/dev/null`
if [ -n "$freetemp" ] ; then
"$freetemp"
fi
usermodmap="$HOME/.Xmodmap"
userxkbmap="$HOME/.Xkbmap"
if [ -f "$userxkbmap" ]; then
setxkbmap `cat "$userxkbmap"`
XKB_IN_USE=yes
fi
# xkb and xmodmap don't play nice together
if [ -z "$XKB_IN_USE" ]; then
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
fi
unset XKB_IN_USE
# Normalize languages, some places/distros screw us up in /etc/profile,
# so in case the user did select a language
if [ -n "$GDM_LANG" ]; then
LANG="$GDM_LANG"
export LANG
if [ -n "$LC_ALL" ]; then
if [ "$LC_ALL" != "$LANG" ]; then
LC_ALL="$LANG"
fi
else
unset LC_ALL
fi
if [ -n "$LANGUAGE" ]; then
if [ "$LANGUAGE" != "$LANG" ]; then
LANGUAGE="$LANG"
fi
else
unset LANGUAGE
fi
if [ -n "$LINGUAS" ]; then
if [ "$LINGUAS" != "$LANG" ]; then
LINGUAS="$LANG"
fi
else
unset LINGUAS
fi
fi
# The default Debian session runs xsession first, so we just do that for
# "custom"
if [ "x$command" = "xcustom" ] ; then
shift
set default $*
fi
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
echo "$0: Executing $command failed, will try to run x-terminal-emulator"
if [ -n "$zenity" ] ; then
"$zenity" --info --text "`gettextfunc "I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`"
fi
exec x-terminal-emulator -geometry 80x24+0+0
跃过无数的时间断层,只为了在
-
- 帖子: 22
- 注册时间: 2006-08-24 9:05
不知所雲,到底要改哪裡才能讓SCIM自動啟動?不要寫這麼複雜.直接說要改哪個文件的哪個地方就行了,難道說得清楚明白一點很困難嗎?
huangjiahua 写了:楼上先把 Xsession 改回去吧
hua@vgh:eva$ cat /etc/gdm/Xsession代码: 全选
#!/bin/sh # # This is SORT OF LIKE an X session, but not quite. You get a command as the # first argument (it could be multiple words, so run it with "eval"). As a # special case, the command can be: # failsafe - Run an xterm only # default - Run the appropriate Xclients startup (see the code below) # custom - Run ~/.xsession and if that's not available run 'default' # # (Note that other arguments could also follow, but only the command one is # right now relevant and supported) # # The output is ALREADY redirected to .xsession-errors in GDM. This way # .xsession-errors actually gets more output such as if the PreSession script # is failing. This also prevents DoS attacks if some app in the users session # can be prodded to dump lots of stuff on the stdout/stderr. We wish to be # robust don't we? In case you wish to use an existing script for other DM's, # you can just not redirect when GDMSESSION is set. GDMSESSION will always # be set from gdm. # # Also note that this is not run as a login shell, this is just executed. # # based on: # $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ PROGNAME=Xsession message () { # pretty-print messages of arbitrary length; use xmessage if it # is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 if [ -n "$DISPLAY" ]; then if [ -n "$zenity" ]; then "$zenity" --info --text "`gettextfunc "$MESSAGE"`" elif [ -n "$xmessage" ]; then echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file - fi fi } message_nonl () { # pretty-print messages of arbitrary length (no trailing newline); use # xmessage if it is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; if [ -n "$DISPLAY" ]; then if [ -n "$zenity" ]; then "$zenity" --info --text "`gettextfunc "$MESSAGE"`" elif [ -n "$xmessage" ]; then echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file - fi fi } errormsg () { # exit script with error message "$*" exit 1 } internal_errormsg () { # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message # One big call to message() for the sake of xmessage; if we had two then # the user would have dismissed the error we want reported before seeing the # request to report it. errormsg "$*" \ "Please report the installed version of the "xfree86-common"" \ "package and the complete text of this error message to" \ "<debian-x@lists.debian.org>." } run_parts () { # until run-parts --noexec is implemented if [ -z "$1" ]; then internal_errormsg "run_parts() called without an argument." fi if [ ! -d "$1" ]; then internal_errormsg "run_parts() called, but "$1" does not exist or is" \ "not a directory." fi for F in $(ls $1); do if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then if [ -f "$1/$F" ]; then echo "$1/$F" fi fi done } # initialize variables for use by all session scripts OPTIONFILE=/etc/X11/Xsession.options SYSRESOURCES=/etc/X11/Xresources USRRESOURCES=$HOME/.Xresources SYSSESSIONDIR=/etc/X11/Xsession.d USERXSESSION=$HOME/.xsession ALTUSERXSESSION=$HOME/.Xsession # this will go into the .xsession-errors along with all other echo's # good for debugging where things went wrong echo "$0: Beginning session setup..." # First read /etc/profile and .profile test -f /etc/profile && . /etc/profile test -f "$HOME/.profile" && . "$HOME/.profile" # Second read /etc/xprofile and .xprofile for X specific setup test -f /etc/xprofile && . /etc/xprofile test -f "$HOME/.xprofile" && . "$HOME/.xprofile" # Translation stuff if [ -x "/usr/lib/gdm/gdmtranslate" ] ; then gdmtranslate="/usr/lib/gdm/gdmtranslate" else gdmtranslate= fi # Note that this should only go to zenity dialogs which always expect utf8 gettextfunc () { if [ "x$gdmtranslate" != "x" ] ; then "$gdmtranslate" --utf8 "$1" else echo "$1" fi } zenity=`which zenity 2>/dev/null` xmessage=`which xmessage 2>/dev/null` command="$1" if [ -z "$command" ] ; then command=failsafe fi if [ x"$command" = xfailsafe ] ; then if [ -n "$zenity" ] ; then "$zenity" --info --text "`gettextfunc "This is the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`" else echo "$0: Starting the failsafe xterm session." fi exec xterm -geometry 80x24+0+0 fi # clean up after xbanner freetemp=`which freetemp 2>/dev/null` if [ -n "$freetemp" ] ; then "$freetemp" fi usermodmap="$HOME/.Xmodmap" userxkbmap="$HOME/.Xkbmap" if [ -f "$userxkbmap" ]; then setxkbmap `cat "$userxkbmap"` XKB_IN_USE=yes fi # xkb and xmodmap don't play nice together if [ -z "$XKB_IN_USE" ]; then if [ -f "$usermodmap" ]; then xmodmap "$usermodmap" fi fi unset XKB_IN_USE # Normalize languages, some places/distros screw us up in /etc/profile, # so in case the user did select a language if [ -n "$GDM_LANG" ]; then LANG="$GDM_LANG" export LANG if [ -n "$LC_ALL" ]; then if [ "$LC_ALL" != "$LANG" ]; then LC_ALL="$LANG" fi else unset LC_ALL fi if [ -n "$LANGUAGE" ]; then if [ "$LANGUAGE" != "$LANG" ]; then LANGUAGE="$LANG" fi else unset LANGUAGE fi if [ -n "$LINGUAS" ]; then if [ "$LINGUAS" != "$LANG" ]; then LINGUAS="$LANG" fi else unset LINGUAS fi fi # The default Debian session runs xsession first, so we just do that for # "custom" if [ "x$command" = "xcustom" ] ; then shift set default $* fi # use run-parts to source every file in the session directory; we source # instead of executing so that the variables and functions defined above # are available to the scripts, and so that they can pass variables to each # other SESSIONFILES=$(run_parts $SYSSESSIONDIR) if [ -n "$SESSIONFILES" ]; then for SESSIONFILE in $SESSIONFILES; do . $SESSIONFILE done fi echo "$0: Executing $command failed, will try to run x-terminal-emulator" if [ -n "$zenity" ] ; then "$zenity" --info --text "`gettextfunc "I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`" fi exec x-terminal-emulator -geometry 80x24+0+0
- karron
- 帖子: 6226
- 注册时间: 2005-06-11 14:03
- 来自: 不明真相的群众
- 联系:
-
- 帖子: 22
- 注册时间: 2006-08-24 9:05
-
- 帖子: 22
- 注册时间: 2006-08-24 9:05
- Jungherr
- 帖子: 269
- 注册时间: 2006-07-08 9:00
- 来自: Deutschland
-
- 帖子: 5
- 注册时间: 2006-08-25 11:57
- Ragingflames
- 帖子: 89
- 注册时间: 2006-09-08 19:59
-
- 帖子: 94
- 注册时间: 2006-01-02 0:37
Re: SCIM 无法自动启动
im-switch -s scim_xim -z default
Error: no system wide configuration file "scim_xim" exists.
Error: No action taken.
Error: no system wide configuration file "scim_xim" exists.
Error: No action taken.