post-install.sh 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #! /bin/sh
  2. echo 'Arch Linux Postinstall'
  3. echo -n "Should we start? [Y|n] "
  4. read yn
  5. yn=${yn:-y}
  6. if [ "$yn" != "y" ]; then
  7. echo "aborting script!"
  8. exit
  9. fi
  10. _cwd="$(pwd)"
  11. echo -n "Create your user? [Y|n]"
  12. read yn
  13. yn=${yn:-y}
  14. if [ "$yn" == "y" ]; then
  15. echo -n "Enter user name:"
  16. read user
  17. useradd -m -g users "$user"
  18. passwd "$user"
  19. echo "user $user created"
  20. echo "$user ALL=(ALL) ALL" >> /etc/sudoers
  21. echo "$user added to sudoers"
  22. su "$user"
  23. fi
  24. # remove root autologin
  25. sudo sed -i.back 's/--autologin root //' /etc/systemd/system/getty@tty1.service.d/autologin.conf
  26. # remove root login
  27. sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su
  28. sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su-l
  29. # security
  30. sudo touch /etc/sysctl.d/50-dmesg-restrict.conf
  31. sudo sh -c "echo 'kernel.dmesg_restrict = 1' >> /etc/sysctl.d/50-dmesg-restrict.conf"
  32. sudo touch /etc/sysctl.d/50-kptr-restrict.con
  33. sudo sh -c "echo 'kernel.kptr_restrict = 1' >> /etc/sysctl.d/50-kptr-restrict.conf"
  34. echo 'ILoveCandy'
  35. sudo sed -i.back 's/.*\[options\].*/&\nILoveCandy/' /etc/pacman.conf
  36. # bash & prompt
  37. echo 'Bash and Prompt'
  38. git clone https://github.com/hojhan/liquidprompt.git -o github /home/$USER/.liquidprompt
  39. cp $_cwd/assets/bash_profile /home/$USER/.bash_profile
  40. cp $_cwd/assets/bashrc /home/$USER/.bashrc
  41. mkdir /home/$USER/.config
  42. cp $_cwd/assets/liquiprompt /home/$USER/.config/
  43. # sudo pacman -S --needed --noconfirm bash-completion
  44. source /home/$USER/.bashrc
  45. # vim
  46. echo 'vim configuration'
  47. sleep 3
  48. cp $_cwp/assets/vim /home/$USER/.vim
  49. cp $_cwd/assets/vimrc /home/$USER/.vimrc
  50. sudo cp $_cwd/assets/vim /root/.vim
  51. sudo cp $_cwd/assets/vimrc /root/.vimrc
  52. echo 'Misc'
  53. sleep 3
  54. touch /home/$USER/.inputrc
  55. echo 'set show-all-if-ambiguous on' >> /home/$USER/.inputrc
  56. echo 'set completion-ignore-case on' >> /home/$USER/.inputrc
  57. echo 'Git Completion'
  58. sleep 3
  59. sudo pacman -S --needed --noconfirm bash-completion wget
  60. sudo mkdir /etc/bash_completion.d
  61. sudo wget -O /etc/bash_completion.d/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
  62. echo 'increase inotify watch limit'
  63. sleep 3
  64. sudo cp $_cwd/assets/90-inotify.conf /etc/sysctl.d/
  65. # Yaourt
  66. echo -n "install Yaourt [Y|n] "
  67. read yaourt
  68. yaourt=${yaourt:-y}
  69. if [ "$yaourt" == "y" ]; then
  70. sudo pacman -S --needed base-devel
  71. mkdir -p /home/$USER/Developer/Linux/build-repos
  72. wget -O /home/$USER/Developer/Linux/build-repos/package-query.tar.gz https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
  73. wget -O /home/$USER/Developer/Linux/build-repos/yaourt.tar.gz https://aur.archlinux.org/cgit/aur.git/snapshot/yaourt.tar.gz
  74. cd /home/$USER/Developer/Linux/build-repos
  75. tar -xvf package-query.tar.gz
  76. tar -xvf yaourt.tar.gz
  77. cd package-query
  78. makepkg -sri
  79. cd ../yaourt
  80. makepkg -sri
  81. echo 'ask for editing config file before build'
  82. echo "EDITFILES=1" >> ~/.yaourtrc
  83. fi
  84. # Display Manager
  85. echo -n "install Graphical Display Part 1 : Xorg server? [Y|n] "
  86. read yn
  87. yn=${yn:-y}
  88. if [ "$yn" == "y" ]; then
  89. sudo pacman -S --needed --noconfirm bumblebee
  90. sudo pacman -S --needed --noconfirm mesa
  91. sudo pacman -S --needed --noconfirm xf86-video-intel
  92. sudo pacman -S --needed --noconfirm nvidia
  93. sudo pacman -S --needed --noconfirm xorg-xinit
  94. sudo gpasswd -a $USER bumblebee
  95. sudo systemctl enable bumblebeed
  96. sudo reboot
  97. fi
  98. echo -n "install Graphical Display Part 2 : Kde Plasma 5? [Y|n] "
  99. read yn
  100. yn=${yn:-y}
  101. if [ "$yn" == "y" ]; then
  102. sudo pacman -S --needed --noconfirm --force plasma-meta
  103. sudo pacman -S --needed --noconfirm ttf-dejavu ttf-liberationi
  104. sudo systemctl enable NetworkManager
  105. sudo systemctl start NetworkManager
  106. fi
  107. echo "install basic packages? [Y|n]"
  108. read yn
  109. yn=${yn:-y}
  110. if [ "$yn" == "y" ]; then
  111. sudo pacman -S --needed --noconfirm systemd-kcm bluedevil rfkill
  112. sudo pacman -S --needed --noconfirm dolphin dolphin-plugins
  113. sudo pacman -S --needed --noconfirm kmail korganizer kdeconnect
  114. sudo pacman -S --needed --noconfirm chromium terminator
  115. if [ "$yaourt" == "y" ]; then
  116. yaourt -S atom-editor
  117. fi
  118. fi
  119. echo 'Setup a gpg encripting'
  120. echo 'see https://wiki.archlinux.org/index.php/GnuPG'
  121. echo -n "create your gpg encrypting key? [Y|n] "
  122. read yn
  123. yn=${yn:-y}
  124. if [ "$yn" == "y" ]; then
  125. gpg --full-gen-key
  126. fi
  127. echo -n "Reboot? [Y|n] "
  128. read yn
  129. yn=${yn:-y}
  130. if [ "$yn" != "y" ]; then
  131. echo "please reboot"
  132. exit
  133. fi
  134. reboot