Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

134 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Configuration of software I personally use for software development

Showcase Hyprland with foot terminal, tmux and neovim

Install

  1. Add user:
useradd -m -G docker,systemd-journal,users,wheel -k /dev/null -s /usr/bin/zsh cj
sudo -iu cj
  1. Clone the repository
git clone https://github.com/codingjerk/dotfiles.git
  1. Install the config files into your system
python ~/dotfiles/tools/install repo-to-home ALL
  1. Check for missing dependencies:
python ~/dotfiles/tools/doctor
  1. Enable systemd services and timers:
systemctl --user daemon-reload
systemctl --user add-wants niri.service \
  gammastep.service \
  hypridle.service \
  waybar.service \
  mako.service \
  foot-server.service \
  cliphist.service \
  swaybg.service \
  remind.service

systemctl --user enable --now \
  ssh-agent.socket \
  battery.timer \
  disk.timer \
  break-reminder.timer \
  systemd-status.timer \
  network-status.timer \
  random-thai-word.timer

WARNING: This repository is tailored for my personal use. I don't recommend installing it on your machine.

If you're not me (lol), just clone this repository and browse the configuration files.

Optional extra steps (on new hosts)

  1. Generate ssh keys:
ssh-keygen -t ed25519
  1. Import gpg keys:
gpg --import <key>.gpg
gpg --edit-key <key-id>
# trust, 5, y, save
  1. Initialize stores:
git clone cj:private-pass .password-store
git clone cj:ledger-private .ledger
git clone cj:notes-private notes
  1. Install LSPs for neovim

  2. Install lazy.nvim:

mkdir -p ~/.local/share/nvim/lazy
cd $_
git clone https://github.com/folke/lazy.nvim.git

nvim
:Lazy Install
  1. (optional) Switch to ssh-based git remote:
git remote set-url origin cj:dotfiles

Update (re-render configuration files)

Pull sources and re-render configs:

git pull
python ~/dotfiles/tools/install repo-to-home ALL

How it works

This repository contains:

  • config -- configuration files and templates
  • settings.toml -- color palette and per-host settings
  • wallpaper.png -- a wallpaper
  • tools
    • install -- tool to copy and render configuration files
    • doctor -- tool to report missing dependencies
  • scripts -- helper scripts

The repository can be placed anywhere in your home directory.

The install tool has two directional actions:

  • repo-to-home renders the repository's configuration files and writes them to the correct locations under your home directory.
  • home-to-repo copies configuration files from your home directory back into the repository, restoring template placeholders where needed.

Both actions require a file selector. Use a configured path relative to your home directory to process one file:

python ~/dotfiles/tools/install repo-to-home .config/niri/config.kdl
python ~/dotfiles/tools/install home-to-repo .config/niri/config.kdl

Use the uppercase selector ALL to process every configured file:

python ~/dotfiles/tools/install repo-to-home ALL
python ~/dotfiles/tools/install home-to-repo ALL

About

Configuration of software I personally use for software development

Resources

Stars

Watchers

Forks

Sponsor this project

Used by

Contributors

Languages