home/breakerbox: init
This commit is contained in:
136
home/breakerbox.nix
Normal file
136
home/breakerbox.nix
Normal 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;
|
||||||
|
}
|
@@ -5,96 +5,12 @@ in {
|
|||||||
imports = [
|
imports = [
|
||||||
./shell.nix
|
./shell.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
|
./breakerbox.nix
|
||||||
|
|
||||||
./config/xdg
|
./config/xdg
|
||||||
./config/ensure-homedir-structure.nix
|
./config/ensure-homedir-structure.nix
|
||||||
./config/downloads-sorter.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.defaultSopsFile = ../secrets/home.yaml;
|
||||||
sops.age.sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519_home_sops" ];
|
sops.age.sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519_home_sops" ];
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.aria2.enable = true;
|
programs.aria2 = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,10 @@
|
|||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.programs.atuin;
|
cfg = config.programs.atuin;
|
||||||
xdg_runtime_dir = "/run/user/${toString config.home.uid}";
|
xdg_runtime_dir = "/run/user/${toString config.home.uid}";
|
||||||
in
|
in
|
||||||
{
|
lib.mkIf cfg.enable {
|
||||||
programs.atuin = {
|
programs.atuin = {
|
||||||
enable = true;
|
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableNushellIntegration = config.programs.nushell.enable;
|
enableNushellIntegration = config.programs.nushell.enable;
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.bash;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
|
||||||
historyFile = "${config.xdg.dataHome}/bash_history";
|
historyFile = "${config.xdg.dataHome}/bash_history";
|
||||||
historySize = 100000;
|
historySize = 100000;
|
||||||
bashrcExtra = ''
|
bashrcExtra = ''
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.bat.enable = true;
|
programs.bat = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.beets.enable = true;
|
programs.beets = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.bottom;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.bottom = {
|
programs.bottom = {
|
||||||
enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
flags.enable_gpu = true;
|
flags.enable_gpu = true;
|
||||||
|
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ ... }:
|
{ config, lib, ... }:
|
||||||
{
|
let
|
||||||
|
cfg = config.programs.cargo;
|
||||||
|
in
|
||||||
|
lib.mkIf cfg.enable {
|
||||||
programs.cargo = {
|
programs.cargo = {
|
||||||
enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
cargo-new.vcs = "git";
|
cargo-new.vcs = "git";
|
||||||
};
|
};
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.direnv;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
|
||||||
silent = true;
|
silent = true;
|
||||||
|
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.eza;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.eza = {
|
programs.eza = {
|
||||||
enable = true;
|
|
||||||
icons = "auto";
|
icons = "auto";
|
||||||
enableNushellIntegration = config.programs.nushell.enable;
|
enableNushellIntegration = config.programs.nushell.enable;
|
||||||
};
|
};
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.fzf;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
enable = true;
|
|
||||||
defaultCommand = "fd --type f";
|
defaultCommand = "fd --type f";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,25 +1,32 @@
|
|||||||
{ pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.gdb;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
xdg.configFile."gdb/gdbinit".text = ''
|
options.programs.gdb.enable = lib.mkEnableOption "gdb";
|
||||||
# C++ related beautifiers
|
|
||||||
set print pretty on
|
|
||||||
set print object on
|
|
||||||
set print static-members on
|
|
||||||
set print vtbl on
|
|
||||||
set print demangle on
|
|
||||||
set print sevenbit-strings off
|
|
||||||
set print asm-demangle on
|
|
||||||
set print elements 0
|
|
||||||
|
|
||||||
# Assembly
|
config = lib.mkIf cfg.enable {
|
||||||
set disassembly-flavor intel
|
xdg.configFile."gdb/gdbinit".text = ''
|
||||||
|
# C++ related beautifiers
|
||||||
|
set print pretty on
|
||||||
|
set print object on
|
||||||
|
set print static-members on
|
||||||
|
set print vtbl on
|
||||||
|
set print demangle on
|
||||||
|
set print sevenbit-strings off
|
||||||
|
set print asm-demangle on
|
||||||
|
set print elements 0
|
||||||
|
|
||||||
# Save command history between sessions:
|
# Assembly
|
||||||
set history save
|
set disassembly-flavor intel
|
||||||
|
|
||||||
# Print a beautifully colored prompt:
|
# Save command history between sessions:
|
||||||
set prompt \001\033[1;36m\002(gdb) \001\033[0m\002
|
set history save
|
||||||
'';
|
|
||||||
|
|
||||||
# local.shell.aliases."System Tool Replacements".gdb = "${pkgs.pwndbg}/bin/pwndbg";
|
# Print a beautifully colored prompt:
|
||||||
|
set prompt \001\033[1;36m\002(gdb) \001\033[0m\002
|
||||||
|
'';
|
||||||
|
|
||||||
|
# local.shell.aliases."System Tool Replacements".gdb = "${pkgs.pwndbg}/bin/pwndbg";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.gh-dash.enable = true;
|
programs.gh-dash = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.gh = {
|
programs.gh = {
|
||||||
enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
gitProtocol = "ssh";
|
gitProtocol = "ssh";
|
||||||
pager = "${pkgs.bat}/bin/bat";
|
pager = "${pkgs.bat}/bin/bat";
|
||||||
|
@@ -13,13 +13,12 @@ let
|
|||||||
"github.com:"
|
"github.com:"
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
lib.mkIf cfg.enable {
|
||||||
# TODO: convert to template once nix-sops supports it in hm module
|
# TODO: convert to template once nix-sops supports it in hm module
|
||||||
sops.secrets."git/nordicsemi-config" = { };
|
sops.secrets."git/nordicsemi-config" = { };
|
||||||
|
|
||||||
programs.git = lib.mkMerge [
|
programs.git = lib.mkMerge [
|
||||||
{
|
{
|
||||||
enable = true;
|
|
||||||
package = pkgs.gitFull;
|
package = pkgs.gitFull;
|
||||||
|
|
||||||
userName = "h7x4";
|
userName = "h7x4";
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
let
|
||||||
|
cfg = config.programs.gpg;
|
||||||
|
in
|
||||||
|
lib.mkIf cfg.enable {
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
|
||||||
homedir = "${config.xdg.configHome}/gnupg";
|
homedir = "${config.xdg.configHome}/gnupg";
|
||||||
|
|
||||||
auto-refresh-keys.enable = true;
|
auto-refresh-keys.enable = true;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.jq.enable = true;
|
programs.jq = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
programs.less = {
|
programs.less = {
|
||||||
enable = true;
|
|
||||||
keys = ''
|
keys = ''
|
||||||
#env
|
#env
|
||||||
LESS = -i -R
|
LESS = -i -R
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.man = {
|
programs.man = {
|
||||||
enable = true;
|
|
||||||
generateCaches = true;
|
generateCaches = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
{ pkgs, lib, machineVars, ... }:
|
{ config, pkgs, lib, machineVars, ... }:
|
||||||
{
|
let
|
||||||
|
cfg = config.programs.neovim;
|
||||||
|
in
|
||||||
|
lib.mkIf cfg.enable {
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
|
||||||
|
|
||||||
auto-clean-swapfiles.enable = true;
|
auto-clean-swapfiles.enable = true;
|
||||||
|
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.nix-index = {
|
programs.nix-index = {
|
||||||
enable = true;
|
|
||||||
autoUpdateDatabase.enable = true;
|
autoUpdateDatabase.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.nushell = {
|
programs.nushell = { };
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.pandoc.enable = true;
|
programs.pandoc = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,24 +1,31 @@
|
|||||||
{ config, pkgs, extendedLib, ... }:
|
{ config, lib, pkgs, extendedLib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.python;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# Python for interactive use
|
options.programs.python.enable = lib.mkEnableOption "python";
|
||||||
home.packages = [
|
|
||||||
(pkgs.python3.withPackages (pypkgs: with pypkgs; [
|
|
||||||
requests
|
|
||||||
]))
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.configFile."python/pyrc".text = ''
|
config = lib.mkIf cfg.enable {
|
||||||
#!/usr/bin/env python3
|
# Python for interactive use
|
||||||
import sys
|
home.packages = [
|
||||||
|
(pkgs.python3.withPackages (pypkgs: with pypkgs; [
|
||||||
|
requests
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
|
||||||
# You also need \x01 and \x02 to separate escape sequence, due to:
|
xdg.configFile."python/pyrc".text = ''
|
||||||
# https://stackoverflow.com/a/9468954/1147688
|
#!/usr/bin/env python3
|
||||||
sys.ps1='\x01\x1b${extendedLib.termColors.front.blue "[Python]> "}\x02>>>\x01\x1b[0m\x02 ' # bright yellow
|
import sys
|
||||||
sys.ps2='\x01\x1b[1;49;31m\x02...\x01\x1b[0m\x02 ' # bright red
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
# You also need \x01 and \x02 to separate escape sequence, due to:
|
||||||
PYTHONSTARTUP = "${config.xdg.configHome}/python/pyrc";
|
# https://stackoverflow.com/a/9468954/1147688
|
||||||
PYTHON_HISTORY = "${config.xdg.dataHome}/python_history";
|
sys.ps1='\x01\x1b${extendedLib.termColors.front.blue "[Python]> "}\x02>>>\x01\x1b[0m\x02 ' # bright yellow
|
||||||
|
sys.ps2='\x01\x1b[1;49;31m\x02...\x01\x1b[0m\x02 ' # bright red
|
||||||
|
'';
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
PYTHONSTARTUP = "${config.xdg.configHome}/python/pyrc";
|
||||||
|
PYTHON_HISTORY = "${config.xdg.dataHome}/python_history";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.ripgrep.enable = true;
|
programs.ripgrep = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.skim = {
|
programs.skim = {
|
||||||
enable = true;
|
|
||||||
defaultCommand = "fd --type f";
|
defaultCommand = "fd --type f";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,17 +1,24 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.programs.sqlite;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
xdg.configFile."sqlite3/sqliterc".text = ''
|
options.programs.sqlite.enable = lib.mkEnableOption "sqlite";
|
||||||
.bail on
|
|
||||||
.changes on
|
|
||||||
.headers on
|
|
||||||
.mode box
|
|
||||||
.nullvalue '<NULL>'
|
|
||||||
.timer on
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.packages = [
|
config = lib.mkIf cfg.enable {
|
||||||
pkgs.sqlite-interactive
|
xdg.configFile."sqlite3/sqliterc".text = ''
|
||||||
];
|
.bail on
|
||||||
|
.changes on
|
||||||
|
.headers on
|
||||||
|
.mode box
|
||||||
|
.nullvalue '<NULL>'
|
||||||
|
.timer on
|
||||||
|
'';
|
||||||
|
|
||||||
home.sessionVariables.SQLITE_HISTORY= "${config.xdg.dataHome}/sqlite_history";
|
home.packages = [
|
||||||
|
pkgs.sqlite-interactive
|
||||||
|
];
|
||||||
|
|
||||||
|
home.sessionVariables.SQLITE_HISTORY= "${config.xdg.dataHome}/sqlite_history";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
|
cfg = config.programs.ssh;
|
||||||
runtimeDir = "/run/user/${toString config.home.uid}";
|
runtimeDir = "/run/user/${toString config.home.uid}";
|
||||||
controlMastersDir = "${runtimeDir}/ssh";
|
controlMastersDir = "${runtimeDir}/ssh";
|
||||||
in
|
in
|
||||||
@@ -9,31 +10,32 @@ in
|
|||||||
./other.nix
|
./other.nix
|
||||||
./pvv.nix
|
./pvv.nix
|
||||||
];
|
];
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
sops.secrets."ssh/secret-config" = {
|
sops.secrets."ssh/secret-config" = {
|
||||||
mode = "0444";
|
mode = "0444";
|
||||||
};
|
|
||||||
|
|
||||||
programs.ssh = {
|
|
||||||
enable = true;
|
|
||||||
includes = [
|
|
||||||
config.sops.secrets."ssh/secret-config".path
|
|
||||||
"${config.home.homeDirectory}/.ssh/mutable_config"
|
|
||||||
];
|
|
||||||
|
|
||||||
controlMaster = "auto";
|
|
||||||
controlPersist = "10m";
|
|
||||||
controlPath = "${controlMastersDir}/%n%C";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.tmpfiles.settings."10-ssh" = {
|
|
||||||
${controlMastersDir}.d = {
|
|
||||||
user = config.home.username;
|
|
||||||
mode = "0700";
|
|
||||||
};
|
};
|
||||||
"${config.home.homeDirectory}/.ssh/mutable_config".f = {
|
|
||||||
user = config.home.username;
|
programs.ssh = {
|
||||||
mode = "0600";
|
includes = [
|
||||||
|
config.sops.secrets."ssh/secret-config".path
|
||||||
|
"${config.home.homeDirectory}/.ssh/mutable_config"
|
||||||
|
];
|
||||||
|
|
||||||
|
controlMaster = "auto";
|
||||||
|
controlPersist = "10m";
|
||||||
|
controlPath = "${controlMastersDir}/%n%C";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.tmpfiles.settings."10-ssh" = {
|
||||||
|
${controlMastersDir}.d = {
|
||||||
|
user = config.home.username;
|
||||||
|
mode = "0700";
|
||||||
|
};
|
||||||
|
"${config.home.homeDirectory}/.ssh/mutable_config".f = {
|
||||||
|
user = config.home.username;
|
||||||
|
mode = "0600";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -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 = {
|
systemd.user.services.update-tldr-db = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Update tealdeer database";
|
Description = "Update tealdeer database";
|
||||||
|
@@ -4,5 +4,5 @@
|
|||||||
./auto-update-tldr-db.nix
|
./auto-update-tldr-db.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.tealdeer.enable = true;
|
programs.tealdeer = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.texlive = {
|
programs.texlive = {
|
||||||
enable = true;
|
|
||||||
# packageSet = pkgs.texlive.combined.scheme-medium;
|
# packageSet = pkgs.texlive.combined.scheme-medium;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -2,17 +2,15 @@
|
|||||||
let
|
let
|
||||||
cfg = config.programs.thunderbird;
|
cfg = config.programs.thunderbird;
|
||||||
in
|
in
|
||||||
{
|
lib.mkIf cfg.enable {
|
||||||
programs.thunderbird = {
|
programs.thunderbird = {
|
||||||
enable = !machineVars.headless;
|
|
||||||
profiles.h7x4 = {
|
profiles.h7x4 = {
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
withExternalGnupg = true;
|
withExternalGnupg = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
home.packages = lib.mkIf cfg.enable (with pkgs; [
|
|
||||||
birdtray
|
birdtray
|
||||||
]);
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
|
||||||
baseIndex = 1;
|
baseIndex = 1;
|
||||||
clock24 = true;
|
clock24 = true;
|
||||||
escapeTime = 0;
|
escapeTime = 0;
|
||||||
|
@@ -1,14 +1,12 @@
|
|||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
home.packages = [
|
programs.uv = {
|
||||||
pkgs.uv
|
# https://docs.astral.sh/uv/configuration/files/
|
||||||
];
|
# https://docs.astral.sh/uv/reference/settings/
|
||||||
|
settings = {
|
||||||
# https://docs.astral.sh/uv/configuration/files/
|
python-downloads = "never";
|
||||||
# https://docs.astral.sh/uv/reference/settings/
|
python-preference = "only-system";
|
||||||
xdg.configFile."uv/uv.toml".source = (pkgs.formats.toml { }).generate "uv-config" {
|
pip.index-url = "https://test.pypi.org/simple";
|
||||||
python-downloads = "never";
|
};
|
||||||
python-preference = "only-system";
|
|
||||||
pip.index-url = "https://test.pypi.org/simple";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
|
||||||
keymap = {
|
keymap = {
|
||||||
manager.prepend_keymap = [
|
manager.prepend_keymap = [
|
||||||
{
|
{
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.yt-dlp.enable = true;
|
programs.yt-dlp = { };
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
programs.zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
|
||||||
enableNushellIntegration = config.programs.nushell.enable;
|
enableNushellIntegration = config.programs.nushell.enable;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.programs.zsh;
|
cfg = config.programs.zsh;
|
||||||
in
|
in
|
||||||
{
|
lib.mkIf cfg.enable {
|
||||||
home.file."${cfg.dotDir}/.zshrc".onChange = ''
|
home.file."${cfg.dotDir}/.zshrc".onChange = ''
|
||||||
${lib.getExe (pkgs.writeTextFile {
|
${lib.getExe (pkgs.writeTextFile {
|
||||||
name = "zsh-compinit-oneshot.zsh";
|
name = "zsh-compinit-oneshot.zsh";
|
||||||
@@ -22,7 +22,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
|
||||||
dotDir = ".config/zsh";
|
dotDir = ".config/zsh";
|
||||||
# enableSyntaxHighlighting = true;
|
# enableSyntaxHighlighting = true;
|
||||||
defaultKeymap = "viins";
|
defaultKeymap = "viins";
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
services.pueue = {
|
services.pueue = { };
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user