Files
archinstallscript/setup

787 lines
23 KiB
Bash
Executable File

#!/bin/sh
# == MY ARCH SETUP INSTALLER == #
#part1
# Restoring Terminal Defaults
printf '\033c'
echo "Welcome to Arch Linux installer script!"
# Increasing pacman's download streams to 5
sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 5/" /etc/pacman.conf
# Printing out conneted drives and asking which drive to partition and how, then mounting them.
lsblk
echo "Enter the drive you want to install the OS on: "
read drive
cfdisk $drive
echo "Enter the partition for your root: "
read rootpartition
mkfs.ext4 $rootpartition
echo "Enter the partition for your home: "
read homepartition
mkfs.ext4 $homepartition
read -p "Did you also create efi partition? [y/n]" answer
if [[ $answer = y ]] ; then
echo "Enter EFI partition: "
read efipartition
mkfs.fat -F32 $efipartition
fi
mount $rootpartition /mnt
mkdir /mnt/home
mount $homepartition /mnt/home
# Generating fstab file so the system can find our filesystem on reboot
mkdir /mnt/etc
genfstab -U -p /mnt >> /mnt/etc/fstab
# Downloading the core system utilities
pacstrap -i /mnt base
# Generating the second part of the script from the current one and then chrooting into our live installion and executing the new script.
sed '1,/^#part2$/d' `basename $0` > /mnt/arch_install2.sh
chmod +x /mnt/arch_install2.sh
arch-chroot /mnt ./arch_install2.sh
exit
#part2
# Restoring Terminal Defaults
printf '\033c'
# Downloading the kernel base developement and network packages and starting thier services
pacman -S --noconfirm sed linux linux-headers linux-firmware base-devel networkmanager wpa_supplicant wireless_tools netctl dialog
systemctl enable NetworkManager
# Increasing pacman's download streams to 5
sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf
# Enabling multilib support
echo "[multilib]" >> /etc/pacman.conf
echo "Include = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
# Setting up locales keymap and language settings
ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "KEYMAP=us" > /etc/vconsole.conf
# Setting up system name hosts bootloader and the users
echo "Hostname: "
read hostname
echo $hostname > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.1.1 $hostname.localdomain $hostname" >> /etc/hosts
mkinitcpio -P
passwd
pacman --noconfirm -Sy grub efibootmgr os-prober dosfstools mtools
echo "Enter EFI partition: "
read efipartition
mkdir /boot/EFI
mount $efipartition /boot/EFI
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
grub-mkconfig -o /boot/grub/grub.cfg
echo "Enter Swap Size: "
read swapsize
mkswap -U clear --size $swapsize --file /swapfile
swapon /swapfile
echo "/swapfile none swap defaults 0 0" >> /etc/fstab
echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
echo "Enter Username: "
read username
useradd -m -g users -G wheel $username
passwd $username
ai3_path=/home/$username/arch_install3.sh
sed '1,/^#part3$/d' arch_install2.sh > $ai3_path
chown $username:users $ai3_path
chmod +x $ai3_path
# Installing various CPU and GPU drivers
read -p "Are you in a virtual machince? [y/n]" answer
if [[ $answer = y ]] ; then
pacman -Sy virtualbox-guest-utils xf86-video-vmware
exit
fi
read -p "Do you have AMD cpu or Intel CPU? [amd/intel]" answer
if [[ $answer = amd ]] ; then
pacman --noconfirm -Sy amd-ucode
else
pacman --noconfirm -Sy intel-ucode
fi
read -p "Do you have AMD gpu or Nvidia gpu? [amd/nvidia/intel]" answer
if [[ $answer = nvidia ]] ; then
pacman --noconfirm -Sy nvidia lib32-nvidia-utils nvidia-utils
elif [[ $answer = amd ]] ; then
pacman --noconfirm -Sy mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon xf86-video-amdgpu
else
pacman --noconfirm -Sy mesa lib32-mesa vulkan-intel lib32-vulkan-intel xorg-server
fi
echo "Pre-Installation Finish Reboot now"
exit
#part3
# Setting up terminal defaults
printf '\033c'
# Installing programs
sudo pacman -Syu --noconfirm hyprland polkit xdg-desktop-portal-hyprland xdg-desktop-portal-gtk hyprpaper hypridle hyprlock hyprpolkitagent waybar git sxiv bash-completion mpv ffmpeg fzf man flameshot neovim dunst curl htop lazygit pavucontrol plocate pipewire lib32-pipewire pipewire-audio pipewire-alsa wireplumber pipewire-pulse 7zip rsync openssh starship ttf-terminus-nerd reflector ranger qutebrowser xclip udiskie alacritty rofi bluez bluez-utils blueman otf-font-awesome perl-image-exiftool grim
sudo systemctl enable bluetooth
# Generating Dotfiles
sed -n '14,27p;28q' ~/arch_install3.sh | cut -c2- > ~/.bash_profile
#######################
#####BASHPROFILE#######
#######################
##
## ~/.bash_profile
##
#
#[[ -f ~/.bashrc ]] && . ~/.bashrc
#
#if [[ "$(tty)" = "/dev/tty1" ]]; then
# pgrep hyprland || hyprland
#elif [[ "$(tty)" = "/dev/tty2" ]]; then
# pgrep dwm || startx
#fi
sed -n '33,81p;82q' ~/arch_install3.sh | cut -c2- > ~/.bashrc
#######################
########BASHRC#########
#######################
##
## ~/.bashrc
##
#
## If not running interactively, don't do anything
#[[ $- != *i* ]] && return
#PS1='[\u@\h \W]\$ '
#
##Quality of life Changes
#shopt -s autocd
#set -o vi
#
#
##XDG
#export XDG_DATA_HOME=$HOME/.local/share
#export XDG_CONFIG_HOME=$HOME/.config
#export XDG_STATE_HOME=$HOME/.local/state
#export XDG_CACHE_HOME=$HOME/.cache
#
#
##ENVAR
#export GNUPGHOME="$XDG_DATA_HOME"/gnupg
#export LESSHISTFILE="$XDG_STATE_HOME"/lesshistory
#export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
#export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
#export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default
#export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
#export PATH=~/.local/bin:~/.local/scripts:$PATH
#export EDITOR=nvim
#export TERMINAL=st
#export TERM='xterm-256color'
#
#
##Shortcuts
#alias l='ls -lAh --color=auto'
#alias ls='ls --color=auto'
#alias grep='grep --color=auto'
#alias vim='nvim'
#alias wget='wget --hsts-file="$XDG_DATA_HOME"/wget-hsts'
#
#if [[ -r /usr/share/bash-completion/bash_completion ]]; then
# . /usr/share/bash-completion/bash_completion
#fi
#
#eval "$(starship init bash)"
mkdir -p ~/.config/git
sed -n '89,93p;94q' ~/arch_install3.sh | cut -c2- > ~/.config/git/config
#######################
########GIT############
#######################
#[user]
# email = harsh13virdi@gmail.com
# name = Harsh Virdi
#[protocol "file"]
# allow = always
mkdir -p ~/.config/hypr
sed -n '103,104p;105q' ~/arch_install3.sh | cut -c2- > ~/.config/hypr/hyprpaper.conf
#######################
###HYPRPAPER.CONF######
#######################
#
#
#preload = $HOME/Pictures/Wallpapers/b-001.jpg
#wallpaper = , $HOME/Pictures/Wallpapers/b-001.jpg
#
#
sed -n '114,429p;430q' ~/arch_install3.sh | cut -c2- > ~/.config/hypr/hyprland.conf
#######################
###HYPRLAND.CONF#######
#######################
## This is an example Hyprland config file.
## Refer to the wiki for more information.
## https://wiki.hyprland.org/Configuring/
#
## Please note not all available settings / options are set here.
## For a full list, see the wiki
#
## You can split this configuration into multiple files
## Create your files separately and then link them to this file like this:
## source = ~/.config/hypr/myColors.conf
#
#
#################
#### MONITORS ###
#################
#
## See https://wiki.hyprland.org/Configuring/Monitors/
## monitor=DP-2, 2560x1080@99.94, 0x0, 1, bitdepth, 10, cm, hdr, sdrbrightness,1.2, sdrsaturation, 0.98, vrr, 1
#
#monitor = , preferred, auto, 1
#
####################
#### MY PROGRAMS ###
####################
#
## See https://wiki.hyprland.org/Configuring/Keywords/
#
## Set programs that you use
#$terminal = alacritty
#$fileManager = alacritty -e ranger
#$menu = rofi -show run
#
#
##################
#### AUTOSTART ###
##################
#
## Autostart necessary processes (like notifications daemons, status bars, etc.)
## Or execute your favorite apps at launch like this:
#
#exec-once = waybar
#exec-once = dunst
#exec-once = hyprpolkitagent
#exec-once = hyprpaper
#exec-once = udiskie
#
##############################
#### ENVIRONMENT VARIABLES ###
##############################
## See https://wiki.hyprland.org/Configuring/Environment-variables/
##env = LIBVA_DRIVER_NAME,nvidia
##env = __GLX_VENDOR_LIBRARY_NAME,nvidia
#env = XDG_CURRENT_DESKTOP,Hyprland
#env = XDG_SESSION_TYPE,wayland
#env = XDG_SESSION_DESKTOP,Hyprland
#env = XCURSOR_SIZE,24
#env = HYPRCURSOR_SIZE,24
####################
#### PERMISSIONS ###
####################
#
## See https://wiki.hyprland.org/Configuring/Permissions/
## Please note permission changes here require a Hyprland restart and are not applied on-the-fly
## for security reasons
#
## ecosystem {
## enforce_permissions = 1
## }
#
## permission = /usr/(bin|local/bin)/grim, screencopy, allow
## permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
## permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
#
#
######################
#### LOOK AND FEEL ###
######################
#
## Refer to https://wiki.hyprland.org/Configuring/Variables/
#
## https://wiki.hyprland.org/Configuring/Variables/#general
#general {
# gaps_in = 3
# gaps_out = 3
#
# border_size = 2
#
# # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
# col.inactive_border = rgba(595959aa)
#
# # Set to true enable resizing windows by clicking and dragging on borders and gaps
# resize_on_border = false
#
# # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
# allow_tearing = true
#
# layout = master
#}
#
## https://wiki.hyprland.org/Configuring/Variables/#decoration
#decoration {
# rounding = 0
# rounding_power = 2
#
# # Change transparency of focused and unfocused windows
# active_opacity = 1.0
# inactive_opacity = 1.0
#
# shadow {
# enabled = true
# range = 4
# render_power = 3
# color = rgba(1a1a1aee)
# }
#
# # https://wiki.hyprland.org/Configuring/Variables/#blur
# blur {
# enabled = true
# size = 3
# passes = 1
#
# vibrancy = 0.1696
# }
#}
#
## https://wiki.hyprland.org/Configuring/Variables/#animations
#animations {
# enabled = yes, please :)
#
# # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
#
# bezier = easeOutQuint,0.23,1,0.32,1
# bezier = easeInOutCubic,0.65,0.05,0.36,1
# bezier = linear,0,0,1,1
# bezier = almostLinear,0.5,0.5,0.75,1.0
# bezier = quick,0.15,0,0.1,1
#
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 4.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
#}
#
## Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
## "Smart gaps" / "No gaps when only"
## uncomment all if you wish to use that.
## workspace = w[tv1], gapsout:0, gapsin:0
## workspace = f[1], gapsout:0, gapsin:0
## windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
## windowrule = rounding 0, floating:0, onworkspace:w[tv1]
## windowrule = bordersize 0, floating:0, onworkspace:f[1]
## windowrule = rounding 0, floating:0, onworkspace:f[1]
#
## See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
#dwindle {
# pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
# preserve_split = true # You probably want this
#}
#
## See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
#master {
# new_status = master
#}
#
## https://wiki.hyprland.org/Configuring/Variables/#misc
#misc {
# force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
# disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
#}
#
#
##############
#### INPUT ###
##############
#
## https://wiki.hyprland.org/Configuring/Variables/#input
#input {
# kb_layout = us
# kb_variant =
# kb_model =
# kb_options =
# kb_rules =
#
# follow_mouse = 1
# accel_profile = flat
#
# sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
#
# touchpad {
# natural_scroll = false
# }
#}
#
## https://wiki.hyprland.org/Configuring/Variables/#gestures
#gestures {
# workspace_swipe = false
#}
#
## Example per-device config
## See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
#device {
# name = epic-mouse-v1
# sensitivity = -0.5
#}
#
#
####################
#### KEYBINDINGS ###
####################
#
## See https://wiki.hyprland.org/Configuring/Keywords/
#$mainMod = SUPER # Sets "Windows" key as main modifier
#
## Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
#bind = SUPERSHIFT, RETURN, exec, $terminal
#bind = $mainMod, Q, killactive,
#bind = SUPERSHIFT, Q, exit,
#bind = $mainMod, E, exec, $fileManager
#bind = $mainMod, V, togglefloating,
#bind = $mainMod, R, exec, $menu
#bind = Alt_L, F4, exec, kill -9 $(hyprctl activewindow | grep pid | tail -1 | awk '{print$2}')
## bind = $mainMod, J, togglesplit, # dwindle
#
## Window manipulation
#bind = $mainMod, j, cyclenext
#bind = $mainMod, k, cyclenext, prev
#bind = $mainMod, RETURN, swapnext
#bind = $mainMod, h, splitratio, -0.1
#bind = $mainMod, l, splitratio, 0.1
#bind = $mainMod, m, fullscreen, 0
#
## Switch workspaces with mainMod + [0-9]
#bind = $mainMod, 1, workspace, 1
#bind = $mainMod, 2, workspace, 2
#bind = $mainMod, 3, workspace, 3
#bind = $mainMod, 4, workspace, 4
#bind = $mainMod, 5, workspace, 5
#bind = $mainMod, 6, workspace, 6
#bind = $mainMod, 7, workspace, 7
#bind = $mainMod, 8, workspace, 8
#bind = $mainMod, 9, workspace, 9
#bind = $mainMod, 0, workspace, 10
#
## Move active window to a workspace with mainMod + SHIFT + [0-9]
#bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
#bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
#bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
#bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
#bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
#bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
#bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
#bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
#bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
#bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
#
## Example special workspace (scratchpad)
#bind = $mainMod, S, togglespecialworkspace, magic
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
#
## Scroll through existing workspaces with mainMod + scroll
#bind = $mainMod, mouse_down, workspace, e+1
#bind = $mainMod, mouse_up, workspace, e-1
#
## Move/resize windows with mainMod + LMB/RMB and dragging
#bindm = $mainMod, mouse:272, movewindow
#bindm = $mainMod, mouse:273, resizewindow
#
## Laptop multimedia keys for volume and LCD brightness
#bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
#bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
#bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
#bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
#bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
#bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
#
## Requires playerctl
#bindl = , XF86AudioNext, exec, playerctl next
#bindl = , XF86AudioPause, exec, playerctl play-pause
#bindl = , XF86AudioPlay, exec, playerctl play-pause
#bindl = , XF86AudioPrev, exec, playerctl previous
#
## Binds for ScriptExec
#bind = $mainMod, F, exec, alacritty -e fuzzyopen
#
###############################
#### WINDOWS AND WORKSPACES ###
###############################
#
## See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
## See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
#
## windowrules for pinning windows to specific workspaces
#windowrule = workspace 4 silent,title:Steam
#windowrule = workspace 8 silent,title:.*qutebrowser
#windowrule = workspace 6 silent,title:.*Discord
#windowrule = workspace 3 silent,title:.*Blender
#
## Ignore maximize requests from apps. You'll probably like this.
#windowrule = suppressevent maximize, class:.*
#
## Fix some dragging issues with XWayland
#windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
#
mkdir -p ~/.cache/nvim/undodir
mkdir -p ~/.config/nvim
sed -n '438,489p;490q' ~/arch_install3.sh | cut -c2- > ~/.config/nvim/init.vim
#######################
######INIT.VIM#########
#######################
#syntax enable
#
#filetype plugin on
#
#set nocompatible
#set noerrorbells
#set tabstop=4 softtabstop=4
#set shiftwidth=4
#set expandtab
#set smartindent
#set hidden
#set smartcase
#set noswapfile
#set nobackup
#set undodir=~/.cache/nvim/undodir
#set undofile
#set incsearch
#set scrolloff=8
#set showmode
#set showcmd
#set nu rnu
#set spell spelllang=en_us
#
#hi Normal guibg=NONE ctermbg=NONE
#
#"Word wrap
#set textwidth=0
#set wrapmargin=0
#set wrap
#set linebreak
#
#
#let mapleader = " "
#
#set path+=**
#set wildmenu
#
#" Clear status line when vimrc is reloaded.
#set statusline=
#
#" Status line left side.
#set statusline+=\ %F\ %M\ %Y\ %R
#
#" Use a divider to separate the left side from the right side.
#set statusline+=%=
#
#" Status line right side.
#set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%
#
#" Show the status on the second to last line.
#set laststatus=2
#
#######################
#######SCRIPTS#########
#######################
mkdir -p ~/.local/scripts
sed -n '498,518p;519q' ~/arch_install3.sh | cut -c2- > ~/.local/scripts/mountlocalvol
##!/bin/sh
#
#lsblk
#
#echo "Enter the drive you want to mount:"
#read drive
#echo "Where do you want to mount the drive?"
#read mountpath
#sudo mkdir -p $mountpath
#sudo chown $(id -u):$(id -g) $mountpath
#
##finding UUID
#UUID=$(lsblk -f | grep $drive | awk '{print $4}')
#fs=$(lsblk -f | grep $drive | awk '{print $2}')
#
#echo " " | sudo tee -a /etc/fstab
#echo "# /dev/$drive" | sudo tee -a /etc/fstab
#echo "UUID=$UUID $mountpath $fs rw,relatime 0 0" | sudo tee -a /etc/fstab
#
#sudo systemctl daemon-reload
#sudo mount -a
sed -n '522,546p;547q' ~/arch_install3.sh | cut -c2- > ~/.local/scripts/mountsmbvol
##!/bin/sh
#
#sudo pacman -Syu cifs-utils
#
#echo "Enter the url/IP of your share:"
#read ndrive
#echo "Where do you want to mount the drive?"
#read mountpath
#sudo mkdir -p $mountpath
#sudo chown $(id -u):$(id -g) $mountpath
#
##Saving credentials
#echo "Username:"
#read user
#echo "Password:"
#read pass
#echo "username=$user" | sudo tee /etc/.smbcred
#echo "password=$pass" | sudo tee -a /etc/.smbcred
#
#echo " " | sudo tee -a /etc/fstab
#echo "# Network Share" | sudo tee -a /etc/fstab
#echo "$ndrive $mountpath cifs uid=$(id -u),gid=$(id -g),credentials=/etc/.smbcred,iocharset=utf8 0 0" | sudo tee -a /etc/fstab
#
#sudo systemctl daemon-reload
#sudo mount -a
sed -n '550,562p;563q' ~/arch_install3.sh | cut -c2- > ~/.local/scripts/disableipv6
##!/bin/sh
#
#ip addr show
#
#echo "Enter your network device: "
#read netdev
#
#echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee /etc/sysctl.d/40-ipv6.conf
#echo "net.ipv6.conf.$netdev.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.d/40-ipv6.conf
#
#cat /etc/sysctl.d/40-ipv6.conf
#
#echo "Add -->sudo systemctl restart systemd-sysctl.service &<-- to your init script of liking to automatically unbind the ipv6 address assigned to your ethernet controller"
sed -n '566,568p;569q' ~/arch_install3.sh | cut -c2- > ~/.local/scripts/fuzzyopen
##! /bin/sh
#
#find ~/ | fzf | xargs -I{} xdg-open {}
sed -n '572,581p;582q' ~/arch_install3.sh | cut -c2- > ~/.local/scripts/updatewp
##!/usr/bin/env bash
#
#WALLPAPER_DIR="$HOME/Pictures/Wallpapers/"
#CURRENT_WALL=$(hyprctl hyprpaper listloaded)
#
## Get a random wallpaper that is not the current one
#WALLPAPER=$(find "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1)
#
## Apply the selected wallpaper
#hyprctl hyprpaper reload ,"$WALLPAPER"
sudo chmod +x ~/.local/scripts/mountlocalvol
sudo chmod +x ~/.local/scripts/mountsmbvol
sudo chmod +x ~/.local/scripts/disableipv6
sudo chmod +x ~/.local/scripts/fuzzyopen
sudo chmod +x ~/.local/scripts/updatewp
#######################
########WAYBAR#########
#######################
mkdir -p ~/.config/waybar
cp /etc/xdg/waybar/* ~/.config/waybar/
sed -i 's/workspaces button.focused/workspaces button.active/' ~/.config/waybar/style.css
sed -i 's/font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;/font-family: Terminess Nerd Font, FontAwesome, Roboto, Helvetica, Arial, sans-serif;/' ~/.config/waybar/style.css
sed -i 's/sway/hyprland/' ~/.config/waybar/config.jsonc
sed -i '20d' ~/.config/waybar/config.jsonc
sed -i 's/"tray",/"tray"/' ~/.config/waybar/config.jsonc
sed -i '33d' ~/.config/waybar/config.jsonc
#######################
#########ROFI##########
#######################
mkdir -p ~/.config/rofi
echo '@theme "dmenu.rasi"' > ~/.config/rofi/config.rasi
cp /usr/share/rofi/themes/dmenu.rasi ~/.config/rofi/dmenu.rasi
sed -i 's/Times New Roman 12/Terminess Nerd Font 14/' ~/.config/rofi/dmenu.rasi
sed -i 's/north/south/g' ~/.config/rofi/dmenu.rasi
#######################
######ALACRITTY########
#######################
mkdir -p ~/.config/alacritty
echo '[font]' > ~/.config/alacritty/alacritty.toml
echo 'size = 8.0' >> ~/.config/alacritty/alacritty.toml
echo '[font.normal]' >> ~/.config/alacritty/alacritty.toml
echo 'family = "Terminess Nerd Font"' >> ~/.config/alacritty/alacritty.toml
echo 'style = "Regular"' >> ~/.config/alacritty/alacritty.toml
echo '[window]' >> ~/.config/alacritty/alacritty.toml
echo 'opacity = 0.6' >> ~/.config/alacritty/alacritty.toml
#######################
######FLAMESHOT########
#######################
mkdir -p ~/.config/flameshot
echo '[General]' > ~/.config/flameshot/flameshot.ini
echo 'contrastOpacity=188' >> ~/.config/flameshot/flameshot.ini
echo 'useGrimAdapter=true' >> ~/.config/flameshot/flameshot.ini
# Downloading wallpapers
cd $HOME
mkdir -p Pictures/Wallpapers
cd Pictures/Wallpapers
for (( w=1; w<2; w++ )); do curl -LOS "https://raw.githubusercontent.com/whoisYoges/lwalpapers/PicturesOnly/wallpapers/$(printf b-%0.3d.jpg "$w")"; done
# Installing Yay
cd $HOME
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay --version
cd $HOME
rm -r yay
# Installing Aur Packages
yay -Syu xpadneo-dkms
exit