Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- grub_disk=/dev/sda
- boot_diskpart=${grub_disk}1
- root_diskpart=${grub_disk}2
- swap_diskpart=${grub_disk}3
- home_diskpart=${grub_disk}4
- #swap_filesize=4G
- #swap_filename=/swapfile
- mylogin=username
- myhostname=${mylogin}-pc
- mypass=password
- rootpass=$mypass
- myvncpass=password
- autologin=0
- packages+=" openssh"
- packages+=" memtest86+ os-prober"
- packages+=" lightdm lightdm-gtk3-greeter"
- packages+=" xorg-server xorg-xinit xorg-server-utils xorg-utils xcursor-themes xf86-video-vesa xf86-video-fbdev"
- packages+=" xf86-input-synaptics network-manager-applet"
- packages+=" xf86-video-intel"
- #packages+=" xf86-video-nouveau"
- #packages+=" xf86-video-ati"
- packages+=" xcursor-vanilla-dmz"
- packages+=" i3 dmenu lxtask"
- packages+=" ntp"
- packages+=" samba"
- packages+=" pulseaudio pulseaudio-alsa alsa-utils pavucontrol"
- packages+=" ntfs-3g dosfstools fuse-exfat exfat-utils ntfsprogs"
- packages+=" wget unrar unzip p7zip unace lrzip"
- packages+=" htop lsof"
- packages+=" file-roller gksu viewnior pinta librsvg fbreader evince chromium vlc"
- packages+=" thunar-archive-plugin thunar-media-tags-plugin thunar-volman ffmpegthumbnailer tumbler gvfs gvfs-smb polkit-gnome gamin"
- packages+=" terminator scite transmission-gtk"
- packages+=" x11vnc tk"
- packages+=" numlockx ethtool hdparm xautolock"
- packages+=" cups system-config-printer"
- #packages+=" foomatic-db-nonfree"
- #packages+=" splix"
- #packages+=" gutenprint"
- #packages+=" hplip"
- packages+=" ttf-dejavu ttf-sazanami"
- packages+=" emacs emacs-php-mode emacs-lua-mode emacs-haskell-mode"
- packages+=" mercurial git svn cvs bzr premake cmake scons"
- packages+=" python chicken swi-prolog"
- #packages+=" texlive-most"
- #packages+=" erlang ocaml ghc lua sbt scala racket apache-ant sbcl bigloo boost clang"
- #packages+=" kdenetwork-krdc libvncserver kdepimlibs"
- #packages+=" libreoffice-writer libreoffice-en-GB"
- #packages+=" lighttpd fcgi php php-cgi"
- #packages+=" mariadb"
- #packages+=" virtualbox linux-headers qt dkms virtualbox-host-dkms virtualbox-ext-vnc"
- #packages+=" python2-nltk nltk-data python2-beautifulsoup4 python2-chardet python2-lxml"
- #packages+=" winetricks zenity wine mpg123 wmctrl lib32-ncurses"
- #packages+=" mythtv"
- function setup_apps() {
- setup_ssh
- setup_ntp
- setup_lightdm
- setup_xserver
- setup_i3
- setup_samba
- setup_scite
- setup_terminator
- setup_whitecursor
- setup_gtk
- setup_mousepad
- setup_power
- setup_swiprolog
- setup_pulseaudio
- setup_x11vnc
- setup_cups
- #setup_lighttpd
- #setup_mysql
- #setup_virtualbox
- #add_other_mount "/dev/sdb1" "/mnt/c" "ntfs-3g"
- #symlink_caches_to_tmp()
- }
- ###################################################
- err_report() {
- echo "Error on line $1"
- }
- trap 'err_report $LINENO' ERR
- set -e
- installer=$(dirname $0)/$(basename $0)
- HOME=/home/$mylogin
- function get_uuid() {
- echo `blkid -s UUID $1 | sed -n 's/.*UUID=\"\([^\"]*\)\".*/\1/p'`
- }
- function get_escaped() {
- echo `echo "$1" | sed 's/\//\\\\\//g'`
- }
- function create_swap_file() {
- file=$1
- size=$2
- fallocate -l $size $file
- #dd if=/dev/zero of=$name bs=1M count=$size
- chmod 600 $file
- mkswap $file
- }
- function os() {
- #format/mount root
- mkfs.ext4 $root_diskpart
- mount $root_diskpart /mnt
- mkdir -p /mnt/home
- #format/mount boot
- if [ $boot_diskpart ]; then
- mkfs.ext4 $boot_diskpart
- mkdir -p /mnt/boot
- mount $boot_diskpart /mnt/boot
- fi
- #format/mount home
- if [ $home_diskpart ]; then
- mkfs.ext4 $home_diskpart
- mount $home_diskpart /mnt/home
- fi
- #pacstrap
- pacstrap /mnt base base-devel
- #fstab
- genfstab -U /mnt > /mnt/etc/fstab
- #swap
- if [ $swap_filename ] && [ $swap_filesize ]; then
- create_swap_file /mnt${swap_filename} $swap_filesize
- swapon /mnt${swap_filename}
- elif [ $swap_diskpart ]; then
- mkswap $swap_diskpart
- swapon $swap_diskpart
- fi
- #go to stage 2
- start_os2
- #swap off
- if [ $swap_filename ] && [ $swap_filesize ]; then
- swapoff /mnt${swap_filename}
- elif [ $swap_diskpart ]; then
- swapoff $swap_diskpart
- fi
- #unmount
- umount -R /mnt
- #go to stage 3
- reboot
- }
- function start_os2() {
- cp -f $installer /mnt
- arch-chroot /mnt /bin/bash -c "bash /$(basename $0) os2"
- }
- function add_fstab_swap_file() {
- filename=$1
- echo -e "\n# \n/swapfile none swap defaults 0 0" >> /etc/fstab
- }
- function add_fstab_swap_part() {
- part=$1
- echo -e "\n# $part\nUUID=$(get_uuid $part) none swap defaults 0 0" >> /etc/fstab
- }
- function add_grub_swap_file() {
- filename=$1
- swap_diskpart2=`df -P $filename | tail -1 | cut -d' ' -f 1`
- resoff=`filefrag -v /swapfile | awk 'FNR == 4 {print $4}' | sed 's/\..//'`
- swapuuid=`get_uuid $swap_diskpart2`
- sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\"\)\([^\"]*\"\)/\1resume=UUID=$swapuuid resume_offset=$resoff \2/g" /etc/default/grub
- }
- function add_grub_swap_part() {
- swap_diskpart2=$1
- #escaped_swap_diskpart=$(get_escaped $swap_diskpart2)
- swapuuid=`get_uuid $swap_diskpart2`
- sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\"\)\([^\"]*\"\)/\1resume=UUID=$swapuuid \2/g" /etc/default/grub
- }
- function os2() {
- #install packages
- #pacman-key --refresh-keys
- pacman -S --needed --noconfirm $packages networkmanager grub-bios
- #fstab swapfile
- if [ $swap_filename ] && [ $swap_filesize ]; then
- add_fstab_swap_file $swap_filename
- elif [ $swap_diskpart ]; then
- add_fstab_swap_part $swap_diskpart
- fi
- #swapiness
- #if [ $swap_diskpart ] || ([ $swap_filename ] && [ $swap_filesize ]); then
- # sed -i "s/#\(vm.swappiness = \).*/\10/g" /etc/sysctl.conf
- #fi
- #fstab tmp ramdisk
- echo -e "\n# ramdisk\n#none /tmp tmpfs defaults,size=2G 0 0" >> /etc/fstab
- #locale
- ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime
- sed -i "s/#\(en_AU.*\)/\1/g" /etc/locale.gen
- sed -i "s/#\(en_GB.*\)/\1/g" /etc/locale.gen
- sed -i "s/#\(en_US.*\)/\1/g" /etc/locale.gen
- echo -e 'LANG="en_AU.UTF-8"\nLANGUAGE="en_AU.UTF-8:en_US.UTF-8:en"\nLC_COLLATE="C"\nLC_TIME="en_AU.UTF-8"' > /etc/locale.conf
- echo 'KEYMAP=us' > /etc/vconsole.conf
- locale-gen en_AU.UTF-8
- #mkinitcpio
- sed -i 's/\(HOOKS=\).*/\1"base udev keymap autodetect modconf block resume filesystems keyboard fsck" /g' /etc/mkinitcpio.conf
- mkinitcpio -p linux
- #grub
- if [ $grub_disk ]; then
- grub-install $grub_disk
- sed -i "s/\(GRUB_DEFAULT=\)0/\1saved/g" /etc/default/grub
- sed -i "s/\(GRUB_TIMEOUT=\)5/\12/g" /etc/default/grub
- #echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
- echo -e '\n#quick fix for broken grub.cfg gen\nGRUB_DISABLE_SUBMENU=y' >> /etc/default/grub
- rootuuid=`get_uuid $root_diskpart`
- sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\).*/\1\"linux \/boot\/vmlinuz-linux root=UUID=$rootuuid rw quiet splash\"/g" /etc/default/grub
- if [ $swap_filename ] && [ $swap_filesize ]; then
- add_grub_swap_file $swap_filename
- elif [ $swap_diskpart ]; then
- add_grub_swap_part $swap_diskpart
- fi
- #
- #add_grub_custom "/dev/sdb1" "Windows"
- #
- grub-mkconfig -o /boot/grub/grub.cfg
- #mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old
- #mv /boot/grub/grub.cfg.new /boot/grub/grub.cfg
- fi
- #
- echo $myhostname > /etc/hostname
- sed -i '/^hosts:/ s/$/ wins/' /etc/nsswitch.conf
- echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf
- #next startup auto login as root
- mkdir -p /etc/systemd/system/getty@tty1.service.d
- echo -e '[Service]\nExecStart=\nExecStart=-/usr/bin/agetty --autologin root --noclear %I 38400 linux' > /etc/systemd/system/getty@tty1.service.d/autologin.conf
- #set root statup to run next install stage
- touch /root/.bash_profile
- cp /root/.bash_profile /root/.bash_profile.bak
- echo "bash $installer os3" >> /root/.bash_profile
- #return to stage 1
- exit
- }
- function os3() {
- #restore original root bash profile
- mv -f /root/.bash_profile.bak /root/.bash_profile
- #network manager
- systemctl enable NetworkManager
- #root
- echo root:$rootpass | chpasswd
- #groups
- groupadd admin
- #user
- useradd -m -U -G admin,users,storage,lp,optical,audio,video,power,games -s /bin/bash $mylogin
- echo $mylogin:$mypass | chpasswd
- #
- cp -f /etc/skel/.bash_profile $HOME/
- #sudoers
- echo "%admin ALL=(ALL) ALL" >> /etc/sudoers
- echo "#Cmnd_Alias MY_CMDS=/usr/sbin/grub-reboot,/usr/sbin/grub-set-default" >> /etc/sudoers
- echo "#$mylogin ALL=(ALL) NOPASSWD:MY_CMDS" >> /etc/sudoers
- #
- chown -R $mylogin $HOME
- #disable auto login root
- if [ $autologin -eq 1 ]; then
- #and change it to the user
- sed -i "s/root/$mylogin/g" /etc/systemd/system/getty@tty1.service.d/autologin.conf
- else
- rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
- fi
- #
- setup_apps
- #move installer to user's home
- chown $mylogin $installer
- mv $installer $HOME/
- #done
- reboot
- }
- function setup_scripts() {
- #sleep scripts
- echo -e "#!/bin/bash\nsystemctl suspend" > /usr/local/bin/suspend.sh
- echo -e "#!/bin/bash\nsystemctl hibernate" > /usr/local/bin/hibernate.sh
- echo -e "#!/bin/bash\nsystemctl hybrid-sleep" > /usr/local/bin/sleep.sh
- chmod o+rx /usr/local/bin/suspend.sh /usr/local/bin/hibernate.sh /usr/local/bin/sleep.sh
- #reboot to win
- echo -e "#!/bin/bash\nsudo grub-set-default 0 && sudo grub-reboot 2 && reboot" > /usr/local/bin/reboot_to_win.sh
- chmod o+rx /usr/local/bin/reboot_to_win.sh
- }
- function setup_ntp() {
- systemctl enable ntpd.service
- #ntpd -qg
- #hwclock -w
- }
- function setup_cups() {
- systemctl enable org.cups.cupsd.service
- }
- function add_other_mount() {
- part=$1
- mounting=$2
- fsys=$3
- u=`get_uuid $part`
- useuid=`id -u $mylogin`
- usegid=`id -g $mylogin`
- echo -e "\nUUID=$u $mounting $fsys relatime,uid=$useuid,gid=$usegid,umask=000,nofail 0 0" >> /etc/fstab
- mkdir -p /mnt/$mounting
- #mount $part /mnt/$mounting
- }
- function add_grub_custom() {
- part=$1
- title=$2
- u=`get_uuid $part`
- old=`echo $part | sed 's/[/a-zA-Z]\+\([0-9]\+\)/\1/'`
- echo "
- menuentry \"$title\" {
- search --fs-uuid --no-floppy --set=root $u
- #set root=(hd0,$old)
- chainloader +1
- }" >> /etc/grub.d/40_custom;
- }
- function setup_mysql() {
- systemctl start mysqld
- systemctl enable mysqld
- mysql --user=root -e "UPDATE mysql.user SET Password=PASSWORD('pass') WHERE User='root';\nDELETE FROM mysql.user WHERE User='';\nDELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\nDROP DATABASE test;\nDELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';\nFLUSH PRIVILEGES;\nGRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'pass' WITH GRANT OPTION;"
- mysql_upgrade -u root -ppass
- mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -ppass mysql
- sed -i 's/;\(extension=mysql.so\)/\1/g' /etc/php/php.ini
- }
- function setup_mythtv() {
- mysql -u root -ppass -e "CREATE USER 'mythtv'@'localhost' IDENTIFIED BY 'mythtv';"
- mysql -u root -ppass -e "create database mythconverg;"
- mysql -u root -ppass -e "GRANT ALL PRIVILEGES ON mythconverg.* TO mythtv@localhost IDENTIFIED BY 'mythtv';"
- #mythtv-setup
- }
- function setup_lighttpd() {
- systemctl enable lighttpd
- mkdir -p /etc/lighttpd/conf.d/
- echo -e 'server.modules += ("mod_fastcgi")
- index-file.names += ("index.php")
- fastcgi.server = (
- ".php" => (
- "localhost" => (
- "bin-path" => "/usr/bin/php-cgi",
- "socket" => "/tmp/php-fastcgi.sock",
- "broken-scriptfilename" => "enable",
- "max-procs" => 4,
- "bin-environment" => (
- "PHP_FCGI_CHILDREN" => "1"
- )
- )
- )
- )' > /etc/lighttpd/conf.d/fastcgi.conf
- echo -e '\ninclude "conf.d/fastcgi.conf"\n' >> /etc/lighttpd/lighttpd.conf
- echo '<?php phpinfo(); ?>' > /srv/http/index.php
- chmod 755 /srv/http/index.php
- }
- function setup_virtualbox() {
- systemctl start dkms
- systemctl enable dkms
- dkms install vboxhost/$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')
- dkms autoinstall
- usermod -a -G vboxusers $mylogin
- }
- function add_samba_share() {
- if [ "$2" = true ] ; then
- commented=''
- else
- commented='#'
- fi
- echo "
- [$(basename $1)]
- path = $1
- guest ok = yes
- guest only = yes
- guest account = nobody
- ${commented}writeable = yes
- browsable = yes
- ${commented}create mask = 777
- ${commented}force directory mode = 777" >> /etc/samba/smb.conf
- }
- function setup_samba() {
- systemctl enable smbd
- systemctl enable nmbd
- cp -f /etc/samba/smb.conf.default /etc/samba/smb.conf
- sed -i 's/MYGROUP/WORKGROUP/g' /etc/samba/smb.conf
- #sed -i 's/security = user/security = share/g' /etc/samba/smb.conf
- sed -i 's/;\( guest account = \)pcguest/\1nobody/g' /etc/samba/smb.conf
- sed -i "/^\[global\]$/ a\ map to guest = Bad User" /etc/samba/smb.conf
- }
- function setup_ethtool() {
- for x in `ip link | awk '(NR % 2) && $2!="lo:" { print substr($2,0,length($2)-1) }'`; do
- echo 'todo';
- #ethtool --offload $x tx on;
- #ethtool --show-offload $x;
- done
- }
- function setup_pulseaudio() {
- mkdir -p $HOME/.config/pulse
- cp /etc/pulse/default.pa $HOME/.config/pulse/
- echo -e "\n#\n#set-card-profile 0 output:analog-stereo\n#set-default-sink 1" >> $HOME/.config/pulse/default.pa
- echo -e "
- ### Load analog device
- #load-module module-alsa-sink device=hw:0,0
- #load-module module-combine-sink sink_name=combined
- #set-default-sink combined" >> $HOME/.config/pulse/default.pa
- }
- function setup_diskmanagment() {
- hdspindown_min=120
- hdspindown_val=($hdspindown_min * 60)/5
- #systemctl enable laptop-mode.service
- mkdir -p /etc/udev/rules.d
- echo 'ACTION=="add", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 254 /dev/$kernel"' >> /etc/udev/rules.d/75-hdparm.rules
- echo "ACTION==\"add\", KERNEL==\"sd[a-z]\", ATTR{queue/rotational}==\"1\", RUN+=\"/sbin/hdparm -S 254 /dev/\$kernel\"" >> /etc/udev/rules.d/75-hdparm.rules
- mkdir -p /etc/pm/sleep.d
- echo '
- if [ -n "$1" ] && ([ "$1" = "resume" ] || [ "$1" = "thaw" ]); then
- hdparm -B 254 /dev/your-hard-drive > /dev/null
- fi' >> /etc/pm/sleep.d/50-hdparm_pm
- chmod +x /etc/pm/sleep.d/50-hdparm_pm
- }
- function setup_ssh() {
- systemctl enable sshd
- }
- function setup_lightdm() {
- systemctl enable lightdm
- groupadd autologin
- usermod -a -G autologin $mylogin
- sed -i "/^\[SeatDefaults\]$/ a\autologin-user=$mylogin" /etc/lightdm/lightdm.conf
- sed -i "/^\[SeatDefaults\]$/ a\autologin-user-timeout=0" /etc/lightdm/lightdm.conf
- }
- function setup_xserver() {
- cp -f /etc/skel/.xinitrc $HOME/
- echo '#[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx' >> $HOME/.bash_profile
- #dconf write /org/gnome/desktop/input-sources/xkb-options "['terminate:ctrl_alt_bksp']"
- }
- function setup_scite() {
- echo 'load.on.activate=1
- quit.on.close.last=1
- check.if.already.open=1
- line.margin.visible=1
- line.margin.width=1+
- caret.line.back=#6BC9A8
- caret.line.back.alpha=55
- save.session=1
- save.recent=1
- save.find=1
- wrap=1
- output.wrap=1
- wrap.style=1
- selection.back=#86C1EB
- selection.alpha= 88
- highlight.current.word=1
- highlight.current.word.colour=#2635DE
- highlight.current.word.by.style=1
- indicators.alpha=100
- indicators.under=1
- title.full.path=1
- toolbar.visible=1
- statusbar.visible=1
- style.*.34=fore:#000000,back:#A1A4ED,bold
- style.*.35=fore:#000000,back:#A1A4ED,bold
- open.filter=$(all.files)
- file.patterns.lisp=$(file.patterns.lisp);.emacs;*.el' >> $HOME/.SciTEUser.properties
- echo -e "#!/bin/bash\ngksudo -u $USER \"scite -check.if.already.open=0\"" > /usr/local/bin/sciteroot.sh
- chmod o+rx /usr/local/bin/sciteroot.sh
- }
- function setup_terminator() {
- mkdir -p $HOME/.config/terminator
- echo -e "[global_config]\n inactive_color_offset = 1.0\n[profiles]\n [[default]]\n show_titlebar = False\n scrollbar_position = disabled" > $HOME/.config/terminator/config
- echo -e "[Desktop Entry]\nIcon=terminator\nType=X-XFCE-Helper\nName=Terminator\nX-XFCE-Binaries=terminator;\nX-XFCE-Category=TerminalEmulator\nX-XFCE-Commands=%B;\nX-XFCE-CommandsWithParameter=%B -x %s;" > /usr/share/xfce4/helpers/terminator.desktop
- }
- function setup_x11vnc() {
- mkdir $HOME/.x11vnc
- x11vnc -storepasswd $myvncpass $HOME/.x11vnc/passwd
- echo -e "#!/bin/bash\nx11vnc -many -display :0 -rfbauth ~/.x11vnc/passwd -gui tray -o ~/.x11vnc.log.%VNCDISPLAY" > /usr/local/bin/x11vnc_start.sh
- chmod o+rx /usr/local/bin/x11vnc_start.sh
- }
- function setup_whitecursor() {
- mkdir -p $HOME/.icons
- ln -sf /usr/share/icons/Vanilla-DMZ/ $HOME/.icons/default
- }
- function setup_gtk() {
- mkdir -p $HOME/Documents $HOME/Downloads $HOME/Pictures $HOME/Desktop
- mkdir -p $HOME/.config/gtk-3.0
- echo 'gtk-recent-files-max-age=0' >> $HOME/.gtkrc-2.0
- echo 'gtk-recent-files-max-age=0' >> $HOME/.gtkrc-3.0
- echo -e '[Settings]\ngtk-recent-files-max-age=0\ngtk-recent-files-limit=0' > $HOME/.config/gtk-3.0/settings.ini
- echo "file:///$HOME/Documents Documents" >> $HOME/.gtk-bookmarks
- echo "file:///$HOME/Downloads Downloads" >> $HOME/.gtk-bookmarks
- echo "file:///$HOME/Pictures Pictures" >> $HOME/.gtk-bookmarks
- }
- function setup_mousepad() {
- cp -f /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/
- sed -i '/TapButton3/ a\ Option "VertEdgeScroll" "on"\n Option "HorizEdgeScroll" "on"' /etc/X11/xorg.conf.d/50-synaptics.conf
- }
- function setup_power() {
- sed 's/#\(HandlePowerKey=\).*/\1suspend/g' /etc/systemd/logind.conf
- sed 's/#\(HandleLidSwitch=\).*/\1hybrid-sleep/g' /etc/systemd/logind.conf
- echo '# Suspend the system when battery level drops to 2% or lower
- SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="2", RUN+="/usr/bin/systemctl suspend"
- SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="1", RUN+="/usr/bin/systemctl suspend"
- SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="0", RUN+="/usr/bin/systemctl suspend"' > /etc/udev/rules.d/99-lowbat.rules
- #echo 'ACTION=="add", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/usr/bin/hdparm -B 254 /dev/$kernel"' > /etc/udev/rules.d/75-hdparm.rules
- }
- function setup_i3() {
- #i3 config
- mkdir -p $HOME/.i3
- cp -f /etc/i3/config $HOME/.i3/
- sed -i 's/\(bindsym Mod1+d exec\) \(dmenu_run\)/\1 --no-startup-id \2/g' $HOME/.i3/config
- sed -i 's/\(exec i3-config-wizard\)/#\1/g' $HOME/.i3/config
- sed -i 's/# \(bindsym Mod1+\)\(d exec --no-startup-id i3-dmenu-desktop\)/\1Shift+\2/g' $HOME/.i3/config
- sed -i 's/\(set \$mod\) Mod4/\1 Mod1/g' $HOME/.i3/config
- sed -i "/^bar {$/ a\\\t#tray_output primary" $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'default_orientation vertical' >> $HOME/.i3/config
- echo -e '\n# Can be set <default|stacking|tabbed>\nworkspace_layout stacking' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'for_window [title="File Operation Progress"] floating enable' >> $HOME/.i3/config
- echo 'for_window [title="File Operations"] floating enable' >> $HOME/.i3/config
- echo 'for_window [class="VirtualBox"] floating enable' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'bindsym Control+Shift+Escape exec lxtask' >> $HOME/.i3/config
- echo 'bindsym Mod4+b exec chromium' >> $HOME/.i3/config
- echo 'bindsym Mod4+f exec thunar' >> $HOME/.i3/config
- echo 'bindsym Mod4+t exec scite' >> $HOME/.i3/config
- echo 'bindsym Mod4+e exec emacs' >> $HOME/.i3/config
- echo 'bindsym Mod4+v exec virtualbox' >> $HOME/.i3/config
- echo 'bindsym Mod4+m exec vlc' >> $HOME/.i3/config
- echo 'bindsym Mod4+g exec transmission-gtk' >> $HOME/.i3/config
- echo 'bindsym Mod4+o exec opera' >> $HOME/.i3/config
- echo 'bindsym Mod4+k exec krdc' >> $HOME/.i3/config
- echo 'bindsym Mod4+r exec remmina' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'exec --no-startup-id system-config-printer-applet' >> $HOME/.i3/config
- echo 'exec --no-startup-id start-pulseaudio-x11' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo '#exec --no-startup-id x11vnc -many -display :0 -rfbauth ~/.x11vnc/passwd -gui tray -o ~/.x11vnc.log.%VNCDISPLAY' >> $HOME/.i3/config
- echo '#exec --no-startup-id xrandr --output HDMI1 --auto --primary --output HDMI2 --auto --right-of HDMI1' >> $HOME/.i3/config
- echo '#exec --no-startup-id numlockx' >> $HOME/.i3/config
- echo '#exec --no-startup-id nm-applet' >> $HOME/.i3/config
- echo "#exec --no-startup-id xautolock -detectsleep -time 45 -locker 'systemctl hybrid-sleep'" >> $HOME/.i3/config
- echo '#exec --no-startup-id xmodmap -e "pointer = 1 10 3 4 5 6 7 8 9 2 11 12 13 14 15 16 17 18 19 20 21 22 23 24"' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo '#bindsym XF86AudioRaiseVolume exec pactl set-sink-volume `pactl list short sinks | grep RUNNING | cut -f1` -- +5%' >> $HOME/.i3/config
- echo '#bindsym XF86AudioLowerVolume exec pactl set-sink-volume `pactl list short sinks | grep RUNNING | cut -f1` -- -5%' >> $HOME/.i3/config
- echo '#bindsym XF86AudioMute exec pactl set-sink-mute `pactl list short sinks | grep RUNNING | cut -f1` toggle' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'bindsym XF86AudioRaiseVolume exec amixer -q set Master 5%+ unmute' >> $HOME/.i3/config
- echo 'bindsym XF86AudioLowerVolume exec amixer -q set Master 5%- unmute' >> $HOME/.i3/config
- echo 'bindsym XF86AudioMute exec amixer -q set Master toggle' >> $HOME/.i3/config
- echo -e '\n#' >> $HOME/.i3/config
- echo 'bindsym XF86AudioPlay exec playerctl play' >> $HOME/.i3/config
- echo 'bindsym XF86AudioPause exec playerctl pause' >> $HOME/.i3/config
- echo 'bindsym XF86AudioNext exec playerctl next' >> $HOME/.i3/config
- echo 'bindsym XF86AudioPrev exec playerctl previous' >> $HOME/.i3/config
- #i3 status
- echo -e 'general {\n\tcolors = true\n\tinterval = 10\n}\n' > $HOME/.i3status.conf
- echo -e 'cpu_usage {\n\tformat = "%usage"\n}\n' >> $HOME/.i3status.conf
- echo -e 'cpu_temperature 0 {\n\tformat = "%degrees\xc2\xb0C"\n#\tpath = "/sys/devices/platform/coretemp.0/temp2_input"\n}\n' >> $HOME/.i3status.conf
- echo -e 'cpu_temperature 1 {\n\tformat = "%degrees\xc2\xb0C"\n#\tpath = "/sys/devices/platform/coretemp.0/temp3_input"\n}\n' >> $HOME/.i3status.conf
- echo -e 'battery 0 {\n\tformat="%percentage %remaining"\n\tpath="/sys/class/power_supply/BAT1/uevent"\n\tlow_threshold=30\n\tthreshold_type=percentage\n}\n' >> $HOME/.i3status.conf
- echo -e 'time {\n\tformat = "%a %d %b, %I:%M %p"\n}\n' >> $HOME/.i3status.conf
- echo -e 'volume master {\n\tformat = "%volume"\n\tdevice = "default"\n\tmixer = "Master"\n\tmixer_idx = 0\n}\n' >> $HOME/.i3status.conf
- echo '' >> $HOME/.i3/config
- echo -e '#order += "cpu_usage"\n' >> $HOME/.i3status.conf
- echo -e '#order += "cpu_temperature 0"\n' >> $HOME/.i3status.conf
- echo -e '#order += "cpu_temperature 1"\n' >> $HOME/.i3status.conf
- echo -e '#order += "battery 0"\n' >> $HOME/.i3status.conf
- echo -e 'order += "time"\n' >> $HOME/.i3status.conf
- echo -e 'order += "volume master"\n' >> $HOME/.i3status.conf
- #
- echo -e "\n#exec i3" >> $HOME/.xinitrc
- echo -e "[Desktop]\nSession=i3\n" > $HOME/.dmrc
- }
- function setup_swiprolog() {
- echo ':- set_prolog_flag(toplevel_print_options,[quoted(true),portray(true)]).' > $HOME/.plrc
- }
- function connect_wireless() {
- echo 'todo'
- #lspci -k or lsusb -v
- #ip link
- #ip link set wlan0 up
- #dmesg | grep iwlwifi
- #iw wireless_tools wpa_supplicant
- #wpa_passphrase ssid password | wpa_supplicant -Dwext -iwlan0 -c/dev/stdin
- #dhcpcd wlan0
- #wpa_supplicant -iwlan0 -Dwext -B -c <(wpa_passphrase ssid pass)
- }
- function disable_coredump() {
- ln -s /dev/null /etc/sysctl.d/50-coredump.conf
- sysctl kernel.core_pattern=core
- }
- function setup_shared_folder() {
- mkdir -p /shared
- setfacl -d -m o::rwx /shared
- setfacl -d -m g::rwx /shared
- add_samba_share /shared true
- }
- function symlink_caches_to_tmp() {
- mkdir -p $HOME/.cache
- ln -sf /tmp $HOME/.thumbnails
- ln -sf /tmp $HOME/.cache/chromium
- ln -sf /tmp $HOME/.adobe
- ln -sf /tmp $HOME/.macromedia
- ln -sf /tmp $HOME/.cache/vlc
- }
- function add_guest_user() {
- useradd -m -U -G users,storage,lp,optical,audio,video,power,games -s /bin/bash guest
- passwd -ud guest
- cp -f /etc/skel/.bash_profile /home/guest/
- chmod -R 777 /home/guest
- chown -R guest /home/guest
- setfacl -d -m o::rwx /home/guest
- setfacl -d -m g::rwx /home/guest
- }
- function aur_get() {
- n=$1
- cd /tmp
- wget "https://aur.archlinux.org/packages/${n:0:2}/${n}/${n}.tar.gz"
- tar xzf ${n}.tar.gz
- cd $n
- if [ $2 ] && [ "$2" != "" ]; then
- sed -i "s/\(arch=(.*\))/\1 '$2')/g" PKGBUILD
- fi
- }
- function aur_make() {
- n=$1
- cd /tmp/$n
- #makepkg -s --asroot
- makepkg -s
- }
- function aur_install() {
- n=$1
- cd /tmp/$n
- sudo pacman -U --noconfirm --needed ${n}*pkg.tar.xz
- }
- function aur() {
- aur_get $1
- aur_make $1
- read -n 1 -s -p "Press any key to continue..."
- echo -e '\n'
- aur_install $1
- }
- if [ $1 ]; then
- args=""
- for (( i=2;$i<=$#;i=$i+1 )); do args+=" ${!i}"; done
- eval $1 $args
- else
- echo "No option entered (to begin installation enter the option: os)."
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement