diff --git a/home/laptop.nix b/home/laptop.nix index b19293e..0b0d2e9 100644 --- a/home/laptop.nix +++ b/home/laptop.nix @@ -3,10 +3,10 @@ let variable = import ../variables.nix; in { imports = [ - ./themes/laptop.nix ./system/laptop.nix ./scripts/laptop.nix ./apps/laptop.nix + ./themes/nixy.nix ]; home = { @@ -44,6 +44,7 @@ in { curl neovide wf-recorder + glow # Just cool peaclock diff --git a/home/scripts/heaven/default.nix b/home/scripts/heaven/default.nix new file mode 100644 index 0000000..f79998d --- /dev/null +++ b/home/scripts/heaven/default.nix @@ -0,0 +1,39 @@ +{ pkgs, config, ... }: + +let + homedir = config.home.homeDirectory; + + heaven-rebuild = pkgs.writeShellScriptBin "heaven-rebuild" '' + sudo nixos-rebuild switch --flake ${homedir}/.config/nixos#heaven + ''; + + heaven-upgrade = pkgs.writeShellScriptBin "heaven-upgrade" '' + sudo nixos-rebuild switch --upgrade --flake ${homedir}/.config/nixos#heaven + ''; + + heaven-update = pkgs.writeShellScriptBin "heaven-update" '' + cd ${homedir}/.config/nixos && sudo nix flake update + ''; + + heaven-gc = pkgs.writeShellScriptBin "heaven-gc" '' + cd ${homedir}/.config/nixos && sudo nix-collect-garbage -d + ''; + + heaven-cb = pkgs.writeShellScriptBin "heaven-cb" '' + sudo /run/current-system/bin/switch-to-configuration boot + ''; + + remote-rebuild = pkgs.writeShellScriptBin "remote-rebuild" '' + ssh -t heaven "cd ~/.config/nixos && git pull && heaven-rebuild" + ''; + +in { + home.packages = with pkgs; [ + heaven-rebuild + heaven-upgrade + heaven-update + heaven-gc + heaven-cb + remote-rebuild + ]; +} diff --git a/home/scripts/laptop.nix b/home/scripts/laptop.nix index 6b9261e..1a31ff5 100644 --- a/home/scripts/laptop.nix +++ b/home/scripts/laptop.nix @@ -11,7 +11,6 @@ ./nerdfont_fzf ./system ./compress - - ./misc.nix + ./misc ]; } diff --git a/home/scripts/misc.nix b/home/scripts/misc/default.nix similarity index 100% rename from home/scripts/misc.nix rename to home/scripts/misc/default.nix diff --git a/home/scripts/nixy/default.nix b/home/scripts/nixy/default.nix index 3fdb5d5..33b02a0 100644 --- a/home/scripts/nixy/default.nix +++ b/home/scripts/nixy/default.nix @@ -26,31 +26,6 @@ let nixy-push = pkgs.writeShellScriptBin "nixy-push" '' cd ~/.config/nixos && git add . && git commit -m ''${1:-Update} && git push ''; - - heaven-rebuild = pkgs.writeShellScriptBin "heaven-rebuild" '' - sudo nixos-rebuild switch --flake ${homedir}/.config/nixos#heaven - ''; - - heaven-upgrade = pkgs.writeShellScriptBin "heaven-upgrade" '' - sudo nixos-rebuild switch --upgrade --flake ${homedir}/.config/nixos#heaven - ''; - - heaven-update = pkgs.writeShellScriptBin "heaven-update" '' - cd ${homedir}/.config/nixos && sudo nix flake update - ''; - - heaven-gc = pkgs.writeShellScriptBin "heaven-gc" '' - cd ${homedir}/.config/nixos && sudo nix-collect-garbage -d - ''; - - heaven-cb = pkgs.writeShellScriptBin "heaven-cb" '' - sudo /run/current-system/bin/switch-to-configuration boot - ''; - - remote-rebuild = pkgs.writeShellScriptBin "remote-rebuild" '' - ssh -t heaven "cd ~/.config/nixos && git pull && heaven-rebuild" - ''; - in { home.packages = with pkgs; [ nixy-rebuild @@ -59,11 +34,5 @@ in { nixy-gc nixy-cb nixy-push - heaven-rebuild - heaven-upgrade - heaven-update - heaven-gc - heaven-cb - remote-rebuild ]; } diff --git a/home/server.nix b/home/server.nix index 2fe35f9..6114316 100644 --- a/home/server.nix +++ b/home/server.nix @@ -3,10 +3,10 @@ let variable = import ../variables.nix; in { imports = [ - ./themes/server.nix ./system/server.nix ./scripts/server.nix ./apps/server.nix + ./themes/wip.nix ]; home = { diff --git a/home/system/git/default.nix b/home/system/git/default.nix index 7f87118..e370977 100644 --- a/home/system/git/default.nix +++ b/home/system/git/default.nix @@ -4,9 +4,48 @@ in { enable = true; userName = variable.git.username; userEmail = variable.git.email; + ignores = [ + ".cache/" + ".DS_Store" + ".idea/" + "*.swp" + "*.elc" + "auto-save-list" + ".direnv/" + "node_modules" + "result" + "result-*" + ]; extraConfig = { init.defaultBranch = "main"; push.autoSetupRemote = true; }; + aliases = { + essa = "push --force"; + co = "checkout"; + fuck = "commit --amend -m"; + c = "commit -m"; + ca = "commit -am"; + forgor = "commit --amend --no-edit"; + graph = "log --all --decorate --graph --oneline"; + oops = "checkout --"; + l = "log"; + r = "rebase"; + s = "status --short"; + ss = "status"; + d = "diff"; + ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"; + pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"; + af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)"; + st = "status"; + br = "branch"; + df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; + hist = '' + log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all''; + llog = '' + log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative''; + edit-unmerged = + "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`"; + }; }; } diff --git a/home/themes/wallpapers/default.nix b/home/themes/config/load_wallpapers.nix similarity index 100% rename from home/themes/wallpapers/default.nix rename to home/themes/config/load_wallpapers.nix diff --git a/home/themes/heaven.nix b/home/themes/heaven.nix new file mode 100644 index 0000000..42d0f1b --- /dev/null +++ b/home/themes/heaven.nix @@ -0,0 +1,64 @@ +{ + imports = [ ./config/template.nix ./config/load_colors.nix ]; + + theme = { + wallpaper = "default.png"; + + font-mono = "FiraCode Nerd Font Mono"; + font = "SFProDisplay Nerd Font"; + + rounding = 12; + gaps-in = 10; + gaps-out = 20; + border-size = 3; + + neofetch = "nerdfetch"; + + waybar = { + transparent = true; + float = true; + }; + + colors = { + bg = "040409"; + fg = "FCFCFC"; + alt-bg = "101012"; + alt-fg = "ECECEC"; + + primary-ansi-16 = "red"; + primary-bg = "a158ff"; + primary-fg = "000000"; + + secondary-bg = "4928B8"; + secondary-fg = "000000"; + + # Black + color0 = "000000"; + # Red + color1 = "f7768e"; + # Green + color2 = "73daca"; + # Yellow + color3 = "e0af68"; + # Blue + color4 = "7aa2f7"; + # Magenta + color5 = "a158ff"; + # Cyan + color6 = "7dcfff"; + # White + color7 = "E4E5E7"; + + # Bright + color8 = "515878"; + color9 = "f7869e"; + color10 = "83eada"; + color11 = "f0bf78"; + color12 = "8ab2f7"; + color13 = "A988F8"; + color14 = "8ddfff"; + color15 = "f4f5f7"; + }; + }; + +} diff --git a/home/themes/laptop.nix b/home/themes/laptop.nix deleted file mode 100644 index cb350f1..0000000 --- a/home/themes/laptop.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { imports = [ ./nixy.nix ./wallpapers ./config/load_colors.nix ]; } diff --git a/home/themes/nixy.nix b/home/themes/nixy.nix index 01f0ae1..7fc337a 100644 --- a/home/themes/nixy.nix +++ b/home/themes/nixy.nix @@ -1,5 +1,5 @@ { - imports = [ ./config/template.nix ]; + imports = [ ./config/template.nix ./config/load_colors.nix ]; theme = { wallpaper = "default.png"; diff --git a/home/themes/server.nix b/home/themes/server.nix deleted file mode 100644 index 9dafb8b..0000000 --- a/home/themes/server.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { imports = [ ./wip.nix ./config/load_colors.nix ]; } diff --git a/home/themes/wallpapers/wallpapers/Fuji-Dark.png b/home/themes/wallpapers/Fuji-Dark.png similarity index 100% rename from home/themes/wallpapers/wallpapers/Fuji-Dark.png rename to home/themes/wallpapers/Fuji-Dark.png diff --git a/home/themes/wallpapers/wallpapers/Fuji-Light.png b/home/themes/wallpapers/Fuji-Light.png similarity index 100% rename from home/themes/wallpapers/wallpapers/Fuji-Light.png rename to home/themes/wallpapers/Fuji-Light.png diff --git a/home/themes/wallpapers/wallpapers/Lofi-Computer.png b/home/themes/wallpapers/Lofi-Computer.png similarity index 100% rename from home/themes/wallpapers/wallpapers/Lofi-Computer.png rename to home/themes/wallpapers/Lofi-Computer.png diff --git a/home/themes/wallpapers/wallpapers/Lofi-Urban-Nightscape.png b/home/themes/wallpapers/Lofi-Urban-Nightscape.png similarity index 100% rename from home/themes/wallpapers/wallpapers/Lofi-Urban-Nightscape.png rename to home/themes/wallpapers/Lofi-Urban-Nightscape.png diff --git a/home/themes/wallpapers/wallpapers/barcode.png b/home/themes/wallpapers/barcode.png similarity index 100% rename from home/themes/wallpapers/wallpapers/barcode.png rename to home/themes/wallpapers/barcode.png diff --git a/home/themes/wallpapers/wallpapers/cat_leaves.png b/home/themes/wallpapers/cat_leaves.png similarity index 100% rename from home/themes/wallpapers/wallpapers/cat_leaves.png rename to home/themes/wallpapers/cat_leaves.png diff --git a/home/themes/wallpapers/wallpapers/cloud.png b/home/themes/wallpapers/cloud.png similarity index 100% rename from home/themes/wallpapers/wallpapers/cloud.png rename to home/themes/wallpapers/cloud.png diff --git a/home/themes/wallpapers/wallpapers/default.png b/home/themes/wallpapers/default.png similarity index 100% rename from home/themes/wallpapers/wallpapers/default.png rename to home/themes/wallpapers/default.png diff --git a/home/themes/wallpapers/wallpapers/galaxy.png b/home/themes/wallpapers/galaxy.png similarity index 100% rename from home/themes/wallpapers/wallpapers/galaxy.png rename to home/themes/wallpapers/galaxy.png diff --git a/home/themes/wallpapers/wallpapers/house_cloud.png b/home/themes/wallpapers/house_cloud.png similarity index 100% rename from home/themes/wallpapers/wallpapers/house_cloud.png rename to home/themes/wallpapers/house_cloud.png diff --git a/home/themes/wallpapers/wallpapers/mountains.png b/home/themes/wallpapers/mountains.png similarity index 100% rename from home/themes/wallpapers/wallpapers/mountains.png rename to home/themes/wallpapers/mountains.png diff --git a/home/themes/wallpapers/wallpapers/mountains_black.png b/home/themes/wallpapers/mountains_black.png similarity index 100% rename from home/themes/wallpapers/wallpapers/mountains_black.png rename to home/themes/wallpapers/mountains_black.png diff --git a/home/themes/wallpapers/wallpapers/tokyo.png b/home/themes/wallpapers/tokyo.png similarity index 100% rename from home/themes/wallpapers/wallpapers/tokyo.png rename to home/themes/wallpapers/tokyo.png diff --git a/home/themes/wallpapers/wallpapers/windows.png b/home/themes/wallpapers/windows.png similarity index 100% rename from home/themes/wallpapers/wallpapers/windows.png rename to home/themes/wallpapers/windows.png diff --git a/home/themes/wip.nix b/home/themes/wip.nix index 2a44cfe..45dd360 100644 --- a/home/themes/wip.nix +++ b/home/themes/wip.nix @@ -1,5 +1,5 @@ { - imports = [ ./config/template.nix ]; + imports = [ ./config/template.nix ./config/load_colors.nix ]; theme = { wallpaper = "Fuji-Light.png"; diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 8dcc946..568d2bb 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -1,16 +1,17 @@ { pkgs, config, ... }: let variable = import ../../variables.nix; - imports = [ ./hardware-configuration.nix ]; - # Weird variable name to avoid conflict with the `imports` variable... - secondImports = - if variable.enableNvidia then imports ++ [ ./nvidia.nix ] else imports; - thirdImports = if variable.enablePrime then - secondImports ++ [ ./prime.nix ] - else - secondImports; + baseImports = [ ./hardware-configuration.nix ]; + + extraImports = [ + (if variable.enableNvidia then ./nvidia.nix else null) + (if variable.enablePrime then ./prime.nix else null) + ]; + + filteredImports = builtins.filter (x: x != null) extraImports; + in { - imports = thirdImports; + imports = baseImports ++ filteredImports; # Bootloader. boot = { @@ -59,6 +60,20 @@ in { programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; + loginShellInit = '' + dbus-update-activation-environment --systemd DISPLAY + eval $(gnome-keyring-daemon --start --components=ssh,secrets) + eval $(ssh-agent) + ''; + + # faster rebuilding + documentation = { + enable = true; + doc.enable = false; + man.enable = true; + dev.enable = false; + }; + # Allow unfree packages nixpkgs.config.allowUnfree = true; diff --git a/hosts/server/firewall.nix b/hosts/server/firewall.nix index f30c08b..75763b7 100644 --- a/hosts/server/firewall.nix +++ b/hosts/server/firewall.nix @@ -1,5 +1,11 @@ { + services.fail2ban = { + enable = true; + maxretry = 3; + ignoreIP = [ "127.0.0.0/8" "10.0.0.0/8" "192.168.0.0/16" ]; + }; + networking.firewall = { enable = true; allowedTCPPorts = [ 22 ]; diff --git a/hosts/server/ntfy.nix b/hosts/server/ntfy.nix new file mode 100644 index 0000000..69ce780 --- /dev/null +++ b/hosts/server/ntfy.nix @@ -0,0 +1 @@ +{ services.ntfy = { enable = true; }; } diff --git a/hosts/server/vaultwarden.nix b/hosts/server/vaultwarden.nix new file mode 100644 index 0000000..8304371 --- /dev/null +++ b/hosts/server/vaultwarden.nix @@ -0,0 +1,21 @@ +let + port = 8222; + signup = false; +in { + services.vaultwarden = { + enable = true; + config = { + DOMAIN = "https://bw.anotherhadi.com"; + SIGNUPS_ALLOWED = signup; + ROCKET_ADDRESS = "127.0.0.1"; + ROCKET_PORT = port; + ROCKET_LOG = "critical"; + }; + }; + + services.nginx.virtualHosts."bw.anotherhadi.com" = { + locations."/" = { proxyPass = "http://127.0.0.1:${toString port}"; }; + }; + + networking.firewall.allowedTCPPorts = [ port ]; +}