Move gpg, git, tmux/screen to separate file
This commit is contained in:
parent
124df42fd8
commit
881b22c9b2
135
hm/common.nix
135
hm/common.nix
|
@ -213,37 +213,8 @@ in
|
||||||
echo -en "\033]0; $USER@$HOST $PWD\007"
|
echo -en "\033]0; $USER@$HOST $PWD\007"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
gpg = {
|
git.enable = true;
|
||||||
enable = true;
|
gpg.enable = true;
|
||||||
homedir = "${config.xdg.stateHome}/gnupg";
|
|
||||||
settings = {
|
|
||||||
# Remove fluff
|
|
||||||
no-greeting = true;
|
|
||||||
no-emit-version = true;
|
|
||||||
no-comments = true;
|
|
||||||
# Output format that I prefer
|
|
||||||
keyid-format = "0xlong";
|
|
||||||
# Show fingerprints
|
|
||||||
with-fingerprint = true;
|
|
||||||
# Make sure to show if key is invalid
|
|
||||||
# (should be default on most platform,
|
|
||||||
# but just to be sure)
|
|
||||||
list-options = "show-uid-validity";
|
|
||||||
verify-options = "show-uid-validity";
|
|
||||||
# Stronger algorithm (https://wiki.archlinux.org/title/GnuPG#Different_algorithm)
|
|
||||||
personal-digest-preferences = "SHA512";
|
|
||||||
cert-digest-algo = "SHA512";
|
|
||||||
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
|
||||||
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
|
|
||||||
};
|
|
||||||
publicKeys = [{
|
|
||||||
source = builtins.fetchurl {
|
|
||||||
url = "https://keys.openpgp.org/vks/v1/by-fingerprint/4FBA930D314A03215E2CDB0A8312C8CAC1BAC289";
|
|
||||||
sha256 = "sha256:10y9xqcy1vyk2p8baay14p3vwdnlwynk0fvfbika65hz2z8yw2cm";
|
|
||||||
};
|
|
||||||
trust = "ultimate";
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
fzf = {
|
fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
@ -259,46 +230,6 @@ in
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
less.enable = true;
|
less.enable = true;
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.gitFull;
|
|
||||||
aliases = {
|
|
||||||
"git" = "!exec git"; # In case I write one too many git
|
|
||||||
};
|
|
||||||
ignores = [
|
|
||||||
"*.swp"
|
|
||||||
"*.swo"
|
|
||||||
"*.ycm_extra_conf.py"
|
|
||||||
"tags"
|
|
||||||
".mypy_cache"
|
|
||||||
];
|
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
options = {
|
|
||||||
line-numbers = true;
|
|
||||||
syntax-theme = "base16";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lfs.enable = true;
|
|
||||||
userEmail = lib.mkDefault "geoffrey@frogeye.fr";
|
|
||||||
userName = lib.mkDefault "Geoffrey Frogeye";
|
|
||||||
extraConfig = {
|
|
||||||
core = {
|
|
||||||
editor = "nvim";
|
|
||||||
};
|
|
||||||
push = {
|
|
||||||
default = "matching";
|
|
||||||
};
|
|
||||||
pull = {
|
|
||||||
ff = "only";
|
|
||||||
};
|
|
||||||
} // lib.optionalAttrs config.frogeye.desktop.xorg {
|
|
||||||
diff.tool = "meld";
|
|
||||||
difftool.prompt = false;
|
|
||||||
"difftool \"meld\"".cmd = "${pkgs.meld}/bin/meld \"$LOCAL\" \"$REMOTE\"";
|
|
||||||
# This escapes quotes, which isn't the case in the original, hoping this isn't an issue.
|
|
||||||
};
|
|
||||||
};
|
|
||||||
readline = {
|
readline = {
|
||||||
enable = true;
|
enable = true;
|
||||||
variables = {
|
variables = {
|
||||||
|
@ -327,50 +258,10 @@ in
|
||||||
};
|
};
|
||||||
extraConfig = builtins.readFile ./inputrc;
|
extraConfig = builtins.readFile ./inputrc;
|
||||||
};
|
};
|
||||||
tmux =
|
tmux.enable = true;
|
||||||
let
|
|
||||||
themepack = pkgs.tmuxPlugins.mkTmuxPlugin
|
|
||||||
rec {
|
|
||||||
pluginName = "tmux-themepack";
|
|
||||||
version = "1.1.0";
|
|
||||||
rtpFilePath = "themepack.tmux";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jimeh";
|
|
||||||
repo = "tmux-themepack";
|
|
||||||
rev = "${version}";
|
|
||||||
sha256 = "f6y92kYsKDFanNx5ATx4BkaB/E7UrmyIHU/5Z01otQE=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
mouse = false;
|
|
||||||
clock24 = true;
|
|
||||||
# TODO Vim mode?
|
|
||||||
plugins = with pkgs.tmuxPlugins; [
|
|
||||||
sensible
|
|
||||||
];
|
|
||||||
extraConfig = builtins.readFile ./tmux.conf + "source-file ${themepack}/share/tmux-plugins/tmux-themepack/powerline/default/green.tmuxtheme\n";
|
|
||||||
};
|
|
||||||
translate-shell.enable = true; # TODO Cool config?
|
translate-shell.enable = true; # TODO Cool config?
|
||||||
password-store.enable = true;
|
password-store.enable = true;
|
||||||
};
|
};
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enableBashIntegration = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
git-sync = {
|
|
||||||
enable = false; # The real thing syncs too quickly and asks for passphrase, which is annoying
|
|
||||||
# So for now it's just a way to park config which will be reused by git-sync-* commands
|
|
||||||
repositories = {
|
|
||||||
dotfiles = {
|
|
||||||
path = "${config.xdg.configHome}/dotfiles";
|
|
||||||
uri = lib.mkDefault "https://git.frogeye.fr/geoffrey/dotfiles.git";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg = {
|
xdg = {
|
||||||
configFile = {
|
configFile = {
|
||||||
"ccache.conf" = {
|
"ccache.conf" = {
|
||||||
|
@ -397,9 +288,6 @@ in
|
||||||
"pythonstartup.py" = {
|
"pythonstartup.py" = {
|
||||||
text = (builtins.readFile ./pythonstartup.py);
|
text = (builtins.readFile ./pythonstartup.py);
|
||||||
};
|
};
|
||||||
"screenrc" = {
|
|
||||||
text = (builtins.readFile ./screenrc);
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
|
@ -478,22 +366,6 @@ in
|
||||||
# password
|
# password
|
||||||
pwgen
|
pwgen
|
||||||
|
|
||||||
(pkgs.writeShellApplication {
|
|
||||||
name = "git-sync-init";
|
|
||||||
text = (lib.strings.concatLines
|
|
||||||
(map (r: ''[ -d "${r.path}" ] || ${pkgs.git}/bin/git clone "${r.uri}" "${r.path}"'')
|
|
||||||
(lib.attrsets.attrValues config.services.git-sync.repositories)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
})
|
|
||||||
(pkgs.writeShellApplication {
|
|
||||||
name = "git-sync-pull";
|
|
||||||
text = (lib.strings.concatLines
|
|
||||||
(map (r: ''(cd "${r.path}"; echo "$PWD"; ${pkgs.git}/bin/git pull || true)'')
|
|
||||||
(lib.attrsets.attrValues config.services.git-sync.repositories)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
# Favourite commands
|
# Favourite commands
|
||||||
|
@ -509,7 +381,6 @@ in
|
||||||
PYTHONSTARTUP = "${config.xdg.configHome}/pythonstartup.py";
|
PYTHONSTARTUP = "${config.xdg.configHome}/pythonstartup.py";
|
||||||
# TODO I think we're not using the urxvt daemon on purpose?
|
# TODO I think we're not using the urxvt daemon on purpose?
|
||||||
# TODO this should be desktop only, as a few things are too.
|
# TODO this should be desktop only, as a few things are too.
|
||||||
SCREENRC = "${config.xdg.configHome}/screenrc";
|
|
||||||
SQLITE_HISTFILE = "${config.xdg.stateHome}/sqlite_history";
|
SQLITE_HISTFILE = "${config.xdg.stateHome}/sqlite_history";
|
||||||
YARN_DISABLE_SELF_UPDATE_CHECK = "true"; # This also disable the creation of a ~/.yarnrc file
|
YARN_DISABLE_SELF_UPDATE_CHECK = "true"; # This also disable the creation of a ~/.yarnrc file
|
||||||
} // lib.optionalAttrs config.frogeye.desktop.xorg {
|
} // lib.optionalAttrs config.frogeye.desktop.xorg {
|
||||||
|
|
|
@ -7,9 +7,12 @@
|
||||||
./dev.nix
|
./dev.nix
|
||||||
./extra.nix
|
./extra.nix
|
||||||
./gaming
|
./gaming
|
||||||
|
./git
|
||||||
|
./gpg
|
||||||
./rebuild
|
./rebuild
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./style.nix
|
./style.nix
|
||||||
|
./tmux
|
||||||
./usernix
|
./usernix
|
||||||
./vim.nix
|
./vim.nix
|
||||||
];
|
];
|
||||||
|
|
|
@ -53,6 +53,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.xsession.windowManager.i3.enable {
|
config = lib.mkIf config.xsession.windowManager.i3.enable {
|
||||||
|
stylix.targets.i3.enable = false;
|
||||||
xsession.windowManager.i3.config = {
|
xsession.windowManager.i3.config = {
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
fonts = {
|
fonts = {
|
||||||
|
|
74
hm/git/default.nix
Normal file
74
hm/git/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.programs.git.enable {
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "git-sync-init";
|
||||||
|
text = (lib.strings.concatLines
|
||||||
|
(map (r: ''[ -d "${r.path}" ] || ${pkgs.git}/bin/git clone "${r.uri}" "${r.path}"'')
|
||||||
|
(lib.attrsets.attrValues config.services.git-sync.repositories)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
})
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "git-sync-pull";
|
||||||
|
text = (lib.strings.concatLines
|
||||||
|
(map (r: ''(cd "${r.path}"; echo "$PWD"; ${pkgs.git}/bin/git pull || true)'')
|
||||||
|
(lib.attrsets.attrValues config.services.git-sync.repositories)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
})
|
||||||
|
];
|
||||||
|
programs.git = {
|
||||||
|
package = pkgs.gitFull;
|
||||||
|
aliases = {
|
||||||
|
"git" = "!exec git"; # In case I write one too many git
|
||||||
|
};
|
||||||
|
ignores = [
|
||||||
|
"*.swp"
|
||||||
|
"*.swo"
|
||||||
|
"*.ycm_extra_conf.py"
|
||||||
|
"tags"
|
||||||
|
".mypy_cache"
|
||||||
|
];
|
||||||
|
delta = {
|
||||||
|
enable = true;
|
||||||
|
options = {
|
||||||
|
line-numbers = true;
|
||||||
|
syntax-theme = "base16";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lfs.enable = true;
|
||||||
|
userEmail = lib.mkDefault "geoffrey@frogeye.fr";
|
||||||
|
userName = lib.mkDefault "Geoffrey Frogeye";
|
||||||
|
extraConfig = {
|
||||||
|
core = {
|
||||||
|
editor = "nvim";
|
||||||
|
};
|
||||||
|
push = {
|
||||||
|
default = "matching";
|
||||||
|
};
|
||||||
|
pull = {
|
||||||
|
ff = "only";
|
||||||
|
};
|
||||||
|
} // lib.optionalAttrs config.frogeye.desktop.xorg {
|
||||||
|
diff.tool = "meld";
|
||||||
|
difftool.prompt = false;
|
||||||
|
"difftool \"meld\"".cmd = "${pkgs.meld}/bin/meld \"$LOCAL\" \"$REMOTE\"";
|
||||||
|
# This escapes quotes, which isn't the case in the original, hoping this isn't an issue.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
git-sync = {
|
||||||
|
enable = false; # The real thing syncs too quickly and asks for passphrase, which is annoying
|
||||||
|
# So for now it's just a way to park config which will be reused by git-sync-* commands
|
||||||
|
repositories = {
|
||||||
|
dotfiles = {
|
||||||
|
path = "${config.xdg.configHome}/dotfiles";
|
||||||
|
uri = lib.mkDefault "https://git.frogeye.fr/geoffrey/dotfiles.git";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
40
hm/gpg/default.nix
Normal file
40
hm/gpg/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.programs.gpg.enable {
|
||||||
|
programs.gpg = {
|
||||||
|
homedir = "${config.xdg.stateHome}/gnupg";
|
||||||
|
settings = {
|
||||||
|
# Remove fluff
|
||||||
|
no-greeting = true;
|
||||||
|
no-emit-version = true;
|
||||||
|
no-comments = true;
|
||||||
|
# Output format that I prefer
|
||||||
|
keyid-format = "0xlong";
|
||||||
|
# Show fingerprints
|
||||||
|
with-fingerprint = true;
|
||||||
|
# Make sure to show if key is invalid
|
||||||
|
# (should be default on most platform,
|
||||||
|
# but just to be sure)
|
||||||
|
list-options = "show-uid-validity";
|
||||||
|
verify-options = "show-uid-validity";
|
||||||
|
# Stronger algorithm (https://wiki.archlinux.org/title/GnuPG#Different_algorithm)
|
||||||
|
personal-digest-preferences = "SHA512";
|
||||||
|
cert-digest-algo = "SHA512";
|
||||||
|
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
||||||
|
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
|
||||||
|
};
|
||||||
|
publicKeys = [{
|
||||||
|
source = builtins.fetchurl {
|
||||||
|
url = "https://keys.openpgp.org/vks/v1/by-fingerprint/4FBA930D314A03215E2CDB0A8312C8CAC1BAC289";
|
||||||
|
sha256 = "sha256:10y9xqcy1vyk2p8baay14p3vwdnlwynk0fvfbika65hz2z8yw2cm";
|
||||||
|
};
|
||||||
|
trust = "ultimate";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
services.gpg-agent = {
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -26,11 +26,6 @@ in
|
||||||
name = "DejaVuSansM Nerd Font";
|
name = "DejaVuSansM Nerd Font";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
targets = {
|
|
||||||
i3.enable = false; # I prefer my own styles
|
|
||||||
tmux.enable = false; # Using another theme
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
34
hm/tmux/default.nix
Normal file
34
hm/tmux/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
themepack = pkgs.tmuxPlugins.mkTmuxPlugin
|
||||||
|
rec {
|
||||||
|
pluginName = "tmux-themepack";
|
||||||
|
version = "1.1.0";
|
||||||
|
rtpFilePath = "themepack.tmux";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "jimeh";
|
||||||
|
repo = "tmux-themepack";
|
||||||
|
rev = "${version}";
|
||||||
|
sha256 = "f6y92kYsKDFanNx5ATx4BkaB/E7UrmyIHU/5Z01otQE=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.programs.tmux.enable {
|
||||||
|
home = {
|
||||||
|
packages = [ pkgs.screen ];
|
||||||
|
sessionVariables.SCREENRC = "${config.xdg.configHome}/screenrc";
|
||||||
|
};
|
||||||
|
programs.tmux = {
|
||||||
|
mouse = false;
|
||||||
|
clock24 = true;
|
||||||
|
# TODO Vim mode?
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
sensible
|
||||||
|
];
|
||||||
|
extraConfig = builtins.readFile ./tmux.conf + "source-file ${themepack}/share/tmux-plugins/tmux-themepack/powerline/default/green.tmuxtheme\n";
|
||||||
|
};
|
||||||
|
stylix.targets.tmux.enable = false;
|
||||||
|
xdg.configFile.screenrc.text = (builtins.readFile ./screenrc);
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue