`#!/bin/bash
# Ubuntu および Ubuntu 派生 OS での基本設定自動実行 
# https://www.kkaneko.jp/tools/ubuntu/ubuntu_setup.html

# ダウンロード元を日本に設定
sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo sed -i 's/\/\/us.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo sed -i 's/\/\/fr.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo apt -y update

# apt が HTTPS でレポジトリを利用できるようにする設定
sudo apt update
sudo apt -y install ca-certificates curl gnupg lsb-release
# apt-transport-https のインストール
sudo apt -y update
sudo apt -y install apt-transport-https

# パッケージのアップデート操作
sudo apt update 
sudo apt -yV upgrade
sudo apt -yV dist-upgrade
sudo apt -yV autoremove
sudo apt autoclean

# タイムゾーンとロケール
sudo timedatectl set-timezone Asia/Tokyo
export LANG=ja_JP.UTF-8 
export LC_ALL=ja_JP.UTF-8 
export LANGUAGE=ja_JP.UTF-8 
sudo sed -i 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen
sudo locale-gen
sudo update-locale LANG=ja_JP.UTF-8
sudo dpkg-reconfigure -f noninteractive locales 
sudo /usr/sbin/update-locale LANG=$LANG LC_ALL=$LANG

# NTP の設定
sudo apt -y update
sudo apt install -y ntp
sudo apt install -y ntpdate
sudo apt install -y tzdata
sudo service ntp stop
sudo /usr/sbin/ntpdate ntp.nict.jp
sudo /usr/sbin/service ntp start

# 日本語の言語サポートのインストール
sudo apt -y update
sudo apt -yV install language-selector-common
sudo apt -yV install $(check-language-support)

# 運用保守用ツール net-tools, pciutils, psutil のインストール
sudo apt -y update
sudo apt -y install net-tools pciutils 
sudo apt -y install psutil

# 不要なソフトウェアの削除
echo "Do you want to remove wolfram-engine, libreoffice and thunderbird, wolfram-engine と libreoffice と thunderbird を消去しますか (y/n)?"
read ANSWER
case $ANSWER in
  "" | [Yy]*)
    sudo apt -y purge wolfram-engine
    sudo apt -y purge libreoffice*
    sudo apt -y purge thunderbird*
    sudo apt -yV autoremove
    sudo apt autoclean
    ;;
 *)
    echo skip...
    ;;
esac

# ユーザディレクトリの言語を英語に変更
sudo apt -y update
sudo apt -y install xdg-user-dirs-gtk 
echo "Do you want to execute LANG=C LC_ALL=C xdg-user-dirs-gtk-update, 「LANG=C LC_ALL=C xdg-user-dirs-gtk-update」を実行しますか (y/n)?"
read ANSWER
case $ANSWER in
  "" | [Yy]*)
    LANG=C LC_ALL=C xdg-user-dirs-gtk-update
    ;;
 *)
    echo skip...
    ;;
esac

# GNOME での省電力、サスペンドに関する設定例（gsettings コマンドを使用）
# 警告は無視してください
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.lockdown disable-lock-screen true
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type nothing
gsettings set org.mate.power-manager sleep-computer-ac 0
gsettings set apps.light-locker lock-after-screensaver 0
gsettings set apps.light-locker lock-on-suspend false

# xfce4 での省電力、サスペンドに関する設定例（gsettings コマンドを使用） 
# 警告は無視してください
sed -i "/property name=\"dpms-enabled\"/s/value=\"true\"/value=\"false\"/g" ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml
sed -i "/property name=\"inactivity-on-ac\"/s/value=\"[0-9]*/value=\"14/g" ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml

# .pam_environment の LANG の値を「ja_JP.UTF-8」に設定
if [ -f ~/.pam_environment ]; then
    sed -i "/LANG=/s/LANG=.*/LANG=ja_JP.UTF-8/g" ~/.pam_environment
    sed -i "/LANGUAGE=/s/LANGUAGE=.*/LANGUAGE=ja:en_US:en/g" ~/.pam_environment
fi

# fcitx-mozc
echo "Do you use fcitx-mozc, fcitx-mozc を使用しますか (y/n)?"
read ANSWER
case $ANSWER in
  "" | [Yy]*)
# fcitx-mozc のインストール
    sudo apt -y update
    sudo apt -yV install fcitx-mozc
# fcitx-mozc のインストールが成功したら、不要なインプットメソッドの削除
    sudo apt -y update
    sudo apt -y install zenity
    sudo apt remove -y ibus-mozc
    sudo apt remove -y ibus-table
    sudo apt remove -y ibus-gtk
    sudo apt remove -y ibus-gtk3
    sudo apt remove -y ibus-gtk4
    sudo apt remove -y ibus-data
    sudo apt remove -y ibus
# im-config -n fcitx を実行して、fcitx を使用するように設定
    im-config -n fcitx
# fcitx の設定 
    sudo apt -yV install fcitx-config-gtk
    if [ -f ~/.config/fcitx/profile ]; then 
      sed -i "/EnabledIMList/s/mozc:False/mozc:True/g" ~/.config/fcitx/profile
    fi
    fcitx-configtool mozc &
    ;;
  *)
    echo skip...
    ;;
esac

# mozc の設定画面を開く
/usr/lib/mozc/mozc_tool --mode=config_dialog &



#
sudo cp /etc/default/keyboard /etc/default/keyboard.BAK.$$
echo "Do you want to disable capslock key, capslock キーを無効化しますか (y/n)?"
read ANSWER
case $ANSWER in
  "" | [Yy]*)
    echo 'XKBOPTIONS="ctrl:nocaps"' | sudo tee -a /etc/default/keyboard
    ;;
  *)
    echo skip...
    ;;
esac

# autoremove, autoclean
sudo apt -yV autoremove
sudo apt autoclean

# 履歴の除去
history -c
sudo rm ~/.bash_history

# bleachbit
sudo apt -y install bleachbit
sudo apt -y install psutil
echo "Do you want to clean up and zero-fill, システムの不要ファイルの除去とワイプとファイルの断片の消去を行いますか (y/n)?"
read ANSWER
case $ANSWER in
  "" | [Yy]*)
    sudo bleachbit --clean system.*
    ;;
  *)
    echo skip...
    ;;
esac

sync
sync
sync
sync
sync
sync
sync

