config/shared/home/default.nix

220 lines
5.6 KiB
Nix
Raw Normal View History

{
2023-10-09 14:17:24 +00:00
lib,
pkgs,
2023-10-06 08:32:22 +00:00
stateVersion,
2024-05-06 11:42:46 +00:00
email ? null,
2024-02-04 20:05:44 +00:00
devTools,
2023-10-27 07:31:00 +00:00
hmOnly,
username,
...
2024-07-29 12:39:54 +00:00
}:
let
2024-03-12 14:50:11 +00:00
homeDirectory = "/home/${username}";
2024-07-29 12:39:54 +00:00
in
{
home = {
2024-03-12 14:50:11 +00:00
inherit stateVersion username homeDirectory;
};
2024-03-13 07:56:08 +00:00
home.file = {
".parallel/will-cite".text = "";
};
2024-03-12 14:50:11 +00:00
2024-07-29 12:39:54 +00:00
home.sessionVariables = lib.mkIf devTools { GOPATH = "${homeDirectory}/.go"; };
2024-03-12 14:50:11 +00:00
2024-07-29 12:39:54 +00:00
home.packages =
with pkgs;
2023-12-12 11:16:02 +00:00
lib.mkMerge [
2024-07-29 12:39:54 +00:00
[ extract_url ]
2024-04-15 11:50:52 +00:00
2024-02-04 20:05:44 +00:00
(lib.mkIf devTools [
2024-09-17 11:26:06 +00:00
pkgs-unstable.delve
2025-02-19 14:56:48 +00:00
pkgs-unstable.go_1_24
2024-08-19 11:59:23 +00:00
pkgs-unstable.go-tools
2024-11-19 20:31:08 +00:00
pkgs.zigpkgs."0.13.0"
2023-12-12 11:16:02 +00:00
])
2024-02-02 09:06:36 +00:00
2023-12-12 11:16:02 +00:00
(lib.mkIf hmOnly [
2024-02-07 09:24:04 +00:00
# pkgs by motiejus
2024-02-05 07:19:16 +00:00
tmuxbash
nicer
2024-02-07 09:24:04 +00:00
2023-10-27 07:31:00 +00:00
ncdu
2024-02-05 11:42:13 +00:00
poop
2023-10-27 07:31:00 +00:00
tokei
2024-02-07 09:24:04 +00:00
bloaty
2023-12-07 08:24:58 +00:00
scrcpy
yt-dlp
2023-10-27 07:31:00 +00:00
vimv-rs
2024-02-05 11:42:13 +00:00
ripgrep
2024-02-07 11:53:02 +00:00
yamllint
2023-12-14 08:10:00 +00:00
bandwhich
2023-10-27 07:31:00 +00:00
hyperfine
2024-02-14 13:54:42 +00:00
nix-output-monitor
2023-12-12 11:16:02 +00:00
])
];
2024-02-04 20:23:56 +00:00
programs = lib.mkMerge [
{
direnv.enable = true;
man = {
enable = true;
generateCaches = true;
};
chromium = lib.mkIf devTools {
2024-03-12 14:14:15 +00:00
enable = true;
extensions = [
2024-07-29 12:39:54 +00:00
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
{ id = "mdjildafknihdffpkfmmpnpoiajfjnjd"; } # consent-o-matic
2024-03-12 14:14:15 +00:00
];
};
2024-02-04 20:23:56 +00:00
firefox = lib.mkIf devTools {
2023-11-27 16:17:27 +00:00
enable = true;
2024-12-07 20:09:32 +00:00
package = pkgs.firefox-bin;
2024-02-04 20:23:56 +00:00
policies.DisableAppUpdate = true;
profiles = {
xdefault = {
isDefault = true;
settings = {
"app.update.auto" = false;
2025-01-16 08:28:05 +00:00
"browser.uidensity" = 1;
2024-02-04 20:23:56 +00:00
"browser.aboutConfig.showWarning" = false;
"browser.contentblocking.category" = "strict";
"browser.urlbar.showSearchSuggestionsFirst" = false;
"layout.css.prefers-color-scheme.content-override" = 0;
"signon.management.page.breach-alerts.enabled" = false;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
2024-07-28 17:38:29 +00:00
header-editor
2024-02-04 20:23:56 +00:00
ublock-origin
consent-o-matic
multi-account-containers
];
};
};
2023-11-27 16:17:27 +00:00
};
2024-02-04 20:23:56 +00:00
neovim = lib.mkMerge [
2023-11-27 16:17:27 +00:00
{
2024-02-04 20:23:56 +00:00
enable = true;
vimAlias = true;
vimdiffAlias = true;
defaultEditor = true;
plugins = lib.mkMerge [
2024-07-29 12:39:54 +00:00
[ pkgs.vimPlugins.fugitive ]
(lib.mkIf devTools [
2024-06-14 08:27:05 +00:00
pkgs.vimPlugins.fzf-vim
2024-07-09 04:50:48 +00:00
pkgs.vimPlugins.vim-gh-line
2024-06-11 06:40:29 +00:00
pkgs.vimPlugins.nvim-lspconfig
2024-08-19 11:59:23 +00:00
pkgs.pkgs-unstable.vimPlugins.vim-go
pkgs.pkgs-unstable.vimPlugins.zig-vim
])
];
2024-02-04 20:23:56 +00:00
extraConfig = builtins.readFile ./vimrc;
2023-11-27 16:17:27 +00:00
}
2024-02-04 20:23:56 +00:00
(lib.mkIf devTools {
extraLuaConfig =
builtins.readFile
2024-07-29 12:39:54 +00:00
(pkgs.substituteAll {
src = ./dev.lua;
inherit (pkgs) ripgrep;
}).outPath;
2024-02-04 20:23:56 +00:00
})
2023-11-27 16:17:27 +00:00
];
2024-02-04 20:23:56 +00:00
git = {
enable = true;
userEmail = email;
userName = "Motiejus Jakštys";
aliases.yolo = "commit --amend --no-edit -a";
extraConfig = {
log.date = "iso-strict-local";
2024-02-04 20:23:56 +00:00
pull.ff = "only";
2024-11-12 16:44:14 +00:00
core.abbrev = 12;
pretty.fixes = "Fixes: %h (\"%s\")";
rerere.enabled = true;
2024-02-04 20:23:56 +00:00
init.defaultBranch = "main";
merge.conflictstyle = "zdiff3";
2025-03-13 11:55:05 +00:00
push.autoSetupRemote = true;
2024-11-12 16:03:36 +00:00
sendemail = {
sendmailcmd = lib.getExe pkgs.msmtp;
smtpserveroption = [
"-a"
"mj"
];
confirm = "always";
suppresscc = "self";
};
2024-02-04 20:23:56 +00:00
};
};
gpg = {
enable = true;
mutableKeys = false;
mutableTrust = false;
publicKeys = [
{
source = ./motiejus-gpg.txt;
trust = "ultimate";
}
];
};
2024-04-25 21:05:29 +00:00
htop = {
enable = true;
settings = {
2024-04-26 08:44:02 +00:00
header_layout = "three_25_50_25";
2024-04-26 08:47:20 +00:00
column_meters_0 = "MemorySwap LoadAverage NetworkIO DiskIO";
column_meter_modes_0 = "1 2 2 2";
2024-04-26 08:44:02 +00:00
column_meters_1 = "AllCPUs4";
2024-04-25 21:05:29 +00:00
column_meter_modes_1 = "1";
2024-04-26 08:47:20 +00:00
column_meters_2 = "PressureStallIOSome PressureStallCPUSome PressureStallMemorySome Uptime";
2024-04-26 08:44:02 +00:00
column_meter_modes_2 = "2 2 2 2";
2024-04-26 05:54:31 +00:00
hide_kernel_threads = "1";
hide_userland_threads = "1";
show_cpu_frequency = "1";
show_cpu_temperature = "0";
2024-04-25 21:05:29 +00:00
};
};
2024-02-04 20:23:56 +00:00
tmux = {
enable = true;
keyMode = "vi";
historyLimit = 1000000;
extraConfig = ''
2024-09-06 06:59:47 +00:00
bind k clear-history
2024-02-04 20:23:56 +00:00
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -v -c "#{pane_current_path}"
2024-04-10 07:13:23 +00:00
# neovim :checkhealth
set-option -sg escape-time 10
set-option -g default-terminal "screen-256color"
2024-04-10 07:16:03 +00:00
set-option -sa terminal-features ',xterm-256color:RGB'
2024-02-04 20:23:56 +00:00
'';
};
}
2024-07-29 12:39:54 +00:00
(lib.mkIf (!hmOnly) {
bash = {
enable = true;
shellAliases = {
"l" = "echo -n ł | xclip -selection clipboard";
"L" = "echo -n Ł | xclip -selection clipboard";
2024-07-29 12:39:54 +00:00
"gp" = "${pkgs.git}/bin/git remote | ${pkgs.parallel}/bin/parallel --verbose git push";
2024-02-04 20:23:56 +00:00
};
2024-07-29 12:39:54 +00:00
initExtra = ''
t() { git rev-parse --show-toplevel; }
d() { date --utc --date=@$(echo "$1" | sed -E 's/^[^1-9]*([0-9]{10}).*/\1/') +"%F %T"; }
source ${./gg.sh}
'';
};
})
2024-02-04 20:23:56 +00:00
];
}