1
0
Fork 0

initial commit

This commit is contained in:
Kim, Jimin 2021-06-21 01:41:04 +09:00
commit 563a61a507
11 changed files with 979 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
_/

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 developomp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

107
README.md Normal file
View file

@ -0,0 +1,107 @@
> **!! WARNING !!**\
> **THIS PROJECT IS STILL UNDER DEVELOPMENT**
<p align="center">
<img src="https://img.shields.io/badge/License-MIT-green?style=flat-square">
</p>
<p align="center">
My <a href="https://www.archlinux.org">Arch linux</a> based 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.
# Hardware
| name | model |
| ------- | -------------------------------------- |
| Machine | LG 15U480-KP50ML Laptop (15U480-KA5MK) |
| CPU | intel i5-8250U |
| GPU | Nvidia MX 150 |
## RAM
| model | size |
| --------------------------------- | ---- |
| SK Hynix HMA81GS6AFR8N-UH (stock) | 8GB |
| Samsung M471A1K43CB1-CRC (added) | 8GB |
## Storage
| ID\* | model | Size |
| ---- | -------------------------------------- | ----- |
| 1 | SK Hynix HFS128G39TND-N210A (30002P10) | 128GB |
| 2 | Samsung SSD 860 PRO 512GB (RVM02B6Q) | 512GB |
\*arbitrary index I gave. Has no meaning.
## Partitioning
- unallocated space at the end are for overprovisioning
- no swap partition
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 |
\*index from [storage](#Storage)
## Peripherals
| peripheral | model |
| ------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| mouse | [Logitech G402 Hyperion fury](https://www.logitechg.com/en-eu/products/gaming-mice/g402-hyperion-fury-fps-gaming-mouse.html) I got from a [giveaway event](https://blog.naver.com/yjcomicsblog/221432692995) |
| headphone | [NOX-2](https://www.e-nox.co.kr/theme/s007/index/product_view01.php?wr_id=16) |
| laptop cooler | [ABKO NCORE NC500](http://ncore.co.kr/shop/product_item.php?ItId=2586312930) |
# Sources
## wallpapers
### wallpaper 1
<img alt="wallpaper 1. Cozy cafe with large window" src="./wallpaper1.png" width="75%">
- [a video](https://www.youtube.com/watch?v=QEWV6fiYaDU) from [Chillhop Music](https://www.youtube.com/channel/UCOxqgCwgOqC2lMqC5PYz_Dg)
- Artwork by [Jeff Östberg](https://jeffostberg.se)
- Animation by [Geneviève Delacroix](http://www.genevievelacroix.com)
### wallpaper 2
<img alt="wallpaper 2. An astronaut on moon looking at earth" src="./wallpaper2.png" width="75%">
- image from [wallpaperaccess](https://wallpaperaccess.com/full/2752569.png)
- the [image list](https://wallpaperaccess.com/simple-earth) I found it from
# future
1TB hard drive for backup + redundancy

BIN
Windows_10.msstyles Normal file

Binary file not shown.

46
conky/Pomky/graph.conkyrc Normal file
View file

@ -0,0 +1,46 @@
-- wlp5s0 enp3s0
conky.config = {
alignment = 'top_right',
double_buffer = true,
draw_shades = false,
gap_x = 405,
gap_y = 43,
own_window = true,
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_argb_visual = true,
own_window_argb_value = 40,
own_window_type = 'dock',
update_interval = 0.5,
use_xft = true
}
conky.text = [[
${font sans-serif:bold:size=10}CPU ${hr 2}${font sans-serif:normal:size=8}
${color grey}CPU:$color ${cpu}% ${alignr}${color grey}Frequency:${color} ${freq_g}GHz
${cpubar 10,409}${voffset -7}
${cpugraph 100,409}${voffset -5}${font Ubuntu:size=8}${color grey}
${goto 6}1${goto 25}${cpu cpu1}%${goto 109}2${goto 128}${cpu cpu2}%${goto 212}3${goto 231}${cpu cpu3}%${goto 315}4${goto 334}${cpu cpu4}%
${color}${cpubar cpu1 6,100} ${cpubar cpu2 6,100} ${cpubar cpu3 6,100} ${cpubar cpu4 6,100}${voffset -9}
${cpugraph cpu1 50,100} ${cpugraph cpu2 50,100} ${cpugraph cpu3 50,100} ${cpugraph cpu4 50,100}
${color grey}${goto 6}5${goto 25}${cpu cpu5}%${goto 109}6${goto 128}${cpu cpu6}%${goto 212}7${goto 231}${cpu cpu7}%${goto 315}8${goto 334}${cpu cpu8}%
${color}${cpubar cpu5 6,100} ${cpubar cpu6 6,100} ${cpubar cpu7 6,100} ${cpubar cpu8 6,100}${voffset -9}
${color}${cpugraph cpu5 50,100} ${cpugraph cpu6 50,100} ${cpugraph cpu7 50,100} ${cpugraph cpu8 50,100}
Processes:${color} $processes
${font sans-serif:bold:size=10}RAM ${hr 2}${font sans-serif:normal:size=8}
${color grey}RAM Usage:${color} ${memperc}%${alignr}${mem} / ${memmax} | Free: ${memeasyfree}${voffset 2}
${membar 10,409}${voffset -7}
${memgraph 100,409}
${font sans-serif:bold:size=10}NETWORK ${hr 2}${font sans-serif:normal:size=8}
${alignc}Ethernet ${color grey}(enp3s0)${color}${voffset -10}
${color grey}Up:${color} ${upspeed enp3s0} ${alignr}${color grey}Down:${color} ${downspeed enp3s0}
${upspeedgraph enp3s0 70,200 -l}${alignr}${downspeedgraph enp3s0 70,200 -l}
${alignc}WiFi ${color grey}(wlp5s0)${color}${voffset -10}
${color grey}Up:${color} ${upspeed wlp5s0} ${alignr}${color grey}Down:${color} ${downspeed wlp5s0}
${upspeedgraph wlp5s0 70,200 -l}${alignr}${downspeedgraph wlp5s0 70,200 -l}
${font sans-serif:bold:size=10}DISK ${hr 2}${font sans-serif:normal:size=8}${voffset 2}
${color grey}Read: ${color}${diskio_read}${alignr}${color grey}Write: ${color}${diskio_write}
${diskiograph_read 70,200}${alignr}${diskiograph_write 70,200}
]]

46
conky/Pomky/info.conkyrc Normal file
View file

@ -0,0 +1,46 @@
-- wlp5s0 enp3s0
conky.config = {
alignment = 'top_right',
double_buffer = true,
draw_shades = false,
gap_x = 10,
gap_y = 43,
own_window = true,
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_argb_visual = true,
own_window_argb_value = 40,
own_window_type = 'dock',
update_interval = 2.0,
use_xft = true,
minimum_width = 376,
draw_graph_borders = true
}
conky.text = [[
${font sans-serif:normal:size=8}${color grey}Conky:${color} ${conky_version}${alignr}${color grey}Kernel:${color} ${kernel}
${font Audiowide:Regular:size=40}${alignc}{P}${font}
${font sans-serif:bold:size=10}STORAGE ${hr 2}${font sans-serif:normal:size=8}
(${fs_type /}) ${color grey}root${color}${alignr}${fs_used_perc /}%
${fs_bar 6 /}
${alignc}${color grey}Used:${color} ${fs_used /} | ${color grey}Free:${color} ${fs_free /} | ${color grey}Total:${color} ${fs_size /}
(${fs_type /media/pomp/data}) ${color grey}/media/pomp/data${color}${alignr}${fs_used_perc /media/pomp/data}%
${fs_bar 6 /media/pomp/data}
${alignc}${color grey}Used:${color} ${fs_used /media/pomp/data} | ${color grey}Free:${color} ${fs_free /media/pomp/data} | ${color grey}Total:${color} ${fs_size /media/pomp/data}
${font sans-serif:bold:size=10}NETWORK ${hr 2}
${font sans-serif:normal:size=8}${alignc}${color grey}Ethernet
Today
Yesterday${color}
${voffset -26}${alignr}${execi 60 vnstat -i enp3s0 | grep "today" | awk '{print $8" "substr ($9, 1, 3)}'}
${alignr}${execi 60 vnstat -i enp3s0 | grep "yesterday" | awk '{print $8" "substr ($9, 1, 3)}'}
${alignc}${color grey}WiFi
Today
Yesterday${color}
${voffset -26}${alignr}${execi 60 vnstat -i wlp5s0 | grep "today" | awk '{print $8" "substr ($9, 1, 3)}'}
${alignr}${execi 60 vnstat -i wlp5s0 | grep "yesterday" | awk '{print $8" "substr ($9, 1, 3)}'}
]]

3
conky/conky-startup.sh Executable file
View file

@ -0,0 +1,3 @@
killall conky
conky -c "$HOME/.conky/Pomky/info.conkyrc" &
conky -c "$HOME/.conky/Pomky/graph.conkyrc" &

127
dconf.conf Normal file
View file

@ -0,0 +1,127 @@
[org/freedesktop/ibus/engine/hangul]
auto-reorder=true
hangul-keyboard='2'
hanja-keys='Control_R'
initial-input-mode='latin'
switch-keys='ISO_Level3_Shift'
word-commit=false
[org/gnome/desktop/background]
picture-options='zoom'
picture-uri='file:///media/pomp/data/google-drive/Pictures/Wallpapers/earth_moon_blurry.png'
[org/gnome/desktop/calendar]
show-weekdate=true
[org/gnome/desktop/interface]
clock-format='12h'
clock-show-seconds=true
clock-show-weekday=true
gtk-enable-primary-paste=false
gtk-im-module='ibus'
gtk-theme='Matcha-dark-sea'
show-battery-percentage=true
[org/gnome/desktop/peripherals/mouse]
accel-profile='flat'
[org/gnome/desktop/peripherals/touchpad]
click-method='fingers'
disable-while-typing=false
send-events='disabled'
two-finger-scrolling-enabled=true
[org/gnome/desktop/wm/keybindings]
close=['<Shift><Super>q']
maximize=['<Super>Up']
show-desktop=['<Super>d']
[org/gnome/file-roller/listing]
list-mode='as-folder'
name-column-width=250
show-path=false
sort-method='name'
sort-type='ascending'
[org/gnome/mutter]
dynamic-workspaces=true
edge-tiling=false
workspaces-only-on-primary=false
[org/gnome/nautilus/preferences]
default-folder-viewer='icon-view'
search-filter-time-type='last_modified'
search-view='list-view'
show-hidden-files=true
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0]
binding='<Super>t'
command='gnome-terminal'
name='Open Terminal'
[org/gnome/settings-daemon/plugins/power]
sleep-inactive-ac-type='nothing'
[org/gnome/settings-daemon/plugins/xsettings]
antialiasing='grayscale'
hinting='full'
[org/gnome/shell]
disable-user-extensions=false
favorite-apps=['org.gnome.Nautilus.desktop', 'firefox-developer-edition.desktop']
[org/gnome/shell/extensions/cpupower]
default-ac-profile=''
default-battery-profile=''
profiles=[(10, 20, false, 'Energy Saver', '3543104510'), (25, 75, false, 'Quiet', '2933733108'), (100, 100, true, 'High Performance', '1498332451')]
show-arrow-in-taskbar=false
show-icon-in-taskbar=true
taskbar-freq-unit-ghz=true
[org/gnome/shell/extensions/lockkeys]
notification-preferences='off'
[org/gnome/shell/extensions/openweather]
actual-city=0
city='37.2752,127.0095>경기도, 대한민국 >-1'
days-forecast=2
decimal-places=1
geolocation-provider='openstreetmaps'
position-in-panel='center'
pressure-unit='atm'
show-comment-in-forecast=true
show-text-in-panel=true
translate-condition=true
unit='celsius'
use-default-owm-key=true
use-symbolic-icons=true
weather-provider='openweathermap'
wind-direction=true
wind-speed-unit='kph'
[org/gnome/shell/extensions/status-area-horizontal-spacing]
hpadding=2
[org/gnome/shell/extensions/tiling-assistant]
current-tiling-mode='right'
[org/gnome/shell/extensions/touchpad-indicator]
switchmethod='gsettings'
toggle-touchpad=['<Ctrl><Super><Alt>t']
touchpad-enabled=false
[org/gnome/shell/overrides]
edge-tiling=false
[org/gtk/settings/file-chooser]
clock-format='12h'
date-format='regular'
location-mode='path-bar'
show-hidden=true
show-size-column=true
show-type-column=true
sidebar-width=167
sort-column='modified'
sort-directories-first=true
sort-order='descending'
type-format='category'

628
setup.sh Executable file
View file

@ -0,0 +1,628 @@
#!/bin/bash
# don't remove line after yay_install or pacman_install
# it will result in this syntax error: unexpected end of file
# #################### [ ESSENTIALS ] ####################
# Installs essential packages and defining important functions
# https://stackoverflow.com/a/246128/12979111
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd $SCRIPT_DIR
BOLD="\e[1m"
DIM="\e[2m"
UNDERLINE="\e[4m"
INVERT="\e[7m"
RESET="\e[0m"
RED="\e[91m" # actually light red
GREEN="\e[92m" # actually light green
YELLOW="\e[33m"
log_no_label() {
echo -e "$GREEN$BOLD$@$RESET"
}
warn_no_label() {
echo -e "$YELLOW$BOLD$@$RESET"
}
error_no_label() {
echo -e "$RED$BOLD$@$RESET"
}
log() {
echo -e " $GREEN$BOLD INFO | $@$RESET"
}
warn() {
echo -e " $YELLOW$BOLD WARNING | $@$RESET"
}
error() {
>&2 echo -e " $RED$BOLD ERROR | $@$RESET"
}
title() {
echo
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
}
# #################### [ DEFINING ESSENTIAL SETUP ] ####################
backup() {
dconf dump / > $SCRIPT_DIR/dconf.conf
# copy /home/pomp directory
# make timeshift backup
}
setup_essentials() {
:
# enable multilib, color, parallel download, and total download in /etc/pacman.conf
}
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 \
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` \
gpick `# screen color picking` \
gsmartcontrol `# SSD health check` \
hardinfo `# seeing system hardware information` \
htop `# managing processes` \
ibus-hangul `# ` \
inkscape `# vector editing tool` \
intellij-idea-community-edition `# java development` \
lldb `# debugger` \
networkmanager `# Network connection manager` \
nodejs `# ` \
npm `# javascript development` \
obs-studio `# screen recording and streaming` \
pavucontrol `# ` \
piper `# changing gaming mouse settings` \
putty `# ` \
python-pip `# python package management` \
ranger `# CLI File manager` \
sqlitebrowser `# ` \
steam `# ` \
steam-native-runtime `# ` \
sudo `# To run commands as root` \
tmux `# running task independent of session` \
transmission-gtk `# ` \
vim `# the good text editor` \
vlc `# audio & video playback` \
vnstat `# network traffic statistics (for conky)` \
wine `# ` \
wine-gecko `# ` \
wine-mono `# ` \
winetricks `# ` \
wireshark `# ` \
yarn `# ` \
}
# #################### [ DEFINING SETUP ] ####################
# Define instructions on how to setup applications & stuff
# Assumes all essential packages are installed already (git, vim, etc.)
setup_gnome() {
pacman_install \
baobab `# Disk usage analysis` \
cheese `# Capturing photo / video with webcam` \
dconf-editor `# GUI for dconf` \
eog `# image viewer` \
evince `# document viewer` \
file-roller `# compression and decompression` \
gedit `# text editing when nautilus is on admin mode` \
gnome-calculator `# Quick calculation` \
gnome-characters `# Search for emojis, special characters, and symbols` \
gnome-clocks `# For multiple clocks for different time zones` \
gnome-control-center `# Essential settings` \
gnome-disk-utility `# Disk management` \
gnome-font-viewer `# Managing fonts` \
gnome-keyring `# Store passwords and keys` \
gnome-logs `# GUI for system journal` \
gnome-screenshot `# Quick screenshot` \
gnome-shell `# Graphical interface` \
gnome-shell-extensions `# Extensions for gnome` \
gnome-system-monitor `# Process management` \
gnome-terminal `# Terminal emulation` \
gnome-tweaks `# Advanced settings` \
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` \
# install gnome extensions
echo "installing gnome extensions"
extension_ids=(
36 # lock-keys
131 # touchpad-indicator
355 # status-area-horizontal-spacing
657 # shelltile
750 # openweather
800 # remove-dropdown-arrows
841 # freon
906 # sound-output-device-chooser
945 # cpu-power-manager
2741 # remove-alttab-delay-v2
2890 # tray-icons-reloaded
4000 # babar
)
echo "Installing:"
for extension_id in "${extension_ids[@]}"; do
echo "- https://extensions.gnome.org/extension/$extension_id"
gnome-shell-extension-installer --yes $extension_id
done
echo "Restarting gnome shell"
killall -3 gnome-shell
}
setup_discord() {
pacman_install discord
yay_install \
betterdiscord-installer `# installer for betterdiscord` \
discord-overlay-git `# overlay for discord` \
# BD plugins
# https://betterdiscord.app/plugin/Avatar%20Hover
# https://betterdiscord.app/plugin/BadgesEverywhere
# https://betterdiscord.app/plugin/BetterCodeblocks
# https://betterdiscord.app/plugin/BetterNsfwTag
# https://betterdiscord.app/plugin/BetterSearchPage
# https://betterdiscord.app/plugin/CallTimeCounter
# https://betterdiscord.app/plugin/CharCounter
# https://betterdiscord.app/plugin/CompleteTimestamps
# https://betterdiscord.app/plugin/Copier
# https://betterdiscord.app/plugin/CopyRawMessage
# https://betterdiscord.app/plugin/CreationDate
# https://betterdiscord.app/plugin/DoNotTrack
# https://betterdiscord.app/plugin/EmoteReplacer
# https://betterdiscord.app/plugin/FreeEmojis
# https://betterdiscord.app/plugin/GoogleTranslateOption
# https://betterdiscord.app/plugin/GrammarCorrect
# https://betterdiscord.app/plugin/GuildProfile
# https://betterdiscord.app/plugin/ImageUtilities
# https://betterdiscord.app/plugin/InvisibleTyping
# https://betterdiscord.app/plugin/JoinedAtDate
# https://betterdiscord.app/plugin/LastMessageDate
# https://betterdiscord.app/plugin/Link-Profile-Picture
# https://betterdiscord.app/plugin/MemberCount
# https://betterdiscord.app/plugin/PermissionsViewer
# https://betterdiscord.app/plugin/PlatformIndicators
# https://betterdiscord.app/plugin/QuickMention
# https://betterdiscord.app/plugin/RedditMentions
# https://betterdiscord.app/plugin/RevealAllSpoilersOption
# https://betterdiscord.app/plugin/SecretRingTone
# https://betterdiscord.app/plugin/SendLargeMessages
# https://betterdiscord.app/plugin/ServerCounter
# https://betterdiscord.app/plugin/ShowAllActivities
# https://betterdiscord.app/plugin/ShowConnections
# https://betterdiscord.app/plugin/ShowHiddenChannels
# https://betterdiscord.app/plugin/SpellCheck
# https://betterdiscord.app/plugin/StaffTag
# https://betterdiscord.app/plugin/SuppressReplyMentions
# https://betterdiscord.app/plugin/Typing%20Users%20Avatars
# https://betterdiscord.app/plugin/TypingIndicator
# https://betterdiscord.app/plugin/UserDetails
}
setup_cpu_undervolting() {
# Undervolting for intel CPU
# https://wiki.archlinux.org/index.php/Undervolting_CPU
pacman_install intel-undervolt
config_file=/etc/intel-undervolt.conf
# create backup in case anything goes wrong
sudo cp $config_file $config_file.bak
# Explanation:
# for lines that are not comments (lines that do not start with a hash)
# search for "undervolt <number> '<field>' <original value><comment>"
# and replaces with "undervolt <number> '<field>' -100 <comment>"
# This method does not preserve the space between the value and the comment.
# So this:
# value # space between comment and value: 2
# becomes this:
# value # space between comment and value: 1
sudo sed -i -e "/^[^#]/s/\(undervolt [0-9]* 'CPU'\) .*\(#.*\)/\1 -100 \2/" $config_file
sudo sed -i -e "/^[^#]/s/\(undervolt [0-9]* 'CPU Cache'\) .*\(#.*\)/\1 -100 \2/" $config_file
sudo intel-undervolt apply
sudo systemctl enable intel-undervolt
}
setup_font() {
echo "installing fonts"
# path to temporarily save font related files
fonts_directory="./fonts"
# fonts to download
font_names=(
"Audiowide"
"Comfortaa"
"Nanum Gothic"
"Source Code Pro"
)
# create fonts directory if it does not exist
if [ ! -d "$fonts_directory" ]; then
mkdir "$fonts_directory"
fi
# download and unzip font files if they're not downloaded already
for font_name in "${font_names[@]}"; do
zip_path="$fonts_directory/$font_name.zip"
# download and unzip if either zip file or unzipped directory exists
if [ ! -f "$zip_path" ] && [ ! -d "$fonts_directory/$font_name" ]; then
wget -O "$zip_path" "https://fonts.google.com/download?family=$font_name" # download zip file
unzip "$zip_path" -d "$fonts_directory/$font_name" # unzip file
rm "$zip_path" # remove zip file
fi
done
font_install_dir="$HOME/.local/share/fonts"
# create local fonts directory if it does not exist already
if [ ! -d "$font_install_dir" ]; then
mkdir "$font_install_dir"
fi
# "install" all fonts
find "$fonts_directory" -type f -name "*.ttf" | while read ttf_file_path ; do
mv -f "$ttf_file_path" "$font_install_dir/${ttf_file_path##*/}"
done
# regenerate font cache
fc-cache -vf
# cleanup
rm -rf $fonts_directory
pacman_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() {
:
sudo usermod -a -G wireshark $USER
}
setup_middleclickpaste() {
:
# make it autostart
}
setup_node() {
:
# 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
# editors location for unity hub (`/media/pomp/data/programs/Unity Hub/Unity Editors`)
# vscode setup
}
setup_virtualbox() {
# https://wiki.archlinux.org/title/VirtualBox
pacman_install \
virtualbox `# OS emulation` \
virtualbox-host-modules-arch `# ` \
virtualbox-guest-iso `# ` \
yay_install virtualbox-ext-oracle
sudo vboxreload
sudo modprobe vboxdrv
}
setup_optimus_manager() {
# Not using power switching
# 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` \
optimus-manager `# https://github.com/Askannz/optimus-manager` \
optimus-manager-qt `# https://github.com/Shatur/optimus-manager-qt` \
# launch on startup
# nvidia as default
# Performance: 265, 750
# Energy Saver: -155, -365
}
setup_minecraft() {
yay_install \
minecraft-launcher `# ` \
worldpainter `# ` \
minecraft-overviewer `# ` \
# mcaselector (/usr/lib/jvm/java-15-openjdk/bin/java --module-path /media/pomp/data/master_folder/programming/java/javafx-sdk-16/lib --add-modules ALL-MODULE-PATH -jar /usr/share/java/mcaselector.jar)
}
setup_user_directories() {
pacman_install xdg-user-dirs
# edit `~/.config/user-dirs.dirs`:
# XDG_DESKTOP_DIR="$HOME/Desktop"
# XDG_DOWNLOAD_DIR="/media/pomp/data/Downloads"
# XDG_TEMPLATES_DIR="$HOME/Templates"
# XDG_PUBLICSHARE_DIR="$HOME/Public"
# XDG_DOCUMENTS_DIR="/media/pomp/data/google-drive/Documents"
# XDG_MUSIC_DIR="/media/pomp/data/google-drive/Music"
# XDG_PICTURES_DIR="/media/pomp/data/google-drive/Pictures"
# XDG_VIDEOS_DIR="/media/pomp/data/Videos"
}
setup_wine() {
pacman_install \
wine \
# - wine-mono
# - winetricks
# - wine-gecko
# - `WINEARCH=win32 WINEPREFIX=~/.win32/ winecfg`
# - `winetricks allfonts`
# - `winetricks settings fontsmooth=rgb`
}
setup_nvidia() {
# https://wiki.archlinux.org/title/NVIDIA
# https://wiki.archlinux.org/title/Vulkan
pacman_install \
cuda `# ` \
cuda-tools `# ` \
lib32-nvidia-utils `# ` \
lib32-vulkan-icd-loader `# ` \
nvidia `# ` \
nvidia-settings `# ` \
nvidia-utils `# ` \
vulkan-icd-loader `# ` \
}
setup_steam() {
#https://wiki.archlinux.org/title/Steam
pacman_install steam
# change steam library directory (/media/pomp/data/programs/SteamLibrary)
# enable steam proton play
}
setup_conky() {
pacman_install \
conky `# ` \
vnstat `# ` \
# enable on startup
# sudo systemctl enable vnstat
# sudo systemctl start vnstat
}
setup_dconf() {
# todo: freon GPU, decimal, and unit
# must be done after install to make sure configs are not overwritten
dconf load / < $SCRIPT_DIR/dconf.conf
}
setup_local() {
# setup for applications in second drive
# add to application menu
# office 2019 wine
if [[ -d /media/pomp/data/programs/dnSpy-net-win32 ]]; then
echo "dnspy"
fi
if [[ -d /media/pomp/data/programs/amidst ]]; then
echo "amidst"
fi
if [[ -d /media/pomp/data/programs/mcaselector ]]; then
echo "mcaselector"
fi
if [[ -d /media/pomp/data/programs/mineways ]]; then
echo "mineways"
fi
if [[ -d /media/pomp/data/programs/tor-browser ]]; then
echo "tor"
fi
}
setup_plymouth() {
# must be done after optimus
# https://wiki.archlinux.org/title/plymouth
yay_install \
plymouth `# ` \
gdm-plymouth-prime `# ` \
plymouth-theme-arch-logo `# ` \
}
setup_grub_theme() {
# only show when esc is pressed
# check how manjaro did it
pacman_install grub-theme-vimix
}
setup_kdenlive() {
:
# Use appimage package
# no kde dependencies
}
# #################### [ START ] ####################
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
# https://stackoverflow.com/a/1885534/12979111
read -p "Press (y) to continue. Press (any other key) to exit. " -n 1 -r
if [[ $REPLY =~ ^[^Yy]$ ]]; then
echo
log "canceled"
exit
fi
echo
# #################### [ TESTING ] ####################
# Tests if script is ready to be executed
title "TESTING"
log "working directory: $RESET$BOLD$PWD"
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
# test if manual stuff has been done
# check if /media/pomp/data exists
# test if user exists
# test if OS is manjaro and not arch
echo
log "TESTING phase complete!"
# #################### [ MAIN ] ####################
# this is not a hands-free operation blah blah
run_install() {
:
}
pre_installation() {
echo "do manual stuff (partitioning, bootloader, install sudo)"
echo "warning: not fully automatic. keep monitoring"
echo "grub"
# fstab add /media/pomp/data
}
post_install() {
echo "login firefox & vscode"
echo "restore onetab"
echo "reboot using poweroff"
echo "gnome korean keyboard"
echo "sign into vscode"
echo "EDITOR=vim sudo visudo"
echo "Defaults pwfeedback"
}
# install_essentials
title "DONE"

BIN
wallpaper1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

BIN
wallpaper2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB