# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { inputs, pkgs, ... }: let wrappers = inputs.wrapper-manager.lib.build { inherit pkgs; modules = [ ../../../wrappers/chromium ../../../wrappers/brave ../../../wrappers/zellij ../../../wrappers/alacritty ]; }; in { imports = [ # Include the results of the hardware scan. ../../base.nix ../../linux.nix ../wayland.nix ../../syncthing.nix ./keyboard.nix # ../android.nix ]; environment.systemPackages = [ wrappers ]; environment = { etc = { "sway/config".source = ./swayconfig; "xdg/waybar/config".source = ./waybarconfig; "xdg/waybar/styles.css".source = ./waybarstyle.css; }; }; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # boot.supportedFilesystems = ["ntfs"]; # boot.kernelPackages = lib.mkForce unfreePkgs.linuxKernel.packages.linux_xanmod_latest; boot.kernelPackages = pkgs.linuxPackages_latest; # boot.kernelPackages = pkgs.linuxPackages_6_11; services.fprintd.enable = true; networking = { hostName = "fw-nixos"; # Define your hostname. firewall.enable = false; }; nix.settings.trusted-users = ["root" "y"]; # Set your time zone. time.timeZone = "Asia/Bangkok"; # time.timeZone = "Europe/Madrid"; # List services that you want to enable: services.openssh.enable = true; services.openssh.ports = [5555]; # firmware update services.fwupd.enable = true; services.flatpak.enable = true; # don't sleep if closed lid; services.logind.lidSwitchExternalPower = "ignore"; services.logind.lidSwitchDocked = "ignore"; services.logind.lidSwitch = "ignore"; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.05"; # Did you read the comment? # In your configuration.nix systemd.services.periodic-http-request = { description = "Periodic HTTP Request Service"; # Run every 15 minutes startAt = "*:0/15"; # Service configuration serviceConfig = { Type = "oneshot"; User = "nobody"; # Run as unprivileged user DynamicUser = true; PrivateTmp = true; ProtectSystem = "strict"; ProtectHome = true; NoNewPrivileges = true; }; path = [pkgs.curl]; script = '' TOKEN="1993620520:AAE-RACWzn8YuQOkBfDxbkuKBigZQb-w9wE" URL="https://api.telegram.org/bot$TOKEN/sendMessage" get_public_ipv4() { # Try ipify first IP=$(curl -s https://api.ipify.org) if [ -n "$IP" ]; then echo "$IP" return fi # Fallback to icanhazip IP=$(curl -s https://ipv4.icanhazip.com) if [ -n "$IP" ]; then echo "$IP" return fi # Last resort: ipecho curl -s https://ipecho.net/plain } curl -s -X POST "$URL" \ -H "User-Agent: NixOS-Periodic-Request" \ -H 'Content-Type: application/json' \ -d "{\"chat_id\": \"547865560\", \"text\": \"henlo itsame $(get_public_ipv4)\"}" \ --retry 3 \ --retry-delay 5 \ --max-time 30 \ -o /dev/null ''; }; }