文件操作 - imsettings-functions
返回文件管理
返回主菜单
删除本文件
文件: /usr/libexec/imsettings-functions
编辑文件内容
# -*- shell-script -*- # imsettings-functions # Copyright (C) 2013 Akira TAGOH # # Authors: # Akira TAGOH <tagoh@redhat.com> # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., 51 Franklin Street, Fifth # Floor, Boston, MA 02110-1301 USA LOGDIR="${XDG_CACHE_HOME:-$HOME/.cache}/imsettings" LOGFILE="$LOGDIR/log" function log_init() { if [ ! -n "$DRY_RUN" ]; then if [ -f $HOME/.imsettings.log ]; then mv $HOME/.imsettings.log $LOGFILE.bak fi [ -f $LOGFILE ] && mv $LOGFILE $LOGFILE.bak touch $LOGFILE fi } function log() { echo "$@" >> $LOGFILE } function is_dbus_enabled() { /usr/libexec/imsettings-check --check-dbus [ $? -eq 0 ] } function is_imsettings_enabled() { [ -z "$DISABLE_IMSETTINGS" ] && is_dbus_enabled } function check_imsettings_capability() { mod=$1 /usr/libexec/imsettings-check --check-modules >/dev/null ret=$? if [ $ret -eq 0 ]; then /usr/libexec/imsettings-check --check-modulesettings -d | grep $mod >/dev/null ret=$? fi return $ret } function lookup_desktop() { ret=$(cat $1) case $ret in cinnamon*) echo "cinnamon" ;; gnome*) echo "gnome" ;; kde*) echo "kde" ;; lxsession*) echo "LXDE" ;; mate*) echo "mate" ;; xfce*) echo "xfce" ;; *) echo "unknown" ;; esac } function get_desktop() { if [ -n "$GDMSESSION" ]; then GUESS_DESKTOP="\$GDMSESSION" echo "$GDMSESSION" elif [ -n "$DESKTOP_SESSION" ]; then GUESS_DESKTOP="\$DESKTOP_SESSION" if [ "$DESKTOP_SESSION" == "default" ]; then if [ -x "$HOME/.xsession" ]; then GUESS_DESKTOP="$HOME/.xsession" elif [ -x "$HOME/.Xclients" ]; then GUESS_DESKTOP="$HOME/.Xclients" elif [ -f "/etc/sysconfig/desktop" ]; then GUESS_DESKTOP=" /etc/sysconfig/desktop" . /etc/sysconfig/desktop echo $DESKTOP else echo "unknown" fi else echo "$DESKTOP_SESSION" fi [ "`echo \"$GUESS_DESKTOP\"|sed -e 's/\(.\).*/\1/'`" == "/" ] && lookup_desktop $GUESS_DESKTOP else echo "unknown" fi } function is_gtk_supported() { [ -n "$IMSETTINGS_DISABLE_DESKTOP_CHECK" ] && return 0 case "$(get_desktop|tr '[A-Z]' '[a-z]')" in cinnamon) if check_imsettings_capability gsettings; then return 0 fi ;; *gnome|gnome*|openbox) if check_imsettings_capability gconf || check_imsettings_capability gsettings; then return 0 fi ;; lxde) if check_imsettings_capability lxde; then return 0 fi ;; mate) if check_imsettings_capability mateconf; then return 0 fi ;; xfce*) if check_imsettings_capability xfce; then return 0 fi ;; *) ;; esac return 1 } function is_qt_supported() { [ -n "$IMSETTINGS_DISABLE_DESKTOP_CHECK" ] && return 0 case "$(get_desktop|tr '[A-Z]' '[a-z]')" in *) if check_imsettings_capability qt; then return 0 fi ;; esac return 1 } function is_xim_supported() { # XXX: Disable XIM support so far # [ -n "$IMSETTINGS_DISABLE_DESKTOP_CHECK" ] && return 0 # if check_imsettings_capability xim; then # return 0 # fi return 1 } function is_desktop_supported() { /usr/libexec/imsettings-target-checker.sh >/dev/null [ $? -eq 0 ] } function setup_gtk_immodule() { if is_imsettings_enabled && is_gtk_supported; then # Ensure GTK_IM_MODULE is empty. otherwise GTK+ doesn't pick up immodule through XSETTINGS unset GTK_IM_MODULE export GTK_IM_MODULE else [ -n "$GTK_IM_MODULE" ] && export GTK_IM_MODULE fi } function setup_qt_immodule() { if is_imsettings_enabled && is_qt_supported; then # FIXME: Qt doesn't support XSETTINGS for immodule yet. # We still need to go with the older way. [ -n "$QT_IM_MODULE" ] && export QT_IM_MODULE else [ -n "$QT_IM_MODULE" ] && export QT_IM_MODULE fi } function setup_xim() { if is_imsettings_enabled && is_xim_supported; then # setup XMODIFIERS XMODIFIERS="@im=imsettings" export XMODIFIERS else [ -z "$XMODIFIERS" -a -n "$XIM" ] && XMODIFIERS="@im=$XIM" [ -n "$XMODIFIERS" ] && export XMODIFIERS fi } function run_imsettings() { print_info if [ -n "$DRY_RUN" ]; then log "*** DRY RUN MODE: running IM through imsettings" else if [ -n "$IMSETTINGS_INTEGRATE_DESKTOP" -a "x$IMSETTINGS_INTEGRATE_DESKTOP" = "xno" ]; then which imsettings-switch > /dev/null 2>&1 && LANG="$tmplang" imsettings-switch -n "$IMSETTINGS_MODULE" || : # NOTE: We don't bring up imsettings-xim nor imsettings-applet here to support XIM. # imsettings-applet will starts through XDG autostart mechanism. # If the desktop doesn't support that, this function shouldn't be invoked. # but run_xim() instead. fi fi } function run_xim() { print_info if [ -n "$DRY_RUN" ]; then log "*** DRY RUN MODE: running IM without imsettings" else DISABLE_IMSETTINGS=true export DISABLE_IMSETTINGS # execute XIM_PROGRAM [ -n "$XIM_PROGRAM" ] && which "$XIM_PROGRAM" > /dev/null 2>&1 && LANG="$tmplang" "$XIM_PROGRAM" $XIM_ARGS > $LOGFILE 2>&1 & fi } function print_result() { $1 if [ $? -eq 0 ]; then log yes else log no fi } function print_info() { log "imsettings information" log "==========================" log "XINPUTRC: $READ_XINPUTRC" if [ "x$READ_XINPUTRC" != "xN/A" ]; then log "`stat $READ_XINPUTRC|sed -e 's/\(.*\)/\t\1/g'`" fi log -n "Is DBus enabled: " print_result is_dbus_enabled log -n "Is imsettings enabled: " print_result is_imsettings_enabled log -n "Is GTK+ supported: " print_result is_gtk_supported log -n "Is Qt supported: " print_result is_qt_supported log "DESKTOP: $(get_desktop)" get_desktop > /dev/null log "GUESS_DESKTOP: $GUESS_DESKTOP" log "DISABLE_IMSETTINGS: $DISABLE_IMSETTINGS" log "IMSETTINGS_DISABLE_DESKTOP_CHECK: $IMSETTINGS_DISABLE_DESKTOP_CHECK" log "DBUS_SESSION_BUS_ADDRESS: $DBUS_SESSION_BUS_ADDRESS" log "GTK_IM_MODULE: $GTK_IM_MODULE" log "QT_IM_MODULE: $QT_IM_MODULE" log "XMODIFIERS: $XMODIFIERS" log "IMSETTINGS_MODULE: $IMSETTINGS_MODULE" log "IMSETTINGS_INTEGRATE_DESKTOP: $IMSETTINGS_INTEGRATE_DESKTOP" log "" }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件