bat and git-delta
This commit is contained in:
parent
21ad9a362a
commit
6cb15ad29e
5 changed files with 115 additions and 41 deletions
|
@ -8,8 +8,6 @@ let
|
||||||
inherit (config.grimmShared) enable tooling graphical;
|
inherit (config.grimmShared) enable tooling graphical;
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
mkEnableOption
|
mkEnableOption
|
||||||
mkOption
|
|
||||||
types
|
|
||||||
getExe
|
getExe
|
||||||
optionals
|
optionals
|
||||||
mkIf
|
mkIf
|
||||||
|
@ -24,6 +22,7 @@ in
|
||||||
./rust.nix
|
./rust.nix
|
||||||
./nvim.nix
|
./nvim.nix
|
||||||
./lsp.nix
|
./lsp.nix
|
||||||
|
./git.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf (enable && tooling.enable) {
|
config = mkIf (enable && tooling.enable) {
|
||||||
|
@ -33,13 +32,13 @@ in
|
||||||
(writeShellScriptBin "systemd-owner" "systemctl show -pUser,UID $@")
|
(writeShellScriptBin "systemd-owner" "systemctl show -pUser,UID $@")
|
||||||
(writeShellScriptBin "tree" "${getExe eza} -T --git -lh --no-permissions --no-user --no-filesize --no-time")
|
(writeShellScriptBin "tree" "${getExe eza} -T --git -lh --no-permissions --no-user --no-filesize --no-time")
|
||||||
(writeShellScriptBin "spawn" ''exec "$@" &> /dev/null &'')
|
(writeShellScriptBin "spawn" ''exec "$@" &> /dev/null &'')
|
||||||
(writeShellScriptBin "silent-add" "git add --intent-to-add $@ ; git update-index --assume-unchanged $@")
|
|
||||||
|
|
||||||
urlencode
|
urlencode
|
||||||
rfindup
|
rfindup
|
||||||
pstree
|
pstree
|
||||||
file
|
file
|
||||||
wget
|
wget
|
||||||
|
bat
|
||||||
hyfetch
|
hyfetch
|
||||||
util-linux
|
util-linux
|
||||||
btop
|
btop
|
||||||
|
@ -52,8 +51,6 @@ in
|
||||||
unzip
|
unzip
|
||||||
p7zip
|
p7zip
|
||||||
|
|
||||||
tea
|
|
||||||
|
|
||||||
fbcat
|
fbcat
|
||||||
gomuks
|
gomuks
|
||||||
ranger
|
ranger
|
||||||
|
@ -76,30 +73,11 @@ in
|
||||||
jetbrains.idea-community
|
jetbrains.idea-community
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
lfs.enable = true;
|
|
||||||
config = {
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
credential.username = tooling.git_user;
|
|
||||||
user.name = tooling.git_user;
|
|
||||||
user.email = tooling.git_email;
|
|
||||||
push.autoSetupRemote = true;
|
|
||||||
core.autocrlf = "input";
|
|
||||||
commit.gpgsign = true;
|
|
||||||
pull.rebase = true;
|
|
||||||
alias = {
|
|
||||||
pfusch = "push --force-with-lease --force-if-includes";
|
|
||||||
fuck = "reset HEAD~1";
|
|
||||||
fixup = "commit --fixup";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.shellAliases = {
|
environment.shellAliases = {
|
||||||
":q" = "exit";
|
":q" = "exit";
|
||||||
"ls" = "eza";
|
"ls" = "eza";
|
||||||
"lix" = "nix";
|
"lix" = "nix";
|
||||||
|
"bat" = "bat --theme=Dracula";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
|
@ -108,6 +86,11 @@ in
|
||||||
#keyMode = "vi";
|
#keyMode = "vi";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
MANPAGER = "sh -c 'col -bx | ${getExe pkgs.bat} -l man -p'";
|
||||||
|
MANROFFOPT = "-c";
|
||||||
|
};
|
||||||
|
|
||||||
# virtualisation.docker.enable = true;
|
# virtualisation.docker.enable = true;
|
||||||
|
|
||||||
services.dbus.implementation = "broker";
|
services.dbus.implementation = "broker";
|
||||||
|
@ -125,16 +108,5 @@ in
|
||||||
|
|
||||||
options.grimmShared.tooling = {
|
options.grimmShared.tooling = {
|
||||||
enable = mkEnableOption "grimm-tooling";
|
enable = mkEnableOption "grimm-tooling";
|
||||||
git_user = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "Grimmauld";
|
|
||||||
description = "Username for git to use";
|
|
||||||
};
|
|
||||||
|
|
||||||
git_email = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "${config.grimmShared.tooling.git_user}@grimmauld.de";
|
|
||||||
description = "Email for git to use";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
85
common/tooling/git.nix
Normal file
85
common/tooling/git.nix
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (config.grimmShared) enable tooling;
|
||||||
|
inherit (lib)
|
||||||
|
mkOption
|
||||||
|
types
|
||||||
|
getExe
|
||||||
|
mkIf
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./lilypond.nix
|
||||||
|
./nix.nix
|
||||||
|
./security.nix
|
||||||
|
./python.nix
|
||||||
|
./rust.nix
|
||||||
|
./nvim.nix
|
||||||
|
./lsp.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = mkIf (enable && tooling.enable) {
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.writeShellScriptBin "silent-add" "${getExe config.programs.git.package} add --intent-to-add $@ ; ${getExe config.programs.git.package} update-index --assume-unchanged $@")
|
||||||
|
|
||||||
|
pkgs.urlencode
|
||||||
|
pkgs.tea
|
||||||
|
pkgs.delta
|
||||||
|
];
|
||||||
|
|
||||||
|
grimmShared.tooling.nvim.plugins = with pkgs.vimPlugins; [ fugitive ];
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
config = {
|
||||||
|
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
credential.username = tooling.git_user;
|
||||||
|
user.name = tooling.git_user;
|
||||||
|
user.email = tooling.git_email;
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
core.autocrlf = "input";
|
||||||
|
commit.gpgsign = true;
|
||||||
|
pull.rebase = true;
|
||||||
|
include.path = "${pkgs.delta.src}/themes.gitconfig";
|
||||||
|
|
||||||
|
core.pager = "delta";
|
||||||
|
interactive.diffFilter = "delta --color-only";
|
||||||
|
delta = {
|
||||||
|
navigate = true;
|
||||||
|
features = "mantis-shrimp";
|
||||||
|
};
|
||||||
|
|
||||||
|
merge.conflictstyle = "diff3";
|
||||||
|
diff.colorMoved = "default";
|
||||||
|
|
||||||
|
alias = {
|
||||||
|
pfusch = "push --force-with-lease --force-if-includes";
|
||||||
|
fuck = "reset HEAD~1";
|
||||||
|
fixup = "commit --fixup";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
options.grimmShared.tooling = {
|
||||||
|
git_user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Grimmauld";
|
||||||
|
description = "Username for git to use";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_email = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "${config.grimmShared.tooling.git_user}@grimmauld.de";
|
||||||
|
description = "Email for git to use";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -38,9 +38,7 @@ in
|
||||||
{
|
{
|
||||||
config = mkIf (enable && tooling.enable) {
|
config = mkIf (enable && tooling.enable) {
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[
|
[ pkgs.treefmt ]
|
||||||
pkgs.treefmt
|
|
||||||
]
|
|
||||||
++ (map (v: v.lsp.package) (filter (v: !isNull v.lsp) tooling.lang_servers))
|
++ (map (v: v.lsp.package) (filter (v: !isNull v.lsp) tooling.lang_servers))
|
||||||
++ (map (v: v.fmt.package) (filter (v: !isNull v.fmt) tooling.lang_servers));
|
++ (map (v: v.fmt.package) (filter (v: !isNull v.fmt) tooling.lang_servers));
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ in
|
||||||
|
|
||||||
programs.git.config.core.editor = getExe pkgs.neovim;
|
programs.git.config.core.editor = getExe pkgs.neovim;
|
||||||
|
|
||||||
grimmShared.tooling.nvim.plugins = with pkgs.vimPlugins; [ fugitive ];
|
grimmShared.tooling.nvim.plugins = with pkgs.vimPlugins; [ vim-monokai-pro ];
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -42,6 +42,25 @@ in
|
||||||
set nocompatible
|
set nocompatible
|
||||||
set clipboard+=unnamedplus
|
set clipboard+=unnamedplus
|
||||||
set ff=unix
|
set ff=unix
|
||||||
|
set termguicolors
|
||||||
|
colorscheme monokai_pro
|
||||||
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
hi NonText guibg=NONE ctermbg=NONE
|
||||||
|
|
||||||
|
" Toggle transparent background
|
||||||
|
let t:is_transparent = 1
|
||||||
|
function! Toggle_transparent()
|
||||||
|
if t:is_transparent == 0
|
||||||
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
hi NonText guibg=NONE ctermbg=NONE
|
||||||
|
let t:is_transparent = 1
|
||||||
|
else
|
||||||
|
set background=dark
|
||||||
|
hi EndOfBuffer ctermfg=bg
|
||||||
|
let t:is_transparent = 0
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
nnoremap <F12> : call Toggle_transparent()<CR>
|
||||||
|
|
||||||
luafile ${luarc}
|
luafile ${luarc}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ in
|
||||||
name: value: "aliases[\"${name}\"] = '''${value}'''"
|
name: value: "aliases[\"${name}\"] = '''${value}'''"
|
||||||
) config.environment.shellAliases
|
) config.environment.shellAliases
|
||||||
);
|
);
|
||||||
package = pkgs.xonsh.wrapper.override { extraPackages = pyLibs; };
|
# package = pkgs.xonsh.wrapper.override { extraPackages = pyLibs; };
|
||||||
};
|
};
|
||||||
|
|
||||||
grimmShared.tooling.lang_servers = [
|
grimmShared.tooling.lang_servers = [
|
||||||
|
|
Loading…
Reference in a new issue