diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix index b24c5ae..dcd9029 100644 --- a/home/features/cli/default.nix +++ b/home/features/cli/default.nix @@ -16,6 +16,7 @@ direnv exa fd + htop httpie jq nixfmt @@ -25,5 +26,8 @@ tldr trash-cli tree + unrar + unzip + zip ]; } diff --git a/home/features/cli/secrets.nix b/home/features/cli/secrets.nix new file mode 100644 index 0000000..60b927f --- /dev/null +++ b/home/features/cli/secrets.nix @@ -0,0 +1,24 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.features.cli.secrets; + +in { + + options.features.cli.secrets.enable = mkEnableOption "enable secrets"; + + config = mkIf cfg.enable { + + programs.password-store = { + enable = true; + package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); + }; + programs.gpg = { enable = true; }; + services.gpg-agent = { + enable = true; + defaultCacheTtl = 1800; + enableSshSupport = true; + }; + }; +} diff --git a/home/features/coding/emacs.nix b/home/features/coding/emacs.nix index e69de29..8efe4c2 100644 --- a/home/features/coding/emacs.nix +++ b/home/features/coding/emacs.nix @@ -0,0 +1,103 @@ +{ pkgs, ... }: { + services.emacs.anable = true; + programs.emacs = { # 310 + enable = true; + extraPackages = epkgs: [ + epkgs.all-the-icons + epkgs.all-the-icons-dired + epkgs.calfw + epkgs.calfw-org + epkgs.calfw-ical + epkgs.command-log-mode + epkgs.company + epkgs.company-box + epkgs.consult + epkgs.counsel + epkgs.counsel-projectile + epkgs.consult-org-roam + epkgs.dart-mode + epkgs.dashboard + epkgs.deft + epkgs.dired-hide-dotfiles + epkgs.dired-open + epkgs.dired-single + epkgs.direnv + epkgs.docker + epkgs.docker-compose-mode + epkgs.dockerfile-mode + epkgs.docker-tramp + epkgs.doom-themes + epkgs.doom-modeline + epkgs.elfeed + epkgs.elfeed-web + epkgs.elfeed-tube + epkgs.elfeed-tube-mpv + epkgs.elfeed-org + epkgs.embark + epkgs.embark-consult + epkgs.emmet-mode + epkgs.envrc + # epkgs.eterm-256color + epkgs.evil + epkgs.evil-collection + epkgs.evil-nerd-commenter + epkgs.exec-path-from-shell + epkgs.forge + epkgs.general + epkgs.go-mode + epkgs.graphql-mode + epkgs.helpful + epkgs.helm + epkgs.helm-lsp + epkgs.helm-descbinds + epkgs.helm-rg + epkgs.highlight-indent-guides + epkgs.hydra + epkgs.ivy + epkgs.ivy-prescient + epkgs.ivy-rich + epkgs.json-mode + #epkgs.khalel + epkgs.lispy + epkgs.lsp-dart + epkgs.lsp-ivy + epkgs.lsp-mode + epkgs.lsp-ui + epkgs.lsp-treemacs + epkgs.magit + epkgs.marginalia + epkgs.mastodon + epkgs.mermaid-mode + epkgs.nix-mode + epkgs.no-littering + epkgs.ob-mermaid + epkgs.org + epkgs.org-auto-tangle + epkgs.org-bullets + epkgs.org-download + epkgs.org-gcal + epkgs.org-ql + epkgs.org-roam + epkgs.org-roam-ui + epkgs.pass + epkgs.pdf-tools + epkgs.projectile + epkgs.pyenv-mode + epkgs.python-mode + epkgs.rainbow-delimiters + epkgs.request + epkgs.rustic + epkgs.smartparens + epkgs.svelte-mode + epkgs.todoist + epkgs.typescript-mode + epkgs.use-package + epkgs.visual-fill-column + epkgs.vue-mode + epkgs.vterm + epkgs.web-mode + epkgs.which-key + epkgs.zetteldeft + ]; + }; +} diff --git a/home/features/coding/golang.nix b/home/features/coding/golang.nix new file mode 100644 index 0000000..6ab1eac --- /dev/null +++ b/home/features/coding/golang.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + gopls + ]; +} diff --git a/home/features/coding/nix.nix b/home/features/coding/nix.nix new file mode 100644 index 0000000..dd7a931 --- /dev/null +++ b/home/features/coding/nix.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + appimage-run + deloy-rs + nil + nix-prefetch-git + nixfmt + ]; +} diff --git a/home/features/coding/nodejs.nix b/home/features/coding/nodejs.nix new file mode 100644 index 0000000..4604ab0 --- /dev/null +++ b/home/features/coding/nodejs.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + nodejs + nodePackages.mermaid-cli + nodePackages.svelte-language-server + ]; +} diff --git a/home/features/coding/rust.nix b/home/features/coding/rust.nix new file mode 100644 index 0000000..8bd9188 --- /dev/null +++ b/home/features/coding/rust.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + rustup + rust-analyzer + ]; +} diff --git a/home/features/coding/tools.nix b/home/features/coding/tools.nix new file mode 100644 index 0000000..d17e431 --- /dev/null +++ b/home/features/coding/tools.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + direnv + insomnia + hugo + shopify-cli + ]; +} diff --git a/home/features/desktop/crypto.nix b/home/features/desktop/crypto.nix index e69de29..1f5e9cc 100644 --- a/home/features/desktop/crypto.nix +++ b/home/features/desktop/crypto.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + bisq-desktop + monero-gui + trezord + trezor-suite + ]; +} diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index b282426..26def77 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -39,14 +39,19 @@ gnome.fileroller gnome.seahorse gnome.vinagre + gsettings-desktop-schemas libnotify lxappearance nyxt pasystray pavucontrol picom + qt5-ct + rustdesk unrar unzip + usbutils + v4l-utils variety xclip xdg-utils diff --git a/home/features/desktop/design.nix b/home/features/desktop/design.nix new file mode 100644 index 0000000..fa61ee3 --- /dev/null +++ b/home/features/desktop/design.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + argyllcms + darktable + gimp-with-plugins + gimpPlugins.gmic + gmic + gmic-qt + imagemagick + inkscape + lcms2 + ]; +} diff --git a/home/features/desktop/fonts.nix b/home/features/desktop/fonts.nix index a60ab96..9502bf6 100644 --- a/home/features/desktop/fonts.nix +++ b/home/features/desktop/fonts.nix @@ -10,6 +10,7 @@ in { config = mkIf cfg.enable { home.packages = with pkgs; [ + emacs-all-the-icons-fonts fira-code fira-code-symbols font-manager diff --git a/home/features/desktop/media.nix b/home/features/desktop/media.nix new file mode 100644 index 0000000..ccf0faf --- /dev/null +++ b/home/features/desktop/media.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + betterdiscordctl + davinci-resolve + discord + element-desktop + ffmpeg + freetube + gphoto2 + handbrake + makemkv + mpv + obs-studio + plexamp + vlc + youtube-dl + ]; +} diff --git a/home/features/desktop/office.nix b/home/features/desktop/office.nix new file mode 100644 index 0000000..7d59005 --- /dev/null +++ b/home/features/desktop/office.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + libreoffice + neomutt + tutanota-desktop + okular + zathura + ]; +} diff --git a/home/features/gaming/default.nix b/home/features/gaming/default.nix index 8a9b2f4..3fc58a1 100644 --- a/home/features/gaming/default.nix +++ b/home/features/gaming/default.nix @@ -9,7 +9,9 @@ gamescope goverlay mangohud + protontricks protonup-ng + winetricks ]; programs.gamemode.enable = true; diff --git a/home/features/gaming/sunshine.nix b/home/features/gaming/sunshine.nix index 0aa615f..806c85d 100644 --- a/home/features/gaming/sunshine.nix +++ b/home/features/gaming/sunshine.nix @@ -6,7 +6,7 @@ let cfg = config.features.gaming.steam; in { - options.features.gaming.sunshine.enable = mkEnableOption "enable Steam"; + options.features.gaming.sunshine.enable = mkEnableOption "enable Sunshine"; config = mkIf cfg.enable { diff --git a/home/features/hardware/default.nix b/home/features/hardware/default.nix new file mode 100644 index 0000000..f2fd882 --- /dev/null +++ b/home/features/hardware/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + lm_sensors + powertop + ]; +} diff --git a/home/features/privacy/default.nix b/home/features/privacy/default.nix new file mode 100644 index 0000000..b8d6edc --- /dev/null +++ b/home/features/privacy/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + i2p + ]; +} diff --git a/home/features/services/syncthing.nix b/home/features/services/syncthing.nix new file mode 100644 index 0000000..db56b07 --- /dev/null +++ b/home/features/services/syncthing.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ syncthingtray-minimal ]; + services.syncthing = { enable = true; }; +} diff --git a/home/features/virtualization/default.nix b/home/features/virtualization/default.nix index e69de29..7f9e43c 100644 --- a/home/features/virtualization/default.nix +++ b/home/features/virtualization/default.nix @@ -0,0 +1,4 @@ +imports = [ + ./podman.nix + ./qemu.nix +]; diff --git a/home/features/virtualization/docker.nix b/home/features/virtualization/podman.nix similarity index 100% rename from home/features/virtualization/docker.nix rename to home/features/virtualization/podman.nix diff --git a/home/features/virtualization/qemu.nix b/home/features/virtualization/qemu.nix index e69de29..ec4d45c 100644 --- a/home/features/virtualization/qemu.nix +++ b/home/features/virtualization/qemu.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + virt-manager + virtiofsd + ]; +} diff --git a/home/users/m3tam3re/base/default.nix b/home/users/m3tam3re/base/default.nix index 29084fc..9d01ce9 100644 --- a/home/users/m3tam3re/base/default.nix +++ b/home/users/m3tam3re/base/default.nix @@ -4,7 +4,12 @@ let in { programs = { home-manager.enable = true; - git.enable = true; + git = { + userName = "m3tam3re"; + userEmail = "m@m3tam3re.com"; + aliases = { st = "status"; }; + }; + }; home = { diff --git a/hosts/lkk-nix-1/services/containers/baserow.nix b/hosts/lkk-nix-1/services/containers/baserow.nix index 3a2719a..a0e7fc7 100644 --- a/hosts/lkk-nix-1/services/containers/baserow.nix +++ b/hosts/lkk-nix-1/services/containers/baserow.nix @@ -1,16 +1,25 @@ -{ config, outputs, ...}: { +{ config, outputs, ... }: { virtualisation.oci-containers.containers."baserow" = { - image = "docker.io/baserow/baserow:1.14.0"; - environment = { - BASEROW_PUBLIC_URL = "https://db.lanakk.com"; - EMAIL_SMTP = "in-v3.mailjet.com"; - EMAIL_SMTP_HOST = "in-v3.mailjet.com"; - EMAIL_SMTP_PORT = "587"; - EMAIL_SMTP_USER = config.age.secrets.mj-smtp-user.path; - EMAIL_SMTP_PASSWORD = config.age.secrets.mj-smtp-pass.path; - }; - ports = [ "3001:80" ]; - volumes = [ "baserow_data:/baserow/data" ]; - extraOptions = [ "--add-host=postgres:10.88.0.1" ]; + image = "docker.io/baserow/baserow:1.14.0"; + environment = { + BASEROW_PUBLIC_URL = "https://db.lanakk.com"; + + POSTGRES_USER = "baserow"; + POSTGRES_PASSWORD = "baserow"; + POSTGRES_DB = "baserow"; + DATABASE_HOST = "postgres"; + DATABASE_NAME = "baserow"; + DATABASE_USER = "baserow"; + DATABASE_PASSWORD = "baserow"; + + EMAIL_SMTP = "in-v3.mailjet.com"; + EMAIL_SMTP_HOST = "in-v3.mailjet.com"; + EMAIL_SMTP_PORT = "587"; + EMAIL_SMTP_USER = config.age.secrets.mj-smtp-user.path; + EMAIL_SMTP_PASSWORD = config.age.secrets.mj-smtp-pass.path; + }; + ports = [ "3001:80" ]; + volumes = [ "baserow_data:/baserow/data" ]; + extraOptions = [ "--add-host=postgres:10.88.0.1" ]; }; } diff --git a/hosts/lkk-nix-1/services/default.nix b/hosts/lkk-nix-1/services/default.nix index 851b476..7714f01 100644 --- a/hosts/lkk-nix-1/services/default.nix +++ b/hosts/lkk-nix-1/services/default.nix @@ -2,6 +2,7 @@ imports = [ ./container.nix ./gitea.nix + ./mysql.nix ./n8n.nix ./postgres.nix ./traefik.nix diff --git a/hosts/lkk-nix-1/services/mariadb.nix b/hosts/lkk-nix-1/services/mariadb.nix new file mode 100644 index 0000000..2246d78 --- /dev/null +++ b/hosts/lkk-nix-1/services/mariadb.nix @@ -0,0 +1,7 @@ +{ pkgs, config, ... }: + +{ + services.mysql = { + enable = true; + package = pkgs.mariadb; +}