https://github.com/typovrak/nixos-bat
π NixOS module to install bat, a cat clone with syntax highlighting, with Catppuccin mocha theme, secure config and pre-built cache
https://github.com/typovrak/nixos-bat
automation bat cat catppuccin declarative mocha nix nixos ricing
Last synced: 2 months ago
JSON representation
π NixOS module to install bat, a cat clone with syntax highlighting, with Catppuccin mocha theme, secure config and pre-built cache
- Host: GitHub
- URL: https://github.com/typovrak/nixos-bat
- Owner: typovrak
- License: mit
- Created: 2025-04-20T21:55:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-21T15:45:15.000Z (about 1 year ago)
- Last Synced: 2026-04-03T13:24:44.063Z (3 months ago)
- Topics: automation, bat, cat, catppuccin, declarative, mocha, nix, nixos, ricing
- Language: Nix
- Homepage: https://typovrak.tv/nixos
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
[](https://nixos.org/)
[](LICENSE.md)
[](https://typovrak.tv/coffee)
[](https://typovrak.tv/nixos)
[](https://typovrak.tv/discord)
# π NixOS Bat
> NixOS module to install bat, a cat clone with syntax highlighting, with Catppuccin mocha theme, secure config and pre-built cache.
## π§© Part of the Typovrak NixOS ecosystem
This module is part of ```Typovrak NixOS```, a fully modular and declarative operating system configuration built entirely with :
- π§± **30+ standalone modules :** Each managing a specific tool, feature or aesthetic like ```zsh```, ```i3```, ```lighdm```, ```polybar```, ```gtk``` and more.
- π¨ **Catppuccin Mocha :** The default theme across terminal, GUI, and login interfaces.
- π‘οΈ **100% FOSS compliant :** No proprietary software included unless explicitly chosen.
- π§βπ» **Built for developers :** Optimized for speed, keyboard-centric workflows and expressive CLI tooling.
*Explore the full system : π [github.com/typovrak/nixos](https://github.com/typovrak/nixos)*
> [!CAUTION]
> This module is opinionated, it may **override**, **replace**, or **remove** files and settings **without** prompt. To avoid unexpected changes, **back up** your existing files or **fork** this module to take full control. **Follow this documentation** to avoid any of this problem.
## π¦ Features
- π **Secure config directory :** Creates ```~/.config/bat``` with ```700``` permissions and correct ownership.
- π¨ **Catppuccin mocha green theme :** Deploys ```catppuccin-mocha.tmTheme``` into ```~/.config/bat/themes``` for consistent styling.
- βοΈ **Config deployment :** Installs your ```config``` into ```~/.config/bat/config``` with ```600``` permissions.
- β‘ **Cache build :** Runs ```bat cache --build``` as the user to pre-compile syntax and theme cache.
- π¦ **Package installation :** Ensures ```bat``` is installed via ```environment.systemPackages```.
- π **Idempotent :** Cleans and recreates config and themes on each rebuild without removing other user data.
- πΎ **Backup guidance :** Documentation includes commands to back up any existing ```~/.config/bat``` before applying changes.
## π Repository structure
```bash
β― tree -a -I ".git*"
.
βββ catppuccin-mocha.tmTheme # catppuccin mocha green theme
βββ config # bat configuration file
βββ configuration.nix # module configuration
βββ LICENSE.md # MIT license
βββ README.md # this documentation
1 directory, 5 files
```
## βοΈ Prerequisites
### 1. NixOS version
Requires NixOS 24.11 or newer.
### 2. User validation
the target user must be defined in ```config.username```. See [typovrak main nixos configuration](https://github.com/typovrak/nixos) for more details.
### 3. Backup
Before proceeding, back up existing configuration if needed
```bash
cp ~/.config/bat{,.bak}
```
## β¬οΈ Installation
### π Method 1 : Out-of-the-box
Fetch the module directly in your [main nixos configuration](https://github.com/typovrak/nixos) at ```/etc/nixos/configuration.nix``` using fetchGit
```nix
# /etc/nixos/configuration.nix
let
nixos-bat = fetchGit {
url = "https://github.com/typovrak/nixos-bat.git";
ref = "main";
rev = "4f4a89ee94b19f3869c5a7b6c2f49104d3ffdf73"; # update to the desired commit
};
in
{
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-bat}/configuration.nix")
];
}
```
Once imported, rebuild your system to apply changes
```bash
sudo nixos-rebuild switch
```
### π΄ Method 2 : Fork
Want to **personalize** this module ?
Fork it and add this custom module in your [main nixos configuration](https://github.com/typovrak/nixos) at ```/etc/nixos/configuration.nix``` using fetchGit
```nix
let
nixos-bat = fetchGit {
url = "https://github.com//nixos-bat.git";
ref = "main";
rev = ""; # see below
};
in {
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-bat}/configuration.nix")
];
}
```
Get the latest commit hash by executing
```bash
git clone https://github.com//nixos-bat.git &&
cd nixos-bat &&
git log -1 --pretty=format:"%H"
```
## π¬ Usage
Use ```bat``` just like ```cat``` on a file, with syntax highlighting and the Catppuccin mocha green theme
```bash
bat file.txt
```
## π Learn more
- π¦ [Bat GitHub repository](https://github.com/sharkdp/bat) : Modern ```cat``` clone with syntax highlighting and Git integration.
- π¨ [Catppuccin for bat](https://github.com/catppuccin/bat) : Theme used in this module.
## π Discover my NixOS system portal
Dive into [typovrak.tv/nixos](https://typovrak.tv/nixos) Catppuccin mocha green themed **gateway** to my GitHub and NixOS setup.
Browse **every module**, example and config in a sleek with an interactive interface that feels just like your desktop.
## β€οΈ Support
If this module saved you time, please βοΈ the repo and share feedback.
You can also support me on β [Buy me a coffee](https://typovrak.tv/coffee)
## π¬ Join the Typovrak community on Discord π«π·
If you've ever ```rm -rf```ed your config by mistake or rebuilt for the 42nd time because a semicolon was missingβ¦
You're not alone, **Welcome home !**
π― [Join us on Discord Β»](https://typovrak.tv/discord)
π§ What youβll find is :
- ```π» #nixos-setup``` - get help with modules, rebuilds and configs.
- ```π #web-dev``` - talk JS, TypeScript, React, Node and more.
- ```π§ #open-source``` - share your repos, contribute to others and discuss FOSS culture.
- ```β¨οΈ #typing``` - layouts, mechanical keyboards and speed goals.
- ```π¨ #ricing``` - dotfiles, theming tips and desktop screenshots.
*Everyone's welcome no matter how many times you've broken your system ~~(except for Windows users)~~ π*
---
Made with π by typovrak