home/breakerbox: init

This commit is contained in:
2025-06-04 12:01:57 +02:00
parent 465d33fadf
commit 0026cfb484
41 changed files with 310 additions and 237 deletions

136
home/breakerbox.nix Normal file
View File

@@ -0,0 +1,136 @@
{ config, lib, machineVars, ... }:
let
inherit (lib) mkForce mkIf optionals;
graphics = !machineVars.headless;
in
{
imports = [
./programs/nix.nix
./programs/aria2.nix
./programs/atuin.nix
./programs/bash.nix
./programs/bat.nix
./programs/beets.nix
./programs/bottom.nix
./programs/cargo.nix
# ./programs/comma.nix
./programs/direnv
./programs/eza.nix
./programs/fzf.nix
./programs/gdb.nix
./programs/gh-dash.nix
./programs/gh.nix
./programs/git
./programs/gpg.nix
./programs/home-manager.nix
./programs/jq.nix
./programs/less.nix
./programs/man.nix
./programs/neovim
./programs/nix-index
./programs/nushell.nix
./programs/pandoc.nix
./programs/python.nix
./programs/ripgrep.nix
./programs/skim.nix
./programs/sqlite.nix
./programs/ssh
./programs/tealdeer
./programs/texlive.nix
./programs/thunderbird.nix
./programs/tmux
./programs/uv.nix
./programs/yazi.nix
./programs/yt-dlp.nix
./programs/zoxide.nix
./programs/zsh
./services/nix-channel-update.nix
./services/pueue.nix
] ++ (optionals graphics [
./config/gtk.nix
./programs/alacritty.nix
./programs/emacs
./programs/feh.nix
./programs/firefox.nix
./programs/mpv.nix
./programs/ncmpcpp.nix
./programs/newsboat
./programs/obs-studio.nix
./programs/prism-launcher.nix
./programs/qutebrowser.nix
./programs/rofi
./programs/taskwarrior.nix
./programs/vscode
./programs/zathura.nix
./programs/zed
./services/copyq.nix
./services/dunst.nix
./services/fcitx5.nix
./services/gnome-keyring.nix
./services/keybase.nix
./services/mpd.nix
./services/mpris-proxy.nix
./services/network-manager.nix
./services/psd.nix
./services/tumblerd.nix
]) ++ (optionals machineVars.wayland [
./programs/hyprland
./programs/waybar.nix
./programs/anyrun
]) ++ (optionals (!machineVars.wayland) [
./programs/xmonad
# ./programs/xmobar
./services/picom.nix
./services/polybar.nix
./services/screen-locker.nix
# ./services/stalonetray.nix
./services/sxhkd.nix
]);
programs.aria2.enable = true;
programs.atuin.enable = true;
programs.bash.enable = true;
programs.bat.enable = true;
programs.beets.enable = true;
programs.bottom.enable = true;
programs.cargo.enable = true;
# programs.comma.enable = true;
programs.direnv.enable = true;
programs.eza.enable = true;
programs.fzf.enable = true;
programs.gdb.enable = true;
programs.gh-dash.enable = true;
programs.gh.enable = true;
programs.git.enable = true;
programs.gpg.enable = true;
programs.home-manager.enable = true;
programs.jq.enable = true;
programs.less.enable = true;
programs.man.enable = true;
programs.neovim.enable = true;
programs.nix-index.enable = true;
programs.nushell.enable = true;
programs.pandoc.enable = true;
programs.python.enable = true;
programs.ripgrep.enable = true;
programs.skim.enable = true;
programs.sqlite.enable = true;
programs.ssh.enable = true;
programs.tealdeer.enable = true;
programs.texlive.enable = true;
programs.tmux.enable = true;
programs.uv.enable = true;
programs.yazi.enable = true;
programs.yt-dlp.enable = true;
programs.zoxide.enable = true;
programs.zsh.enable = true;
services.pueue.enable = true;
programs.thunderbird.enable = graphics;
}

View File

@@ -5,96 +5,12 @@ in {
imports = [
./shell.nix
./packages.nix
./breakerbox.nix
./config/xdg
./config/ensure-homedir-structure.nix
./config/downloads-sorter.nix
./programs/aria2.nix
./programs/atuin.nix
./programs/bash.nix
./programs/bat.nix
./programs/beets.nix
./programs/bottom.nix
./programs/cargo.nix
./programs/comma.nix
./programs/direnv
./programs/eza.nix
./programs/fzf.nix
./programs/gdb.nix
./programs/gh-dash.nix
./programs/gh.nix
./programs/git
./programs/gpg.nix
./programs/home-manager.nix
./programs/jq.nix
./programs/less.nix
./programs/man.nix
./programs/neovim
./programs/nix-index
./programs/nix.nix
./programs/nushell.nix
./programs/pandoc.nix
./programs/python.nix
./programs/ripgrep.nix
./programs/skim.nix
./programs/sqlite.nix
./programs/ssh
./programs/tealdeer
./programs/texlive.nix
./programs/thunderbird.nix
./programs/tmux
./programs/uv.nix
./programs/yazi.nix
./programs/yt-dlp.nix
./programs/zoxide.nix
./programs/zsh
./services/nix-channel-update.nix
./services/pueue.nix
] ++ (optionals graphics [
./config/gtk.nix
./programs/alacritty.nix
./programs/emacs
./programs/feh.nix
./programs/firefox.nix
./programs/mpv.nix
./programs/ncmpcpp.nix
./programs/newsboat
./programs/obs-studio.nix
./programs/prism-launcher.nix
./programs/qutebrowser.nix
./programs/rofi
./programs/taskwarrior.nix
./programs/vscode
./programs/zathura.nix
./programs/zed
./services/copyq.nix
./services/dunst.nix
./services/fcitx5.nix
./services/gnome-keyring.nix
./services/keybase.nix
./services/mpd.nix
./services/mpris-proxy.nix
./services/network-manager.nix
./services/psd.nix
./services/tumblerd.nix
]) ++ (optionals machineVars.wayland [
./programs/hyprland
./programs/waybar.nix
./programs/anyrun
]) ++ (optionals (!machineVars.wayland) [
./programs/xmonad
# ./programs/xmobar
./services/picom.nix
./services/polybar.nix
./services/screen-locker.nix
# ./services/stalonetray.nix
./services/sxhkd.nix
]);
];
sops.defaultSopsFile = ../secrets/home.yaml;
sops.age.sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519_home_sops" ];

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.aria2.enable = true;
programs.aria2 = { };
}

View File

@@ -1,11 +1,10 @@
{ config, ... }:
{ config, lib, ... }:
let
cfg = config.programs.atuin;
xdg_runtime_dir = "/run/user/${toString config.home.uid}";
in
{
lib.mkIf cfg.enable {
programs.atuin = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableNushellIntegration = config.programs.nushell.enable;

View File

@@ -1,7 +1,9 @@
{ config, ... }:
{ config, lib, ... }:
let
cfg = config.programs.bash;
in
{
programs.bash = {
enable = true;
historyFile = "${config.xdg.dataHome}/bash_history";
historySize = 100000;
bashrcExtra = ''

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.bat.enable = true;
programs.bat = { };
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.beets.enable = true;
programs.beets = { };
}

View File

@@ -1,7 +1,9 @@
{ ... }:
{ config, lib, ... }:
let
cfg = config.programs.bottom;
in
{
programs.bottom = {
enable = true;
settings = {
flags.enable_gpu = true;

View File

@@ -1,7 +1,9 @@
{ ... }:
{
{ config, lib, ... }:
let
cfg = config.programs.cargo;
in
lib.mkIf cfg.enable {
programs.cargo = {
enable = true;
settings = {
cargo-new.vcs = "git";
};

View File

@@ -1,7 +1,9 @@
{ config, ... }:
{ config, lib, ... }:
let
cfg = config.programs.direnv;
in
{
programs.direnv = {
enable = true;
silent = true;
nix-direnv.enable = true;

View File

@@ -1,7 +1,9 @@
{ config, ... }:
{ config, lib, ... }:
let
cfg = config.programs.eza;
in
{
programs.eza = {
enable = true;
icons = "auto";
enableNushellIntegration = config.programs.nushell.enable;
};

View File

@@ -1,7 +1,9 @@
{ ... }:
{ config, lib, ... }:
let
cfg = config.programs.fzf;
in
{
programs.fzf = {
enable = true;
defaultCommand = "fd --type f";
};
}

View File

@@ -1,5 +1,11 @@
{ pkgs, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.programs.gdb;
in
{
options.programs.gdb.enable = lib.mkEnableOption "gdb";
config = lib.mkIf cfg.enable {
xdg.configFile."gdb/gdbinit".text = ''
# C++ related beautifiers
set print pretty on
@@ -22,4 +28,5 @@
'';
# local.shell.aliases."System Tool Replacements".gdb = "${pkgs.pwndbg}/bin/pwndbg";
};
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.gh-dash.enable = true;
programs.gh-dash = { };
}

View File

@@ -1,7 +1,6 @@
{ pkgs, ... }:
{
programs.gh = {
enable = true;
settings = {
gitProtocol = "ssh";
pager = "${pkgs.bat}/bin/bat";

View File

@@ -13,13 +13,12 @@ let
"github.com:"
];
in
{
lib.mkIf cfg.enable {
# TODO: convert to template once nix-sops supports it in hm module
sops.secrets."git/nordicsemi-config" = { };
programs.git = lib.mkMerge [
{
enable = true;
package = pkgs.gitFull;
userName = "h7x4";

View File

@@ -1,7 +1,9 @@
{ config, pkgs, ... }:
{
{ config, lib, pkgs, ... }:
let
cfg = config.programs.gpg;
in
lib.mkIf cfg.enable {
programs.gpg = {
enable = true;
homedir = "${config.xdg.configHome}/gnupg";
auto-refresh-keys.enable = true;

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.home-manager.enable = true;
programs.home-manager = { };
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.jq.enable = true;
programs.jq = { };
}

View File

@@ -1,7 +1,6 @@
{ config, ... }:
{
programs.less = {
enable = true;
keys = ''
#env
LESS = -i -R

View File

@@ -1,7 +1,6 @@
{ ... }:
{
programs.man = {
enable = true;
generateCaches = true;
};
}

View File

@@ -1,8 +1,9 @@
{ pkgs, lib, machineVars, ... }:
{
{ config, pkgs, lib, machineVars, ... }:
let
cfg = config.programs.neovim;
in
lib.mkIf cfg.enable {
programs.neovim = {
enable = true;
auto-clean-swapfiles.enable = true;
viAlias = true;

View File

@@ -1,7 +1,6 @@
{ ... }:
{
programs.nix-index = {
enable = true;
autoUpdateDatabase.enable = true;
};
}

View File

@@ -1,6 +1,4 @@
{ ... }:
{
programs.nushell = {
enable = true;
};
programs.nushell = { };
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.pandoc.enable = true;
programs.pandoc = { };
}

View File

@@ -1,5 +1,11 @@
{ config, pkgs, extendedLib, ... }:
{ config, lib, pkgs, extendedLib, ... }:
let
cfg = config.programs.python;
in
{
options.programs.python.enable = lib.mkEnableOption "python";
config = lib.mkIf cfg.enable {
# Python for interactive use
home.packages = [
(pkgs.python3.withPackages (pypkgs: with pypkgs; [
@@ -21,4 +27,5 @@
PYTHONSTARTUP = "${config.xdg.configHome}/python/pyrc";
PYTHON_HISTORY = "${config.xdg.dataHome}/python_history";
};
};
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.ripgrep.enable = true;
programs.ripgrep = { };
}

View File

@@ -1,7 +1,6 @@
{ ... }:
{
programs.skim = {
enable = true;
defaultCommand = "fd --type f";
};
}

View File

@@ -1,5 +1,11 @@
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.programs.sqlite;
in
{
options.programs.sqlite.enable = lib.mkEnableOption "sqlite";
config = lib.mkIf cfg.enable {
xdg.configFile."sqlite3/sqliterc".text = ''
.bail on
.changes on
@@ -14,4 +20,5 @@
];
home.sessionVariables.SQLITE_HISTORY= "${config.xdg.dataHome}/sqlite_history";
};
}

View File

@@ -1,5 +1,6 @@
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.programs.ssh;
runtimeDir = "/run/user/${toString config.home.uid}";
controlMastersDir = "${runtimeDir}/ssh";
in
@@ -9,13 +10,13 @@ in
./other.nix
./pvv.nix
];
config = lib.mkIf cfg.enable {
sops.secrets."ssh/secret-config" = {
mode = "0444";
};
programs.ssh = {
enable = true;
includes = [
config.sops.secrets."ssh/secret-config".path
"${config.home.homeDirectory}/.ssh/mutable_config"
@@ -36,4 +37,5 @@ in
mode = "0600";
};
};
};
}

View File

@@ -1,5 +1,8 @@
{ pkgs, lib, ... }:
{
{ config, pkgs, lib, ... }:
let
cfg = config.programs.tealdeer;
in
lib.mkIf cfg.enable {
systemd.user.services.update-tldr-db = {
Unit = {
Description = "Update tealdeer database";

View File

@@ -4,5 +4,5 @@
./auto-update-tldr-db.nix
];
programs.tealdeer.enable = true;
programs.tealdeer = { };
}

View File

@@ -1,7 +1,6 @@
{ ... }:
{
programs.texlive = {
enable = true;
# packageSet = pkgs.texlive.combined.scheme-medium;
};
}

View File

@@ -2,17 +2,15 @@
let
cfg = config.programs.thunderbird;
in
{
lib.mkIf cfg.enable {
programs.thunderbird = {
enable = !machineVars.headless;
profiles.h7x4 = {
isDefault = true;
withExternalGnupg = true;
};
};
home.packages = lib.mkIf cfg.enable (with pkgs; [
home.packages = with pkgs; [
birdtray
]);
];
}

View File

@@ -1,7 +1,6 @@
{ pkgs, lib, ... }:
{
programs.tmux = {
enable = true;
baseIndex = 1;
clock24 = true;
escapeTime = 0;

View File

@@ -1,14 +1,12 @@
{ pkgs, ... }:
{ ... }:
{
home.packages = [
pkgs.uv
];
programs.uv = {
# https://docs.astral.sh/uv/configuration/files/
# https://docs.astral.sh/uv/reference/settings/
xdg.configFile."uv/uv.toml".source = (pkgs.formats.toml { }).generate "uv-config" {
settings = {
python-downloads = "never";
python-preference = "only-system";
pip.index-url = "https://test.pypi.org/simple";
};
};
}

View File

@@ -1,7 +1,6 @@
{ ... }:
{
programs.yazi = {
enable = true;
keymap = {
manager.prepend_keymap = [
{

View File

@@ -1,4 +1,4 @@
{ ... }:
{
programs.yt-dlp.enable = true;
programs.yt-dlp = { };
}

View File

@@ -1,7 +1,6 @@
{ config, ... }:
{
programs.zoxide = {
enable = true;
enableNushellIntegration = config.programs.nushell.enable;
};
}

View File

@@ -1,8 +1,8 @@
{ config, pkgs, lib, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.programs.zsh;
in
{
lib.mkIf cfg.enable {
home.file."${cfg.dotDir}/.zshrc".onChange = ''
${lib.getExe (pkgs.writeTextFile {
name = "zsh-compinit-oneshot.zsh";
@@ -22,7 +22,6 @@ in
};
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
# enableSyntaxHighlighting = true;
defaultKeymap = "viins";

View File

@@ -1,6 +1,4 @@
{ ... }:
{
services.pueue = {
enable = true;
};
services.pueue = { };
}