Add all of iogamaster modules

This commit is contained in:
2024-06-15 09:59:52 +02:00
parent c97f22254a
commit fa99b32cad
120 changed files with 3587 additions and 254 deletions

View File

@@ -0,0 +1,23 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.brave;
in {
options.apps.brave = with types; {
enable = mkBoolOpt false "Enable or disable brave browser";
};
config = mkIf cfg.enable {
environment.systemPackages = [pkgs.brave];
home.persist.directories = [
".local/share/BraveSoftware"
];
};
}

View File

@@ -0,0 +1,26 @@
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.frajul;
let
cfg = config.apps.discord;
in
{
options.apps.discord = with types; {
enable = mkBoolOpt false "Enable discord";
};
config = mkIf cfg.enable {
environment.systemPackages = [
(pkgs.discord.override { withOpenASAR = true; })
pkgs.xwaylandvideobridge
];
home.persist.directories = [ ".config/discord" ];
};
}

View File

@@ -0,0 +1,29 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul;
let
cfg = config.apps.firefox;
in
{
options.apps.firefox = with types; {
enable = mkBoolOpt false "Enable or disable firefox browser";
};
config = mkIf cfg.enable {
home.programs.firefox = {
enable = true;
package = pkgs.librewolf;
};
home.persist.directories = [
".librewolf"
".cache/librewolf"
];
};
}

View File

@@ -0,0 +1,47 @@
{
options,
config,
pkgs,
lib,
inputs,
...
}:
with lib;
with lib.frajul;
let
cfg = config.apps.foot;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.desktop.colorscheme}) palette;
in
{
options.apps.foot = with types; {
enable = mkBoolOpt false "Enable or disable the foot terminal.";
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.foot ];
home.configFile."foot/foot.ini".text = ''
font=JetBrains Mono Nerd Font:size=12
pad=5x5
[colors]
foreground=${palette.base05}
background=${palette.base00}
regular0=${palette.base03}
regular1=${palette.base08}
regular2=${palette.base0B}
regular3=${palette.base0A}
regular4=${palette.base0D}
regular5=${palette.base0F}
regular6=${palette.base0C}
regular7=${palette.base05}
bright0=${palette.base04}
bright1=${palette.base08}
bright2=${palette.base0B}
bright3=${palette.base0A}
bright4=${palette.base0D}
bright5=${palette.base0F}
bright6=${palette.base0C}
bright7=${palette.base05}
'';
};
}

View File

@@ -0,0 +1,38 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.lutris;
in {
options.apps.lutris = with types; {
enable = mkBoolOpt false "Enable or disable lutris";
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.lutris
pkgs.fuse
];
home.persist.directories = [
".local/share/lutris"
".cache/lutris"
"Games"
];
# Appimages for certain games
boot.binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
};
}

View File

@@ -0,0 +1,45 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.misc;
in {
options.apps.misc = with types; {
enable = mkBoolOpt false "Enable or disable misc apps";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
# Development
git
git-remote-gcrypt
bat
eza
fzf
fd
# Util
unzip
sshfs
btop
ffmpeg
python3
wl-clipboard
obsidian
pandoc
bookworm
kjv
];
home.persist.directories = [
".config/obsidian"
];
};
}

View File

@@ -0,0 +1,37 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.neovim;
in {
options.apps.neovim = with types; {
enable = mkBoolOpt false "Enable or disable neovim";
};
config = mkIf cfg.enable {
environment.variables = {
EDITOR = "nvim";
};
environment.systemPackages = [
pkgs.neovim
pkgs.lazygit
pkgs.stylua
pkgs.sumneko-lua-language-server
pkgs.ripgrep
];
home.persist.directories = [
".local/share/nvim"
".vim"
".wakatime"
];
home.persist.files = [".wakatime.cfg" ".wakatime.bdb"];
};
}

View File

@@ -0,0 +1,33 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.pass;
in {
options.apps.pass = with types; {
enable = mkBoolOpt false "Enable or disable pass";
};
config = mkIf cfg.enable {
apps.tools.gnupg.enable = true;
environment.systemPackages = with pkgs; [
(writeShellScriptBin "pass" ''
GNUPGHOME="$XDG_DATA_HOME/gnupg" PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass" ${pkgs.pass.withExtensions (exts: [
exts.pass-otp
exts.pass-update
exts.pass-audit
])}/bin/pass $@
'')
];
home.persist.directories = [
".local/share/pass"
];
};
}

View File

@@ -0,0 +1,40 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.steam;
in {
options.apps.steam = with types; {
enable = mkBoolOpt false "Enable or disable steam";
};
config = mkIf cfg.enable {
programs.steam.enable = true;
programs.steam.remotePlay.openFirewall = true;
programs.steam.gamescopeSession.enable = true;
environment.systemPackages = [
pkgs.steam
pkgs.mangohud
pkgs.protonup
];
environment.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/${config.user.name}/.steam/root/compatibilitytools.d";
};
programs.gamemode.enable = true;
home.persist.directories = [
".local/share/Steam"
".steam"
".local/share/Terraria"
];
};
}

View File

@@ -0,0 +1,28 @@
{
options,
config,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.tools.direnv;
in {
options.apps.tools.direnv = with types; {
enable = mkBoolOpt false "Enable direnv";
};
config = mkIf cfg.enable {
home.programs.direnv = {
enable = true;
nix-direnv.enable = true;
enableNushellIntegration = true;
};
environment.sessionVariables.DIRENV_LOG_FORMAT = ""; # Blank so direnv will shut up
home.persist.directories = [
".local/share/direnv"
];
};
}

View File

@@ -0,0 +1,19 @@
{sshKeyPath}: ''
[user]
name = IogaMaster
email = iogamastercode@gmail.com
signingkey = ${sshKeyPath}
[pull]
rebase = true
[init]
defaultBranch = main
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
[gpg]
format = ssh
[commit]
gpgsign = true
''

View File

@@ -0,0 +1,45 @@
{
options,
config,
pkgs,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.tools.git;
in {
options.apps.tools.git = with types; {
enable = mkBoolOpt false "Enable or disable git";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
git
git-remote-gcrypt
gh # GitHub cli
lazygit
commitizen
];
environment.shellAliases = {
# Git aliases
ga = "git add .";
gc = "git commit -m ";
gp = "git push -u origin";
g = "lazygit";
};
home.configFile."git/config".text = import ./config.nix {sshKeyPath = "/home/${config.user.name}/.ssh/key.pub";};
home.configFile."lazygit/config.yml".source = ./lazygitConfig.yml;
home.persist.directories = [
".config/gh"
".config/lazygit"
".config/systemd" # For git maintainance
];
};
}

View File

@@ -0,0 +1,26 @@
gui:
nerdFontsVersion: "3"
git:
overrideGpg: true
customCommands:
- key: "C"
command: "git cz c"
description: "commit with commitizen"
context: "files"
loadingText: "opening commitizen commit tool"
subprocess: true
- key: 'D'
command: >-
git push {{ .SelectedLocalBranch.UpstreamRemote }} --delete {{ .SelectedLocalBranch.UpstreamBranch }} &&
git branch -D {{ .SelectedLocalBranch.Name }}
description: "delete local AND remote branch"
context: 'localBranches'
stream: true
- key: 'T'
command: >-
for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do git branch --track "${branch##*/}" "$branch"; done
description: "add ALL remote branches to the list"
context: 'localBranches'
stream: true

View File

@@ -0,0 +1,44 @@
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.tools.gnupg;
in {
options.apps.tools.gnupg = with types; {
enable = mkBoolOpt false "Enable gnupg";
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.pinentry
pkgs.pinentry-curses
(pkgs.writeShellScriptBin "gpg" ''
GNUPGHOME=${config.environment.variables.GNUPGHOME} ${pkgs.gnupg}/bin/gpg $@
'')
];
services.pcscd.enable = true;
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-curses;
enableSSHSupport = true;
};
home.file.".local/share/gnupg/gpg-agent.conf".source = ./gpg-agent.conf;
environment.variables = {
GNUPGHOME = "$XDG_DATA_HOME/gnupg";
};
home.persist.directories = [
".local/share/gnupg"
".pki"
];
};
}

View File

@@ -0,0 +1 @@
pinentry-program /run/current-system/sw/bin/pinentry-curses

View File

@@ -0,0 +1,22 @@
{
options,
config,
lib,
inputs,
...
}:
with lib;
with lib.frajul; let
cfg = config.apps.tools.nix-ld;
in {
imports = with inputs; [
nix-ld.nixosModules.nix-ld
];
options.apps.tools.nix-ld = with types; {
enable = mkBoolOpt false "Enable nix-ld";
};
config = mkIf cfg.enable {
programs.nix-ld.enable = true;
};
}