1
0
Fork 0

moved from arch to manjaro

This commit is contained in:
Kim, Jimin 2021-07-09 20:12:54 +09:00
parent 50c1125ae8
commit 33bca6a7ab
2 changed files with 142 additions and 154 deletions

View file

@ -6,35 +6,14 @@
</p>
<p align="center">
My <a href="https://www.archlinux.org">Arch linux</a> based desktop setup
My <a href="https://manjaro.org">Manjaro</a> desktop setup
</p>
---
Purpose:
- To provide myself materials (script, guide, and other files) for cases when I need to transfer to other machine, or reinstall the OS.
- To answer questions others might have about my setup (e.g. what browser you use?)
If you have questions that are not answered in this repo, feel free to contact me via method listed in my [github profile page](https://github.com/developomp/developomp).
# FAQ
**Q:** Why don't you use more mainstream distros like Ubuntu?
**A:**
- arch is mainstream enough and has huge community behind it
- their package repository is huge and is easy to use
- has extensive wiki
- their philosophy matches that of mine (e.g. [user centrality](https://wiki.archlinux.org/title/Arch_Linux#User_centrality) and the DIY attitude)
- strikes a perfect balance between customizability and ease of use
<br/>
**Q:** Why don't you use easier arch-based distros like manjaro?
**A:** Though Manjaro is great and adds some feature arch linux does not provide out of the box (such as [mhwd](https://wiki.manjaro.org/index.php/Manjaro_Hardware_Detection)), it's too bloated for my liking.
- To provide myself materials (script, guide, and other files) for cases when I need to transfer to other machine or reinstall the OS.
# Hardware
@ -67,11 +46,11 @@ If you have questions that are not answered in this repo, feel free to contact m
more information about efi partition can be found in [this](https://wiki.archlinux.org/title/GRUB) arch wiki.
| drive id\* | format | size | mount location | purpose |
| ---------- | ------ | --------- | ---------------- | ------------- |
| 1 | FAT32 | 300MiB | /boot/efi | EFI partition |
| 1 | ext4 | 10000MiB | / | root |
| 2 | ext4 | 450000MiB | /media/pomp/data | data storage |
| drive id\* | format | size (2048 byte sectors) | mount location | purpose |
| ---------- | ------ | ------------------------ | ---------------- | ------------- |
| 1 | FAT32 | 614400 | /boot/efi | EFI partition |
| 1 | ext4 | 614400 | / | root |
| 2 | ext4 | 921600000 | /media/pomp/data | data storage |
\*index from [storage](#Storage)

257
setup.sh
View file

@ -1,6 +1,6 @@
#!/bin/bash
# don't remove line after yay_install or pacman_install
# don't remove line after package_install
# it will result in this syntax error: unexpected end of file
# #################### [ ESSENTIALS ] ####################
@ -50,20 +50,8 @@ title() {
echo -e "$BOLD$GREEN====================[ $@ ]====================$RESET"
}
pacman_install() {
sudo pacman -S --needed --noconfirm $@
}
yay_install() {
# install a AUR package if it's not already installed
for package_name in "$@"; do
if ! yay -Qi $package_name > /dev/null 2>&1 ; then
log "yay: installing \"$package_name\""
yay -S --answerclean None --answerdiff None --answeredit None --aur $package_name
fi
done
exit
package_install() {
pamac install $@
}
# #################### [ DEFINING ESSENTIAL SETUP ] ####################
@ -80,43 +68,22 @@ setup_essentials() {
# enable multilib, color, parallel download, and total download in /etc/pacman.conf
}
remove_essentials() {
:
# epiphany
# gnome-color-manager
# kvantum-qt5
# totem
}
install_essentials() {
# install yay if it's not installed
if ! command -v yay &> /dev/null; then
sudo pacman -S --needed --noconfirm git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd $SCRIPT_DIR
fi
yay_install \
package_install \
4kvideodownloader `# downloading videos and audio from youtube` \
figma-linux-font-helper `# using local fonts in figma` \
grive `# google drive syncing` \
gwe `# nvidia GPU overclocking` \
jdk `# java development` \
mystiq `# video conversion` \
obs-input-overlay-bin `# show inputs in OBS` \
osu-lazer `# Rhythm game` \
pamac-aur `# GUI for arch package management` \
timeshift `# system backup` \
unityhub `# game development` \
visual-studio-code-bin `# programming & text editing` \
xinput-gui `# A simple GUI for Xorg's Xinput tool` \
xmousepasteblock-git `# force disable middle click paste` \
zoom `# video conference` \
matcha-gtk-theme `# gtk theme` \
pacman_install \
alacarte `# editing apps in gnome menu` \
audacity `# editing audio` \
blender `# 3D modeling, simulations, and video editing` \
conky `# system monitoring` \
dotnet-sdk `# C# development (for unity)` \
filezilla `# FTP client` \
firefox-developer-edition `# browser` \
gimp `# image editing` \
git `# version control system` \
go `# golang development` \
gpa `# PGP key management` \
@ -125,13 +92,9 @@ install_essentials() {
hardinfo `# seeing system hardware information` \
htop `# managing processes` \
ibus-hangul `# ` \
inkscape `# vector editing tool` \
intellij-idea-community-edition `# java development` \
lldb `# debugger` \
mystiq `# video conversion` \
networkmanager `# Network connection manager` \
nodejs `# ` \
npm `# javascript development` \
obs-studio `# screen recording and streaming` \
pavucontrol `# ` \
piper `# changing gaming mouse settings` \
putty `# ` \
@ -140,17 +103,13 @@ install_essentials() {
sqlitebrowser `# ` \
steam `# ` \
steam-native-runtime `# ` \
sudo `# To run commands as root` \
tmux `# running task independent of session` \
transmission-gtk `# ` \
timeshift `# system backup` \
transmission-gtk `# torrent client` \
unityhub `# game development` \
vim `# the good text editor` \
vlc `# audio & video playback` \
vnstat `# network traffic statistics (for conky)` \
wine `# ` \
wine-gecko `# ` \
wine-mono `# ` \
winetricks `# ` \
wireshark `# ` \
visual-studio-code-bin `# programming & text editing` \
xinput-gui `# A simple GUI for Xorg's Xinput tool` \
xmousepasteblock-git `# force disable middle click paste` \
yarn `# ` \
}
@ -160,7 +119,7 @@ install_essentials() {
# Assumes all essential packages are installed already (git, vim, etc.)
setup_gnome() {
pacman_install \
package_install \
baobab `# Disk usage analysis` \
cheese `# Capturing photo / video with webcam` \
dconf-editor `# GUI for dconf` \
@ -185,9 +144,6 @@ setup_gnome() {
gnome-usage `# System resource statistics` \
mutter `# window manager` \
nautilus `# File management` \
simple-scan `# Scanning utility` \
yay_install \
gnome-terminal-transparency `# Transparent gnome terminal` \
gnome-shell-extension-installer `# Installation of gnome extensions from command line` \
gnome-shell-extension-pop-shell-git `# switching between stacked mode and tiling mode` \
@ -220,9 +176,8 @@ setup_gnome() {
}
setup_discord() {
pacman_install discord
yay_install \
package_install \
discord `# discord` \
betterdiscord-installer `# installer for betterdiscord` \
discord-overlay-git `# overlay for discord` \
@ -253,6 +208,7 @@ setup_discord() {
# https://betterdiscord.app/plugin/PermissionsViewer
# https://betterdiscord.app/plugin/PlatformIndicators
# https://betterdiscord.app/plugin/QuickMention
# https://betterdiscord.app/plugin/ReadAllNotificationsButton
# https://betterdiscord.app/plugin/RedditMentions
# https://betterdiscord.app/plugin/RevealAllSpoilersOption
# https://betterdiscord.app/plugin/SecretRingTone
@ -273,7 +229,8 @@ setup_cpu_undervolting() {
# Undervolting for intel CPU
# https://wiki.archlinux.org/index.php/Undervolting_CPU
pacman_install intel-undervolt
package_install \
intel-undervolt \
config_file=/etc/intel-undervolt.conf
@ -345,23 +302,15 @@ setup_font() {
# cleanup
rm -rf $fonts_directory
pacman_install \
package_install \
noto-fonts-emoji `# ` \
yay_install \
ttf-wps-fonts `# ` \
ttf-ms-win10 `# ` \
nerd-fonts-noto-sans-mono `# Terminal font` \
}
setup_pamac() {
:
# enable AUR package.
}
setup_wireshart() {
:
package_install wireshark-gtk2
sudo usermod -a -G wireshark $USER
}
@ -371,23 +320,22 @@ setup_middleclickpaste() {
}
setup_node() {
:
package_install \
nodejs `# ` \
npm `# javascript development` \
deno `# node++ thingy` \
# https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
# export PATH="$(yarn global bin):$PATH"
}
setup_pamac() {
:
# enable AUR on pamac
}
setup_dns() {
:
# https://1.1.1.1
}
setup_unity() {
yay_install unityhub
package_install unityhub
# editors location for unity hub (`/media/pomp/data/programs/Unity Hub/Unity Editors`)
# vscode setup
@ -396,12 +344,11 @@ setup_unity() {
setup_virtualbox() {
# https://wiki.archlinux.org/title/VirtualBox
pacman_install \
package_install \
virtualbox `# OS emulation` \
virtualbox-host-modules-arch `# ` \
virtualbox-guest-iso `# ` \
yay_install virtualbox-ext-oracle
virtualbox-ext-oracle
sudo vboxreload
sudo modprobe vboxdrv
@ -412,8 +359,8 @@ setup_optimus_manager() {
# read this wiki[1] about power management with acpi call for more information
# [1] https://github.com/Askannz/optimus-manager/wiki/A-guide--to-power-management-options#configuration-4--acpi_call
yay_install \
gwe `# https://gitlab.com/leinardi/gwe` \
package_install \
gwe `# nvidia GPU overclocking https://gitlab.com/leinardi/gwe` \
optimus-manager `# https://github.com/Askannz/optimus-manager` \
optimus-manager-qt `# https://github.com/Shatur/optimus-manager-qt` \
@ -425,7 +372,7 @@ setup_optimus_manager() {
}
setup_minecraft() {
yay_install \
package_install \
minecraft-launcher `# ` \
worldpainter `# ` \
minecraft-overviewer `# ` \
@ -434,7 +381,7 @@ setup_minecraft() {
}
setup_user_directories() {
pacman_install xdg-user-dirs
package_install xdg-user-dirs
# edit `~/.config/user-dirs.dirs`:
@ -450,12 +397,11 @@ setup_user_directories() {
}
setup_wine() {
pacman_install \
package_install \
wine \
# - wine-mono
# - winetricks
# - wine-gecko
wine-gecko \
wine-mono \
winetricks \
# - `WINEARCH=win32 WINEPREFIX=~/.win32/ winecfg`
# - `winetricks allfonts`
@ -466,7 +412,7 @@ setup_nvidia() {
# https://wiki.archlinux.org/title/NVIDIA
# https://wiki.archlinux.org/title/Vulkan
pacman_install \
package_install \
cuda `# ` \
cuda-tools `# ` \
lib32-nvidia-utils `# ` \
@ -481,16 +427,17 @@ setup_nvidia() {
setup_steam() {
#https://wiki.archlinux.org/title/Steam
pacman_install steam
package_install \
steam \
# change steam library directory (/media/pomp/data/programs/SteamLibrary)
# enable steam proton play
}
setup_conky() {
pacman_install \
conky `# ` \
vnstat `# ` \
package_install \
conky \
vnstat `# network traffic statistics (for conky)` \
# enable on startup
# sudo systemctl enable vnstat
@ -527,13 +474,16 @@ setup_local() {
if [[ -d /media/pomp/data/programs/tor-browser ]]; then
echo "tor"
fi
# krunker
# --no-sandbox
}
setup_plymouth() {
# must be done after optimus
# https://wiki.archlinux.org/title/plymouth
yay_install \
package_install \
plymouth `# ` \
gdm-plymouth-prime `# ` \
plymouth-theme-arch-logo `# ` \
@ -543,7 +493,7 @@ setup_plymouth() {
setup_grub_theme() {
# only show when esc is pressed
# check how manjaro did it
pacman_install grub-theme-vimix
package_install grub-theme-vimix
}
setup_kdenlive() {
@ -552,18 +502,86 @@ setup_kdenlive() {
# no kde dependencies
}
setup_firefox() {
package_install firefox-developer-edition
# DNS https cloudflare
}
setup_java() {
package_install \
intellij-idea-community-edition `# java development` \
jdk `# oracle java development kit` \
jdk8 `# ` \
}
setup_gimp() {
package_install \
gimp `# image editing` \
}
setup_inkscape() {
package_install \
inkscape \
}
setup_obs() {
package_install \
obs-plugin-input-overlay-bin `# show inputs in OBS` \
obs-studio `# screen recording and streaming` \
}
setup_osu() {
package_install \
osu-lazer \
osu \
# akatsuki server
}
setup_wps_office() {
package_install \
wps-office \
ttf-wps-fonts \
}
setup_go() {
package_install \
go \
}
setup_vlc() {
package_install \
vlc `# audio & video playback` \
}
setup_zoom() {
package_install zoom
}
setup() {
setup_zoom
}
# #################### [ START ] ####################
echo
warn_no_label "NOTICE"
warn_no_label "This is not a completely hands off process."
warn_no_label "You need to monitor the process and take appropriate actions."
echo
log_no_label "working directory: $RESET$BOLD$PWD"
echo
# https://stackoverflow.com/a/1885534/12979111
read -p "Press (y) to continue. Press (any other key) to exit. " -n 1 -r
read -p "Press (y) to continue. Press any other key to exit: " -n 1 -r
if [[ $REPLY =~ ^[^Yy]$ ]]; then
echo
log "canceled"
@ -572,44 +590,35 @@ fi
echo
# #################### [ TESTING ] ####################
# #################### [ TEST ] ####################
# Tests if script is ready to be executed
# some stuff has to be done manually
title "TESTING"
log "working directory: $RESET$BOLD$PWD"
title "TEST"
log "testing if script is ready to be exdecuted"
log "checking if script is running with root privilege"
if [[ ! $EUID -ne 0 ]]; then
error "DO NOT RUN THIS SCRIPT AS ROOT"
exit 1
fi
log "checking if sudo exists"
if ! command -v sudo &> /dev/null; then
error "cannot find sudo!"
exit 1
fi
# check partition
log "checking partition"
# check if $RESET$BOLD/media/pomp/data$GREEN exists in fstab and is mounted
log "checking if $RESET$BOLD/media/pomp/data$GREEN exists in fstab and mounted"
log "checking if OS is arch"
# log "no manjaro support"
log "checking if grub is installed and set up properly"
# check if OS is manjaro
echo
log "TESTING phase complete!"
log "TEST phase complete!"
# #################### [ MAIN ] ####################
title "MAIN"
log "installing..."
# install_essentials
log "installing essential packages..."
install_essentials
setup
# #################### [ DONE ] ####################
# print some info after installation