2026-07-06 01:16:46 +05:30
2026-07-05 23:45:38 +05:30
2026-07-05 23:45:38 +05:30
2026-07-05 23:16:16 +05:30
lfs
2026-07-06 01:16:46 +05:30
2026-07-05 23:26:47 +05:30
2026-07-05 23:45:38 +05:30
lfs
2026-07-06 01:16:46 +05:30

Shared Dotfiles

System-wide dotfiles for an Arch Linux + Hyprland desktop, stored in a shared folder so every user on the machine can read and edit them, and symlink them into their own ~/.config.

Included configs:

Folder Application Links to
hypr Hyprland ~/.config/hypr
nvim Neovim (LazyVim) ~/.config/nvim
quickshell Quickshell ~/.config/quickshell

1. Shared folder setup (admin, one time)

The repo lives in /opt/shared-configs and is owned by a common group (sharedconfig) so any member can edit the files.

# Create the shared group
sudo groupadd sharedconfig

# Add each user who should be able to edit the configs
sudo gpasswd -a <username> sharedconfig   # repeat per user

# Clone (or move) the repo into the shared location
sudo git clone git@github.com:SamriddhVerma/dotfiles.git /opt/shared-configs

# Give the group ownership of everything
sudo chgrp -R sharedconfig /opt/shared-configs

# Make it group-writable, and set the setgid bit on all directories so new
# files/dirs automatically inherit the sharedconfig group
sudo chmod -R g+rwX /opt/shared-configs
sudo find /opt/shared-configs -type d -exec chmod g+s {} +

Group membership only takes effect on a new login — log out/in (or run newgrp sharedconfig) after being added.

Optional: set a default ACL so future files stay group-writable regardless of each user's umask:

sudo setfacl -R -d -m g:sharedconfig:rwX /opt/shared-configs

2. Install the required packages

All configs target Arch Linux, installed with pacman (AUR helper such as yay/paru needed for the AUR items).

# Core desktop (Hyprland session)
sudo pacman -S --needed \
  hyprland kitty thunar fuzzel \
  grim slurp wl-clipboard \
  brightnessctl playerctl \
  pipewire pipewire-pulse wireplumber \
  networkmanager upower bluez bluez-utils

# Neovim (LazyVim) + common tooling
sudo pacman -S --needed neovim git ripgrep fd

# AUR packages
yay -S quickshell mpvpaper

Optional, only if you run a hybrid NVIDIA setup (the wallpaper autostart uses prime-run):

sudo pacman -S --needed nvidia-prime

Enable the required services:

sudo systemctl enable --now NetworkManager bluetooth

Point your personal config directories at the shared folder. Existing configs are backed up first.

SRC=/opt/shared-configs
mkdir -p ~/.config

for cfg in hypr nvim quickshell; do
  # back up an existing real config if present
  [ -e ~/.config/$cfg ] && [ ! -L ~/.config/$cfg ] && \
    mv ~/.config/$cfg ~/.config/$cfg.bak

  ln -sfn "$SRC/$cfg" ~/.config/$cfg
done

Verify:

ls -l ~/.config/hypr ~/.config/nvim ~/.config/quickshell

Because the targets are symlinks into the shared repo, any edit you make (as a sharedconfig member) is shared with every other user, and can be committed back with git.


Notes

  • Hyprland uses the Lua config (hypr/hyprland.lua); make sure your Hyprland build supports the Lua configuration API. The .bak files are the previous plain-text config kept for reference.
  • Quickshell is launched automatically from Hyprland (qs) and relies on the Pipewire, UPower, Bluetooth and NetworkManager services above.
  • Neovim bootstraps its plugins on first launch via LazyVim; git, ripgrep and fd are required for full functionality.
S
Description
No description provided
Readme 70 MiB
Languages
QML 68.1%
Lua 25.3%
Shell 6.6%