GithubHelp home page GithubHelp logo

indy2222 / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 521 KB

My personal setup

License: GNU General Public License v3.0

Emacs Lisp 86.57% Shell 13.43%
tmux-configs tmux-configuration tmux-conf emacs-configuration emacs-conf configuration config configs dotfiles emacs zshell zsh tmux zsh-configuration zsh-configs oh-my-zsh git-configuration neomutt mutt offlineimap

dotfiles's Introduction

Post Installation Setup

Peform the following steps after bare installation of Arch Linux.

Network

systemctl enable --now systemd-networkd
systemctl enable --now systemd-resolved
# To make non GNU-libc applications (like kubectl written in Golang) work.
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Modify /etc/systemd/network/20-wired.network to:

[Match]
Name=ETHERNET_DEVICE

[Network]
DHCP=ipv4

[DHCP]
RouteMetric=10

To setup Wi-fi:

pacman -S iwd
systemctl enable --now iwd

Modify /etc/systemd/network/25-wireless.network to:

[Match]
Name=WIFI_DEVICE

[Network]
DHCP=ipv4

[DHCP]
RouteMetric=20

Modify /etc/iwd/main.conf to:

[General]
dns_resolve_method=systemd

Use iwctl to connect to a Wi-fi network.

For eduroam create file /var/lib/iwd/eduroam.8021x with the following content (don't forget to replace the password). Set permissions to 600 to the file.

[Security]
EAP-Method=PEAP
[email protected]
EAP-PEAP-CACert=/etc/ssl/certs/DigiCert_Assured_ID_Root_CA.pem
EAP-PEAP-Phase2-Method=MSCHAPV2
[email protected]
EAP-PEAP-Phase2-Password=<place-password-here>

[Settings]
Autoconnect=true

Use Avahi for zero-configuration network (service discovery, mDNS, etc.):

pacman -S avahi nss-mdns
systemctl enable --now avahi-daemon

Add mdns_minimal [NOTFOUND=return] to hosts in /etc/nsswitch.conf before resolve and dns. See https://wiki.archlinux.org/index.php/Avahi

NTP

systemctl enable --now systemd-timesyncd

Create User

useradd indy
passwd indy
mkdir /home/indy
chown -R indy:indy /home/indy

Configure access to network administration:

sudo groupadd netdev
sudo usermod -aG netdev indy

Setup sudo

pacman -S sudo
groupadd sudo
usermod -aG sudo indy

Add or uncomment this line %sudo ALL=(ALL:ALL) ALL in /etc/sudoers.

Install KDE

pacman -S xf86-video-intel
pacman -S sddm plasma-meta
systemctl enable sddm

Setup Under My User

All of the following commands work if executed under my user.

AUR Wrapper

Install Paru.

Useful Software

Development:

sudo pacman -S man-db

Other:

# Note that gcc is needed for Emacs to work properly. See
# https://wiki.archlinux.org/index.php/Emacs#Emacs_fails_to_start_with_the_error_message_'Undefined_color:_%22WINDOW_FOREGROUND%22'
sudo pacman -S firefox konsole xclip gcc htop jq ripgrep ktorrent dolphin \
    okular vlc spectacle rsync make python-sphinx ark korganizer wget exa \
    unzip gzip kuickshow mdbook

SSH

sudo pacman -S openssh
ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-add ~/.ssh/id_rsa

Add the SSH key to GitHub and GitLab.

Git

sudo pacman -S git git-lfs git-crypt

Pass

sudo pacman -S pass
git clone [email protected]:Indy2222/pass.git ~/.password-store

Dotfiles

Clone this repository:

git clone [email protected]:Indy2222/dotfiles ~/dotfiles

Git Config

ln -s ~/dotfiles/git/config ~/.gitconfig
ln -s ~/dotfiles/git/gitignore ~/.gitignore_global

GPG

ln -s ~/dotfiles/gpg/gpg-agent.conf ~/.gnupg/gpg-agent.conf
killall gpg-agent
# private.txt is placed on a secret device
gpg --import --armor private.txt

Fonts

sudo pacman -S ttf-jetbrains-mono extra/noto-fonts-emoji

ZSH

sudo pacman -S zsh eza atuin
sudo paru -S zoxide
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
rm ~/.zshrc
ln -s ~/dotfiles/zsh/zshrc ~/.zshrc
ln -s ~/dotfiles/zsh ~/zsh

Theme:

ln -s ~/dotfiles/zsh/minimal.zsh-theme ~/.oh-my-zsh/custom/themes/

Plugins:

cd ~/.oh-my-zsh/custom/plugins
# syntax highlighting
git clone https://github.com/zdharma/fast-syntax-highlighting.git

Atuin:

ln -sf ~/dotfiles/zsh/atuin.toml ~/.config/atuin/config.toml

Change shell for indy:

chsh indy

Tmux

sudo pacman -S tmux
ln -s ~/dotfiles/tmux.conf ~/.tmux.conf

Terminal

sudo pacman -S alacritty
mkdir ~/.config/alacritty
ln -s ~/dotfiles/alacritty.toml ~/.config/alacritty/alacritty.toml

Bat

sudo pacman -S bat
mkdir ~/.config/bat
ln -s ~/dotfiles/bat.conf ~/.config/bat/config

Emacs

sudo pacman -S emacs aspell aspell-en aspell-cs aspell-it
mkdir ~/.emacs.d
mkdir ~/notes
ln -s ~/dotfiles/emacs/early-init.el ~/.emacs.d/early-init.el
ln -s ~/dotfiles/emacs/init.el ~/.emacs.d/init.el
systemctl --user enable --now emacs

Firefox

sudo pacman -S firefox

Install https://addons.mozilla.org/en-US/firefox/addon/plasma-integration/

sudo pacman -S plasma-browser-integration

Rust

sudo pacman -S rustup pandoc fd
rustup toolchain install stable-x86_64-unknown-linux-gnu
rustup toolchain install nightly-x86_64-unknown-linux-gnu
rustup component add rust-analyzer

Python

sudo pacman -S pyenv python-poetry

.NET

sudo pacman -S dotnet-sdk

Docker

sudo pacman -S docker
sudo usermod -G docker indy
systemctl enable --now docker

Kubernetes

sudo pacman -S kubectl

Google Cloud SDK

Follow instructions from https://cloud.google.com/sdk/docs/quickstart-linux.

Microsoft Azure

Follow instruction from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest

TeX

sudo pacman -S texlive-most

Tor

sudo pacman -S tor
systemctl enable --now tor

In Preferences > General > Network Settings > Settings…, select Manual proxy configuration and enter SOCKS host localhost with port 9050 (SOCKS v5). To channel all DNS requests through TOR's socks proxy, also select Proxy DNS when using SOCKS v5.

Printing

sudo pacman -S cups
systemctl enable --now cups.socket
sudo usermod -a -G sys indy

Bluetooth

sudo pacman -S bluez bluez-utils pipewire-pulse
systemctl enable --now bluetooth.service

More Network

sudo pacman -S vnstat
systemctl enable --now vnstat

MEGA

Install MEGA Desktop App and configure syncing of appropriate directories.

dotfiles's People

Contributors

indy2222 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.