9 Commits

Author SHA1 Message Date
64590c539b reorder utilities alphabetically
also add bc
2023-03-12 20:09:56 -04:00
78b364afd7 launch aerc with super+E 2023-03-12 20:09:41 -04:00
f219ce45c8 enable actual bash support 2023-03-12 19:00:59 -04:00
5002c881f7 fix: mail not syncing read and deleted 2023-03-12 17:08:21 -04:00
5859377802 fix: arr options when not used 2023-03-12 17:08:21 -04:00
e6dbed2e17 enable caddy logfile 2023-03-12 13:24:25 +00:00
86076f0844 add arr services 2023-03-12 13:24:16 +00:00
2aea76c0e3 switch mpv to managed settings 2023-03-11 14:14:45 -05:00
42a5ad40de add heroic game launcher 2023-03-11 14:14:25 -05:00
14 changed files with 151 additions and 20 deletions

View File

@ -111,6 +111,8 @@
gitName = fullName; gitName = fullName;
gitEmail = "7386960+nmasur@users.noreply.github.com"; gitEmail = "7386960+nmasur@users.noreply.github.com";
mail.server = "noahmasur.com"; mail.server = "noahmasur.com";
mail.imapHost = "imap.purelymail.com";
mail.smtpHost = "smtp.purelymail.com";
dotfilesRepo = "git@github.com:nmasur/dotfiles"; dotfilesRepo = "git@github.com:nmasur/dotfiles";
}; };

View File

@ -12,7 +12,6 @@ nixpkgs.lib.nixosSystem {
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
(removeAttrs globals [ "mail.server" ])
wsl.nixosModules.wsl wsl.nixosModules.wsl
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
disko.nixosModules.disko disko.nixosModules.disko
@ -42,6 +41,7 @@ nixpkgs.lib.nixosSystem {
streamServer = "stream.masu.rs"; streamServer = "stream.masu.rs";
nextcloudServer = "cloud.masu.rs"; nextcloudServer = "cloud.masu.rs";
bookServer = "books.masu.rs"; bookServer = "books.masu.rs";
arrServer = "download.masu.rs";
samba.enable = true; samba.enable = true;
backup.s3 = { backup.s3 = {

View File

@ -12,12 +12,19 @@
config = lib.mkIf (config.gui.enable && config.media.enable) { config = lib.mkIf (config.gui.enable && config.media.enable) {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ home.packages = with pkgs; [
mpv # Video viewer
sxiv # Image viewer sxiv # Image viewer
mupdf # PDF viewer mupdf # PDF viewer
zathura # PDF viewer zathura # PDF viewer
]; ];
# Video player
programs.mpv = {
enable = true;
bindings = { };
config = { image-display-duration = 2; };
scripts = [ pkgs.mpvScripts.autoload ];
};
# Set default for opening PDFs # Set default for opening PDFs
xdg.mimeApps = { xdg.mimeApps = {
associations.added = { associations.added = {

View File

@ -181,6 +181,17 @@
}; };
}; };
xdg.desktopEntries.aerc = lib.mkIf pkgs.stdenv.isLinux {
name = "aerc";
exec = "kitty aerc %u";
};
xsession.windowManager.i3.config.keybindings =
lib.mkIf pkgs.stdenv.isLinux {
"${
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
}+Shift+e" = "exec --no-startup-id kitty aerc";
};
programs.fish.shellAbbrs = { ae = "aerc"; }; programs.fish.shellAbbrs = { ae = "aerc"; };
}; };

View File

@ -10,9 +10,17 @@
default = config.user; default = config.user;
}; };
mail.server = lib.mkOption { mail.server = lib.mkOption {
type = lib.types.str; type = lib.types.nullOr lib.types.str;
description = "Server name for the email address."; description = "Server name for the email address.";
}; };
mail.imapHost = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Server host for IMAP (reading mail).";
};
mail.smtpHost = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Server host for SMTP (sending mail).";
};
}; };
config = lib.mkIf config.mail.enable { config = lib.mkIf config.mail.enable {
@ -42,7 +50,7 @@
folders = { }; folders = { };
getmail = { }; getmail = { };
imap = { imap = {
host = "imap.purelymail.com"; host = config.mail.imapHost;
port = 993; port = 993;
tls.enable = true; tls.enable = true;
}; };
@ -55,9 +63,9 @@
maildir = { path = "main"; }; maildir = { path = "main"; };
mbsync = { mbsync = {
enable = true; enable = true;
create = "maildir"; create = "both";
expunge = "none"; expunge = "both";
remove = "none"; remove = "both";
patterns = [ "*" ]; patterns = [ "*" ];
extraConfig.channel = { extraConfig.channel = {
CopyArrivalDate = "yes"; # Sync time of original message CopyArrivalDate = "yes"; # Sync time of original message
@ -70,7 +78,7 @@
builtins.toString ../../../private/mailpass.age builtins.toString ../../../private/mailpass.age
}"; }";
smtp = { smtp = {
host = "smtp.purelymail.com"; host = config.mail.smtpHost;
port = 465; port = 465;
tls.enable = true; tls.enable = true;
}; };

View File

@ -0,0 +1,20 @@
{ config, pkgs, lib, ... }: {
config = {
home-manager.users.${config.user} = {
programs.bash = {
enable = true;
shellAliases =
config.home-manager.users.${config.user}.programs.fish.shellAliases;
initExtra = "";
profileExtra = "";
};
programs.starship.enableBashIntegration = false;
programs.zoxide.enableBashIntegration = true;
programs.fzf.enableBashIntegration = true;
};
};
}

View File

@ -1,5 +1,6 @@
{ ... }: { { ... }: {
imports = [ imports = [
./bash
./charm.nix ./charm.nix
./direnv.nix ./direnv.nix
./fish ./fish

View File

@ -76,7 +76,6 @@
set -g fish_cursor_replace_one underscore set -g fish_cursor_replace_one underscore
''; '';
loginShellInit = ""; loginShellInit = "";
shellAliases = { };
shellAbbrs = { shellAbbrs = {
# Directory aliases # Directory aliases

View File

@ -18,21 +18,22 @@ in {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ home.packages = with pkgs; [
unzip # Extract zips age # Encryption
bc # Calculator
dig # DNS lookup
fd # find
htop # Show system processes
inetutils # Includes telnet, whois
jq # JSON manipulation
lf # File viewer
qrencode # Generate qr codes
rsync # Copy folders rsync # Copy folders
ripgrep # grep ripgrep # grep
fd # find
sd # sed sd # sed
jq # JSON manipulation
tealdeer # Cheatsheets tealdeer # Cheatsheets
tree # View directory hierarchy tree # View directory hierarchy
htop # Show system processes
qrencode # Generate qr codes
vimv-rs # Batch rename files vimv-rs # Batch rename files
dig # DNS lookup unzip # Extract zips
lf # File viewer
inetutils # Includes telnet, whois
age # Encryption
]; ];
programs.zoxide.enable = true; # Shortcut jump command programs.zoxide.enable = true; # Shortcut jump command

View File

@ -10,8 +10,8 @@ in {
config = lib.mkIf config.gaming.legendary.enable { config = lib.mkIf config.gaming.legendary.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
legendary-gl legendary-gl
rare # GUI for Legendary (not working)
wineWowPackages.stable # 32-bit and 64-bit wineWowPackages, see https://nixos.wiki/wiki/Wine wineWowPackages.stable # 32-bit and 64-bit wineWowPackages, see https://nixos.wiki/wiki/Wine
heroic # GUI launcher
]; ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {

View File

@ -0,0 +1,69 @@
{ config, lib, ... }: {
options = {
arrServer = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Hostname for arr services";
default = null;
};
};
config = lib.mkIf (config.arrServer != null) {
services.sonarr.enable = true;
services.radarr.enable = true;
services.bazarr.enable = true;
services.prowlarr.enable = true;
# Requires updating the base_url config value in each service
# If you try to rewrite the URL, the service won't redirect properly
caddy.routes = [
{
group = "download";
match = [{
host = [ config.arrServer ];
path = [ "/sonarr*" ];
}];
handle = [{
handler = "reverse_proxy";
upstreams = [{ dial = "localhost:8989"; }];
}];
}
{
group = "download";
match = [{
host = [ config.arrServer ];
path = [ "/radarr*" ];
}];
handle = [{
handler = "reverse_proxy";
upstreams = [{ dial = "localhost:7878"; }];
}];
}
{
group = "download";
match = [{
host = [ config.arrServer ];
path = [ "/prowlarr*" ];
}];
handle = [{
handler = "reverse_proxy";
upstreams = [{ dial = "localhost:9696"; }];
}];
}
{
group = "download";
match = [{
host = [ config.arrServer ];
path = [ "/bazarr*" ];
}];
handle = [{
handler = "reverse_proxy";
upstreams = [{ dial = "localhost:6767"; }];
}];
}
];
};
}

View File

@ -24,6 +24,16 @@
listen = [ ":443" ]; listen = [ ":443" ];
routes = config.caddy.routes; routes = config.caddy.routes;
errors.routes = config.caddy.blocks; errors.routes = config.caddy.blocks;
# logs = { }; # Uncomment to collect access logs
};
logging.logs.main = {
encoder = { format = "console"; };
writer = {
output = "file";
filename = "${config.services.caddy.logDir}/caddy.log";
roll = true;
};
level = "INFO";
}; };
}); });

View File

@ -1,6 +1,7 @@
{ ... }: { { ... }: {
imports = [ imports = [
./arr.nix
./backups.nix ./backups.nix
./caddy.nix ./caddy.nix
./calibre.nix ./calibre.nix

View File

@ -41,7 +41,9 @@
}; };
# Create reverse proxy for web UI # Create reverse proxy for web UI
caddy.routes = [{ caddy.routes = lib.mkAfter [{
group =
lib.mkIf (config.arrServer == config.transmissionServer) "download";
match = [{ host = [ config.transmissionServer ]; }]; match = [{ host = [ config.transmissionServer ]; }];
handle = [{ handle = [{
handler = "reverse_proxy"; handler = "reverse_proxy";