GNU Stow-based dotfiles for Linux (Arch + Hyprland) and macOS, plus curated resources for productivity.
Each top-level folder is a stow package that mirrors the target directory structure relative to $HOME. Running stow <package> symlinks its contents to ~.
| Package | Purpose |
|---|---|
hypr |
Hyprland compositor, hypridle, hyprpaper |
fish |
Fish shell with syntax highlighting and autosuggestions |
waybar |
Status bar with custom modules and scripts |
foot |
Fast, minimal Wayland terminal |
starship |
Cross-shell prompt |
rofi |
Application launcher (dmenu replacement) |
mako |
Notification daemon |
btop |
System monitor |
cava |
Audio visualizer |
kanshi |
Automatic display configuration |
claude |
Claude Code configuration (agents, rules, skills) |
vscode |
VS Code user settings, keybindings, and helper scripts |
r |
Global R profile for VS Code session watcher and terminal width |
These dotfiles rely on/assume the following are installed and correctly set (e.g. fish is set as your shell of choice). E.g. on Arch-based systems make sure you run the following:
pacman -S btop cava fastfetch fish foot hyprland mako rofi starship superfile tlp tlpui kanshiTo copy these dotfiles, I suggest to use GNU Stow:
-
Install Stow (on most systems):
# Debian/Ubuntu apt install stow # Arch pacman -S stow # Fedora dnf install stow # macOS (with Homebrew) brew install stow
-
Clone this repository into your
$HOMEdirectory:git clone https://github.com/gerasy1987/dotfiles.git ~/dotfiles cd ~/dotfiles
If you are unsure what your home directory is, run
echo $HOMEin terminal. -
Stow the desired config folders (e.g., for shell setup, stow
fish,foot, andstarship):stow fish stow foot stow starship
stow vscode stow r
This will symlink the config files into your `$HOME` directory with correct relative paths.
After you are done `stow`-ing your dotfiles make sure to **give right permissions to shell scripts in Waybar:**
```sh
chmod -R +x $HOME/.config/waybar/scripts/
The claude/ package syncs Claude Code CLI configuration to ~/.claude/.
claude/.claude/
├── agents/ # Review agents (proofreader, slide-auditor, r-reviewer, etc.)
├── rules/ # Global rules (plan-first workflow, quality gates)
├── skills/ # Slash commands (/compile-latex, /translate-to-quarto, /deploy)
└── settings.json # Permissions and hooks
Key features:
- Agents - Specialized subagents for code review, proofreading, and domain-specific checks
- Rules - Enforce workflows like plan-before-implement and verify-before-finish
- Skills - Reusable commands for LaTeX compilation, Quarto rendering, deployments
Not synced (stay local in ~/.claude/): .credentials.json, history.jsonl, projects/, cache directories.
-
VS Code User Interface is much more flexible than RStudio's.
-
Setting Up R in VS Code is costly first time and requires
radiansetup for autocompletions and proper R terminal. -
Setting Up Python in VS Code: is easier than R.
-
Source Control in VS Code allows you to manage your source code with Git and work remotely with GitHub without need to install dedicated app.
-
Cursor is a VS Code wrapper (and replacement) designed to improve your coding efficiency with AI-powered code suggestions and completions.
-
Quarto in VS Code is as good as Quarto in RStudio with full support for chunk controls and visual editor.
VS Code stores user settings in different locations per OS:
- Linux:
~/.config/Code/User/ - macOS:
~/Library/Application Support/Code/User/
The canonical settings live in vscode/.config/Code/User/ (the Linux path). After stowing, run the install script to symlink them to the correct OS-specific location:
stow vscode r
vscode-install # symlinks settings.json & keybindings.json to the right OS path
vscode-r-extensions # installs R-related VS Code extensions
vscode-r-bootstrap # installs R packages (languageserver, httpgd, etc.) and radianPrerequisites by OS:
# Arch Linux
sudo pacman -S r jupyter-notebook python-pipx
# macOS (Homebrew)
brew install r jupyterlab pipxThe vscode and r packages together provide a full R development environment:
-
radianas the preferred R terminal inside VS Code, with fallback to plainR -
languageserverfor completion, hover, rename, diagnostics, and formatting -
httpgdfor the VS Code plot viewer -
lintrandstylerfor diagnostics and formatting -
IRkernelfor Jupyter-backed R notebooks in VS Code -
Quarto and R Markdown formatting-on-save plus chunk CodeLens
-
Global
.Rprofilehooks so self-managed VS Code R sessions attach cleanly -
Cross-platform R terminal and path settings (
r.rterm.mac/r.rterm.linux) -
A list of useful VS Code packages:
- Color Highlight: Highlights color codes in your code, making it easier to visualize color values.
- LaTeX Workshop: A comprehensive LaTeX editing environment within VS Code.
- Open in External App: Allows you to open files in external applications directly from VS Code.
- Quarto: Integrates Quarto for document authoring and publishing in VS Code.
- R Language Support: Provides R language support, including syntax highlighting and code completion.
- GitLens: Supercharges the Git capabilities built into VS Code, providing insights into code authorship.
- Jupyter: Enables Jupyter notebook support in VS Code for interactive data science and machine learning.
- Python: Essential extension for Python development, offering rich support for Python in VS Code.
- Pylance: A performant, feature-rich language server for Python in VS Code, enhancing code analysis and completion.
- Markdown All in One: Provides comprehensive Markdown support with shortcuts, table of contents, and more in VS Code.
- Sublime Keybindings: Brings Sublime Text keybindings to VS Code for users familiar with Sublime Text shortcuts.
-
Quarto in RStudio is the modern alternative to R Markdown or LaTeX. Works with pandoc for converting documents to any format + pairs nicely with RevealJS for html slides.
-
Keybindings Cheatsheet in RStudio allow to minimize use of mouse with RStudio. Press
Alt+Shift+Kfor cheatsheet. -
Command palette in RStudio allows you to forget about learning shortcuts and digging into menuse. Just press
Ctrl/Cmd+Shift+P. -
Version Control in RStudio: Learn how to manage your projects with version control tools integrated into RStudio.
-
GitHub Copilot in RStudio provides AI-powered code suggestions in RStudio directly, available for free to educators through GitHub for Education.
-
TinyTeXpackage in R will solve all your LaTeX troubles. Just make sure to install it withbundle = "TinyTeX-2"option to make sure you install all packages.
-
Reduce need to drag and stretch windows by using tiling window managers:
-
Learn basic terminal commands (
cd,cp,ls,mkdir,mv,man,sudo, etc.)fishshell will make your life easier with autocompletion and easy history search withCtrl+Rstarshipterminal prompt will make your prompt be more useful too
-
Use dual-pane file explorer for making copying and exploring files easier
- Marta: A dual-pane file manager for macOS, offering a clean interface and powerful features.
- Commander One: A dual-pane file manager for macOS with advanced features like FTP client and file compression.
- Krusader: An advanced twin-panel file manager for KDE and other desktops in the Unix world, providing a wide range of features.
-
Quarto Visual Editor: A user-friendly visual editor for Quarto, simplifying document creation and editing.
-
Package Managers like Homebrew, apt, or pacman allow you to efficiently install and manage software on your system. It also allows you to remove apps on MacOS properly. The only commands you need to learn to all of those are
search,install,upgrade/updateandremove/uninstall -
Multi-Cursor Editing is a game-changer and is fully supported in editors like RStudio and VS Code and superseeds base search and replace functionality.
-
Use fonts with Ligatures (like FiraCode) to enhance code readability with proper rendering of combinations of symbols, like
<-,<=!=.