Skip to content

🗃️ Configuration files/scripts for (Arch) Linux, Neovim and friends.

License

Notifications You must be signed in to change notification settings

kjayasurya/.dotfiles

 
 

Repository files navigation

🗃️ .dotfiles

👋 Welcome to my personal dotfiles!
Continuous change is to be expected...

image

ShellCheck StyLua Size

The configuration files for my Linux desktop. Supports Arch based distros using Gnome and/or i3. Also, currently it assumes you have an Nvidia GPU and Intel CPU. I mainly use i3, but I also install Gnome for when people do not want to mess around with a tiling WM. All of the screenshots are for i3 and the gnome configs are very basic.

Full Installation

To install everything, simply copy and paste this into the terminal.

ℹ️   This script assumes that you have a working Arch installation. Remember to choose i3 at the login screen.

⚠️   I still need to properly test this.

curl -s https://raw.githubusercontent.com/AlexvZyl/.dotfiles/main/.scripts/install/bootstrap.sh > ~/bootstrap.sh
chmod +x ~/bootstrap.sh && ~/bootstrap.sh && rm ~/bootstrap.sh
reboot

Minimal Installation

Sometimes I just want to get work done on a Linux machine. A minimal installation can be done with:

curl -s https://raw.githubusercontent.com/AlexvZyl/.dotfiles/main/.scripts/install/minimal_workspace.sh > ~/bootstrap.sh
chmod +x ~/bootstrap.sh && ~/bootstrap.sh && rm ~/bootstrap.sh

And to update:

alias min-git="git --work-tree=\"$HOME/\" --git-dir=\"$HOME/.workspace/\""
min-git fetch
min-git pull
⚙️ Components
  • Neovim
  • Kitty
  • Tmux
  • Fonts
  • Fish
  • Scripts
  • exa
  • bat

Privacy and Security

Although I like making it look as nice as possible, these dotfiles also try to be private and secure. This is a journey, not a destination, and I am open to any input.

🛡️ Measures
  • Scripts I sometimes use.
  • Manually keeping system up to date (yay -Syyu)
  • Malware scanning and database updating (clamav)
  • Firewall (ufw)
  • Ban IPs (fail2ban)
  • Using Signal (when possible)
  • Hosting API keys in a private repo
  • Hardened firefox (user.js)
  • I could install the hardened Linux kernel, but that might be slightly pedantic...
  • Port scanning (nmap, rustscan)

Theme

Personally, I want a balance between good looking colors that stand out, and soft colors that will not destroy my eyes.

The theme is based on my Neovim plugin, nordic.nvim. It is a warmer and darker version of the Nord color palette. Wallpapers can be found at this ImageGoNord repo (they "norded" some nice wallpapers) and locally.

Showcase

Some screenshots showing off the desktop and rice, as well as some custom features I wrote. Everything has to be just right. I am spending 8+ hours a day on this working, so it might as well be a nice experience.

📷 Preview

Launcher via rofi: image

Lock screen via betterlockscreen:
image

Key Bindings

A few notes on the bindings:

  • Keys combined with the Super key are reserved for OS and WM related actions.
  • Arrows and hjkl keys are interchangeable.
⌨️ Bindings table
Binding Action
Super + d App launcher
Super + s Tmux sessions
Super + p Powermenu
Super + t Terminal
Super + T Tor terminal session
Super + n Neovim
Super + m Resource monitor (BTop++)
Super + g GPU monitor (NVtop)
Super + R Toggle read mode
Super + tab Windows
Super + Arrow Cycle windows
Super + Shift + Arrow Move window
Super + Number Go to workspace
Super + r Newsboat
Super + w iwctl

Neovim Config

This config has a decent amount of work and is basically a fully fledged IDE. Why didn't I use LunarVim, NvChad or SpaceVim? I like doing things myself.

ℹ️   I try to keep all of the key bindings in one file. So if you want to use the configs, this is the only file you have to familiarise yourself with. You can add more LSPs to the end of this file.

📷 Preview

image

image


These dotfiles were briefly featured in a TechHut Video.

About

🗃️ Configuration files/scripts for (Arch) Linux, Neovim and friends.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 66.9%
  • Shell 28.2%
  • Python 4.9%