initial commit
This commit is contained in:
commit
563a61a507
11 changed files with 979 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
_/
|
21
LICENSE
Normal file
21
LICENSE
Normal 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
107
README.md
Normal 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
BIN
Windows_10.msstyles
Normal file
Binary file not shown.
46
conky/Pomky/graph.conkyrc
Normal file
46
conky/Pomky/graph.conkyrc
Normal 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
46
conky/Pomky/info.conkyrc
Normal 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
3
conky/conky-startup.sh
Executable 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
127
dconf.conf
Normal 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
628
setup.sh
Executable 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
BIN
wallpaper1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 MiB |
BIN
wallpaper2.png
Normal file
BIN
wallpaper2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 MiB |
Loading…
Add table
Add a link
Reference in a new issue