#!/bin/bash
# Суулгах заавар:
# Эхлээд файлдаа ажиллах эрх өгөх хэрэгтэй. Ингэхдээ:
# Татаж авсан файл дээрээ Хулганы баруун товч дараад Properties->Permissions
# хэсэгт "Allow executing file as program" гэснийг чагталж
# хаагаад дараа нь ажиллуулж суулгана.
# Хэрэв Run гэсэн сонголт гарч ирэхгүй бол File Manager (Nautilus)
# дээрээ Edit → Preferences → 'Behavior' дээр "Executable Text Files"-ыг
# "Ask each time" болгож сонгоод ажиллуулах буюу эсвэл
# Terminal-аас дуудаж ажиллуулж болно.
# Copyright Dusal.net
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
zenity --question --title="Dusal Bicheech for Linux" --text="Суулгахад root хандалт шаардлагатай. Та зөвшөөрч байна уу?"
case $? in
0)
echo "
Дусал Бичээч хувилбар 3.1
Англи үсгийн байрлалтай Монгол Кирилл гарын драйвер + Монгол бичгийн драйвер
Ubuntu 8.10 - 14.04 (ба бусад зарим Linux) хувилбарт суулгах суулгагч
Энэ скрипт нь туршигдсан боловч ямар нэгэн баталгаа өгөхгүй!
Та хүссэнээрээ өөрчлөх, хуулбарлах, хэрэглэх боломжтой.
Ямар нэгэн алдаа, асуудалтай зүйл байвал холбоо бариарай.
Монгол бичгийн драйверыг mongolfont.blogspot.de хуудаснаас авч оруулав.
almas@dusal.net
">./tmp.txt
echo '#!/bin/bash
title="Dusal Bicheech for Linux"
text_second_window="Хийх үйлдлээ сонгоно уу"
zenity --text-info --title="$title" --width=500 --height=420 --filename="./tmp.txt" --html --checkbox="Зөвшөөрч байна. Суулгая."
case $? in
0)
options=("Суулгах" "Устгах") #"Хадгалсан системийн файлуудыг устгах")
while opt=$(zenity --width=500 --height=200 --title="$title" --text="$text_second_window" --list \
--column="Үйлдлүүд:" "${options[@]}"); do
case "$opt" in
"${options[0]}" )
re_match="mng<\/iso639Id>"
replace="mng<\/iso639Id>\
<\/languageList>\
<\/configItem>\
\
\
\
mongolianqwerty<\/name>\
Mongolian QWERTY<\/description>\
<\/configItem>\
<\/variant>\
\
\
mongolianscript<\/name>\
Mongolian Script<\/description>\
<\/configItem>\
<\/variant>\
\
\
mongolianscriptq<\/name>\
Mongolian Script Qwerty<\/description>\
<\/configItem>\
<\/variant>\
<\/variantList>\
\
"
re_match2="mon<\/iso639Id>"
replace2="mon<\/iso639Id>\
<\/languageList>\
<\/configItem>\
\
\
\
mongolianqwerty<\/name>\
Mongolian QWERTY<\/description>\
<\/configItem>\
<\/variant>\
\
\
mongolianscript<\/name>\
Mongolian Script<\/description>\
<\/configItem>\
<\/variant>\
\
\
mongolianscriptq<\/name>\
Mongolian Script Qwerty<\/description>\
<\/configItem>\
<\/variant>\
<\/variantList>\
\
"
if [ -e /usr/share/X11/xkb/rules/evdev.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/evdev.xml
sudo mv /usr/share/X11/xkb/rules/evdev.xml.bak /usr/share/X11/xkb/rules/evdev.xml
if [ $? -eq 1 ]; then
zenity --width=500 --height=200 --warning --text="Нууц үг буруу эсвэл ямар нэгэн хандалтын алдаа гарлаа. Суулгаж чадсангүй. :-("
rm ./tmp.sh ./tmp.txt -f
exit
fi
if [ -e /usr/share/X11/xkb/rules/base.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/base.xml
sudo mv /usr/share/X11/xkb/rules/base.xml.bak /usr/share/X11/xkb/rules/base.xml
fi
if [ -e /etc/X11/xkb/base.xml.bak ]; then
sudo rm /etc/X11/xkb/base.xml
sudo mv /etc/X11/xkb/base.xml.bak /etc/X11/xkb/base.xml
fi
if [ -e /usr/share/X11/xkb/symbols/mn.bak ]; then
sudo rm /usr/share/X11/xkb/symbols/mn
sudo mv /usr/share/X11/xkb/symbols/mn.bak /usr/share/X11/xkb/symbols/mn
fi
fi
if [ ! -e /usr/share/X11/xkb/rules/evdev.xml.bak ]; then
sudo cp /usr/share/X11/xkb/rules/evdev.xml /usr/share/X11/xkb/rules/evdev.xml.bak
if [ $? -eq 1 ]; then
zenity --width=500 --height=200 --warning --text="Нууц үг буруу эсвэл ямар нэгэн хандалтын алдаа гарлаа. Суулгаж чадсангүй. :-("
rm ./tmp.sh ./tmp.txt -f
exit
fi
sudo cat /usr/share/X11/xkb/rules/evdev.xml.bak | sed -e "s/$re_match/$replace/g">/usr/share/X11/xkb/rules/evdev.xml
sudo cat /usr/share/X11/xkb/rules/evdev.xml.bak | sed -e "s/$re_match2/$replace2/g">/usr/share/X11/xkb/rules/evdev.xml
fi
if [ -e /usr/share/X11/xkb/rules/base.xml ]; then
if [ ! -e /usr/share/X11/xkb/rules/base.xml.bak ]; then
sudo cp /usr/share/X11/xkb/rules/base.xml /usr/share/X11/xkb/rules/base.xml.bak
sudo cat /usr/share/X11/xkb/rules/base.xml.bak | sed -e "s/$re_match/$replace/g">/usr/share/X11/xkb/rules/base.xml
sudo cat /usr/share/X11/xkb/rules/base.xml.bak | sed -e "s/$re_match2/$replace2/g">/usr/share/X11/xkb/rules/base.xml
fi
fi
if [ ! -e /etc/X11/xkb/base.xml ]; then
if [ ! -e /etc/X11/xkb/base.xml.bak ]; then
sudo cp /etc/X11/xkb/base.xml /etc/X11/xkb/base.xml.bak
sudo cat /etc/X11/xkb/base.xml.bak | sed -e "s/$re_match/$replace/g">/etc/X11/xkb/base.xml
sudo cat /etc/X11/xkb/base.xml.bak | sed -e "s/$re_match2/$replace2/g">/etc/X11/xkb/base.xml
fi
fi
if [ ! -f /usr/share/X11/xkb/symbols/mn.bak ]; then
sudo cp /usr/share/X11/xkb/symbols/mn /usr/share/X11/xkb/symbols/mn.bak
sudo echo -n "
// Last edited on: 2015/05/28
// Included Mongolian qwerty keyboard
// Author \"Almas Dusal\"
// www.dusal.net
partial alphanumeric_keys
xkb_symbols \"mongolianqwerty\" {
name[Group1]= \"Mongolian qwerty\";
key { [ Cyrillic_shcha, Cyrillic_SHCHA, grave ] };
key { [ 1, exclam, asciitilde ] };
key { [ 2, at, division ] };
key { [ 3, numerosign, plusminus ] };
key { [ 4, U20ae, degree ] };
key { [ 5, percent, multiply ] };
key { [ 6, colon, semicolon ] };
key { [ 7, minus, ampersand ] };
key { [ 8, asterisk, equal ] };
key { [ 9, parenleft, bracketleft ] };
key { [ 0, parenright, bracketright ] };
key { [ Cyrillic_sha, Cyrillic_SHA, underscore ] };
key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, plus ] };
key { [ Cyrillic_o_bar, Cyrillic_O_bar, apostrophe ] };
key { [ Cyrillic_ie, Cyrillic_IE, grave ] };
key { [ Cyrillic_e, Cyrillic_E, EuroSign ] };
key { [ Cyrillic_er, Cyrillic_ER, registered ] };
key { [ Cyrillic_te, Cyrillic_TE, trademark ] };
key { [ Cyrillic_yu, Cyrillic_YU, yen ] };
key { [ Cyrillic_u, Cyrillic_U, doublelowquotemark ] };
key { [ Cyrillic_i, Cyrillic_I, leftdoublequotemark ] };
key { [ Cyrillic_o, Cyrillic_O, rightdoublequotemark] };
key { [ Cyrillic_pe, Cyrillic_PE, NoSymbol ] };
key { [ Cyrillic_ya, Cyrillic_YA, braceleft ] };
key { [ Cyrillic_io, Cyrillic_IO, braceright ] };
key { [ Cyrillic_a, Cyrillic_A, mu ] };
key { [ Cyrillic_es, Cyrillic_ES, sterling ] };
key { [ Cyrillic_de, Cyrillic_DE, dollar ] };
key { [ Cyrillic_yeru, Cyrillic_YERU, rightdoublequotemark ] };
key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_yeru ] };
key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_YERU ] };
key { [ Cyrillic_zhe, Cyrillic_ZHE, Cyrillic_e ] };
key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_E ] };
key { [ Cyrillic_el, Cyrillic_EL, numerosign ] };
key { [ Cyrillic_shorti, Cyrillic_SHORTI, section ] };
key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, ellipsis ] };
key { [ Cyrillic_ef, Cyrillic_EF, bar ] };
key { [ Cyrillic_ze, Cyrillic_ZE, emdash ] };
key { [ Cyrillic_che, Cyrillic_CHE, endash ] };
key { [ Cyrillic_tse, Cyrillic_TSE, copyright ] };
key { [ Cyrillic_ve, Cyrillic_VE, NoSymbol ] };
key { [ Cyrillic_be, Cyrillic_BE, NoSymbol ] };
key { [ Cyrillic_en, Cyrillic_EN, less ] };
key { [ Cyrillic_em, Cyrillic_EM, greater ] };
key { [ comma, minus, guillemotleft ] };
key { [ period, question, guillemotright ] };
key { [ Cyrillic_u_straight,Cyrillic_U_straight, slash ] };
// End alphanumeric section
key { [ space, space, nobreakspace ] };
include \"level3(ralt_switch)\"
};
// Last edited on: 2015/06/27
// Included Mongolian Script keyboard
// Created by mongolfont.blogspot.de
partial default alphanumeric_keys
xkb_symbols \"mongolianscript\" {
name[Group1]= \"Mongolian Script\";
key { [ U301C, U20AE ] };//~ Tilde Tugrig
key { [ U0031, U2049 ] };//1 one !
key { [ U0032, U003C ] };//2 two Less <
key { [ U0033, U003E ] };//3 three Greater >
key { [ U0034, U0024 ] };//4 four Dollar $
key { [ U0035, U0025 ] };//5 five persent %
key { [ U0036, U002E ] };//6 six full stop .
key { [ U0037, U002C ] };//7 seven comma ,
key { [ U0038, U002A ] };//8 eight asterisk *
key { [ U0039, U0028 ] };//9 nine Left double parenthesis(
key { [ U0030, U0029 ] };//0 zero Right double parenthesis)
key { [ U002D, U002F ] };//- minus slash
key { [ U003D, U002B ] };//= equal plus
key { [ U1839, U003A ] };//Q FA :
key { [ U1834, U003B ] };//W CHA ;
key { [ U1824, U3010 ] };//E U left black Lentucular bracke
key { [ U1835, U3011 ] };//R JA Right black Lentucular bracket4Dots ::
key { [ U1821, U3008 ] };//T E Left angle bracket
key { [ U1828, U3009 ] };//Y NA Right angle bracket
key { [ U182d, U180C ] };//U GA FVS2
key { [ U1831, U180D ] };//I SHA FVS3
key { [ U1826, U23DE ] };//O UE Top Curly bracket
key { [ U183d, U23DF ] };//P ZA Bottom Curly bracket
key { [ U183b, U23B4 ] };//[ KHA Top square bracket [
key { [ U182B, U23B5 ] };// PA Bottom square bracket ]
key { [ U1829, U200D ] };//A NG ZWJ
key { [ U180E, U180A ] };//S MVS Nirugu
key { [ U182a, U1838 ] };//D BA WA
key { [ U1825, U181B ] };//F OE
key { [ U1820, U181E ] };//G A
key { [ U182C, U183E ] };//H QA HAA
key { [ U1837, U183F ] };//J RA ZRA
key { [ U1823, U183a ] };//K O KA
key { [ U182F, U1840 ] };//L LA LHA
key { [ U1833, U1804 ] };//:; DA Mongolian Colon
key { [ U180B, U1801 ] };//\" FVS1 Ellipses
key { [ U1806, U200C ] };//|\ hyphen ZWNJ
key { [ NoSymbol,NoSymbol ] };
key { [ U1836, U1841 ] };//Z YA ZHI
key { [ U183c, U1842 ] };//X TSA CHI
key { [ U1827, U181A ] };//C EE
key { [ U1830, U181C ] };//V SA
key { [ U182e, U181D ] };//B MA
key { [ U1822, U1800 ] };//N I Birga
key { [ U1832, U1805 ] };//M TA 4Dots
key { [ U1802, U300A ] };//< COMMA Left double angle bracket
key { [ U1803, U300B ] };//> FullS Right double angle bracket
key { [ U202f, U2048 ] };//? NNBS Question
// End alphanumeric section
key { [ space ] };
//include \"level2(ralt_switch)\"
};
/////////////////////////////////////////////////////////////////////////////////
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com/p/keyboardlayouteditor
//
partial default alphanumeric_keys
xkb_symbols \"mongolianscriptq\"
{
name[Group1] = \"Mongolian Script Qwerty\";
key { [ U183D, U1841 ] }; // ᠽ ᡁ
key { [ U1831, U1842 ] }; // ᠱ ᡂ
key { [ U1834, U183C ] }; // ᠴ ᠼ
key { [ U1838, U0028 ] }; // ᠸ (
key { [ U182A, U0029 ] }; // ᠪ )
key { [ U1828, U1800 ] }; // ᠨ ᠀
key { [ U182E, U1805 ] }; // ᠮ ᠅
key { [ U1802, U300A ] }; // ᠂ 《
key { [ U1803, U300B ] }; // ᠃ 》
key { [ U202F, U2048 ] }; // ⁈
key { [ U1820, U200D ] }; // ᠠ
key { [ U1830, U180A ] }; // ᠰ ᠊
key { [ U1833, U0025 ] }; // ᠳ %
key { [ U1829, U180D ] }; // ᠩ ᠍
key { [ U182D, U180C ] }; // ᠭ ᠌
key { [ U182C, U183E ] }; // ᠬ ᠾ
key { [ U1835, U183F ] }; // ᠵ ᠿ
key { [ U183B, U183A ] }; // ᠻ ᠺ
key { [ U182F, U1840 ] }; // ᠯ ᡀ
key { [ U180E, U1804 ] }; // ᠄
key { [ U180B, U1801 ] }; // ᠋ ᠁
key { [ U1825, U200C ] }; // ᠥ
key { [ U1826, U1806 ] }; // ᠦ ᠆
key { [ U1821, U3010 ] }; // ᠡ 【
key { [ U1837, U3011 ] }; // ᠷ 】
key { [ U1832, U3008 ] }; // ᠲ 〈
key { [ U1836, U3009 ] }; // ᠶ 〉
key { [ U1824, U20AE ] }; // ᠤ ₮
key { [ U1822, exclam ] }; // ᠢ !
key { [ U1823, U23DE ] }; // ᠣ ⏞
key { [ U182B, U23DF ] }; // ᠫ ⏟
key { [ U1827, U23B4 ] }; // ᠧ ⎴
key { [ U1839, U23B5 ] }; // ᠹ ⎵
key { [ U0031, U1811 ] }; // 1 ᠑
key { [ U0032, U1812 ] }; // 2 ᠒
key { [ U0033, U1813 ] }; // 3 ᠓
key { [ U0034, U1814 ] }; // 4 ᠔
key { [ U0035, U1815 ] }; // 5 ᠕
key { [ U0036, U1816 ] }; // 6 ᠖
key { [ U0037, U1817 ] }; // 7 ᠗
key { [ U0038, U1818 ] }; // 8 ᠘
key { [ U0039, U1819 ] }; // 9 ᠙
key { [ U0030, U1810 ] }; // 0 ᠐
key { [ KP_Subtract, KP_Divide ] }; // - /
key { [ KP_Equal, KP_Add ] }; // = +
key { [ U1804, semicolon ] }; // ᠄ ;
key { [ U1809, U1808 ] }; // ᠉ ᠈
};
">>/usr/share/X11/xkb/symbols/mn
fi
sudo rm -rf /var/lib/xkb/*.xkm
echo "Суулгаж дууслаа.
Та одоо компьютераа унтрааж асаана уу! Унтрааж асаахгүй бол зөв ажиллахгүй гэдгийг санаарай.
Blogmn.net рүү ороод Google-ийн сурталчилгаан дээр хааяа дарж өгч дэмжиж байгаарай ;-)
Гар тохируулах заавар
Ubuntu хувилбар бүр дээр бага зэрэг өөр байдаг ч доорх заавраас санаа авна уу:
- System -> Settings -> Keyboard -> Layouts эсвэл Settings -> Text Entry нээгээд Add эсвэл + товч дарна.
- Country -> Mongolia сонгоод Variants -> Mongolian QWERTY эсвэл шууд хайх хэсэгт Mongolian гэж хайгаад гарч ирэхэд сонгоно.
- Мөн third level choosers буюу гуравдагч өөр товч дараад өөр тэмдэгтүүд гаргах товчийг сонгож болно. Энэ нь гараа солилгүйгээр шорткатаар илүү олон тэмдэгтийг оруулах боломж олгодог:
Ингэхдээ System -> Settings -> Keyboard -> Shortcuts -> Typing руу ороод
\"Alternative Characters Key\" дээр ямар нэгэн товч сонгож өгөөрэй. Ингэснээр Монголоор бичих үедээ сонгосон товчоо дараад бичихэд өөр тэмдэгтүүдийг сонгох боломжтой болно.
- Зарим хувилбарууд дээр гарын сонголтыг үйлдлийн мөрөнд цагны хажууд гаргахын тулд хоосон хэсэгт нь баруун дараад Add to Panel дарж нээгээд Keyboard indicator сонгож оруулна.
- Ингээд боллоо! :-)
Ямар нэгэн асуудал гарвал
almas@dusal.net хаягаар холбогдох боломжтой.
">./tmp.txt
zenity --text-info --title="$title" --width=500 --height=400 --filename="./tmp.txt" --html
rm ./tmp.sh ./tmp.txt -f
exit
;;
"${options[1]}" ) if [ -e /usr/share/X11/xkb/rules/evdev.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/evdev.xml
sudo mv /usr/share/X11/xkb/rules/evdev.xml.bak /usr/share/X11/xkb/rules/evdev.xml
if [ $? -eq 1 ]; then
zenity --width=500 --height=200 --warning --text="Нууц үг буруу эсвэл ямар нэгэн хандалтын алдаа гарлаа. Үйлдэл амжилтгүй боллоо. :-("
rm ./tmp.sh ./tmp.txt -f
exit
fi
if [ -e /usr/share/X11/xkb/rules/base.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/base.xml
sudo mv /usr/share/X11/xkb/rules/base.xml.bak /usr/share/X11/xkb/rules/base.xml
fi
if [ -e /etc/X11/xkb/base.xml.bak ]; then
sudo rm /etc/X11/xkb/base.xml
sudo mv /etc/X11/xkb/base.xml.bak /etc/X11/xkb/base.xml
fi
if [ -e /usr/share/X11/xkb/symbols/mn.bak ]; then
sudo rm /usr/share/X11/xkb/symbols/mn
sudo mv /usr/share/X11/xkb/symbols/mn.bak /usr/share/X11/xkb/symbols/mn
fi
zenity --width=500 --height=200 --info --text="Хэрвээ нууц үг зөв бөгөөд ямар нэгэн алдаа гараагүй бол үйлдэл амжилттай хийгдсэн гэж бодож байна. :-)"
rm ./tmp.sh ./tmp.txt -f
exit
else
zenity --width=500 --height=200 --warning --text="Системийн анхны файлууд олдсонгүй. Устгах боломжгүй байна. Уучлаарай."
rm ./tmp.sh ./tmp.txt -f
exit
fi
;;
"${options[2]}" ) if [ -e /usr/share/X11/xkb/rules/evdev.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/evdev.xml.bak
if [ -e /usr/share/X11/xkb/rules/base.xml.bak ]; then
sudo rm /usr/share/X11/xkb/rules/base.xml.bak
fi
if [ -e /etc/X11/xkb/base.xml.bak ]; then
sudo rm /etc/X11/xkb/base.xml.bak
fi
if [ -e /usr/share/X11/xkb/symbols/mn.bak ]; then
sudo rm /usr/share/X11/xkb/symbols/mn.bak
fi
zenity --width=500 --height=200 --info --text="Хэрвээ нууц үг зөв бөгөөд ямар нэгэн алдаа гараагүй бол үйлдэл амжилттай хийгдсэн гэж бодож байна. :-)"
rm ./tmp.sh ./tmp.txt -f
exit
else
zenity --width=500 --height=200 --warning --text="Ямар нэгэн устгах файл олсонгүй."
rm ./tmp.sh ./tmp.txt -f
exit
fi;;
*) zenity --error --text="Invalid option. Try another one.";;
esac
done
;;
esac
rm ./tmp.sh ./tmp.txt -f
exit'>./tmp.sh
PASSWD="$(zenity --password --title='Нууц үг ээ оруулна уу')\n"
echo -e $PASSWD | sudo -S bash ./tmp.sh
case $? in
1)
rm ./tmp.sh ./tmp.txt -f
;;
-1)
rm ./tmp.sh ./tmp.txt -f
;;
esac
;;
esac