diff --git a/machines/x2100/default.nix b/machines/x2100/default.nix new file mode 100644 index 0000000..701509b --- /dev/null +++ b/machines/x2100/default.nix @@ -0,0 +1,103 @@ +{ config, pkgs, lib, inputs, ... }: + +{ + imports = + [ + # Include the results of the hardware scan. + ./hardware.nix + ./home-julien.nix + ../../users/julien.nix + ../../users/default.nix + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = false; + networking.hostName = "x2100"; + + networking.wireless.enable = false; + + programs.hyprland.enable = true; + programs.hyprland.package = pkgs.hyprland; + environment.sessionVariables = { + LIBSEAT_BACKEND = "logind"; + }; + + services.xserver = { + enable = true; + layout = "fr"; + displayManager.gdm.enable = true; + libinput = { + enable = true; + touchpad.naturalScrolling = true; + }; + }; + + services.tailscale.enable = true; + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + networking.networkmanager.dns = "systemd-resolved"; + services.resolved.enable = true; + + + time.timeZone = "Europe/Paris"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + useXkbConfig = true; # use xkbOptions in tty. + }; + + hardware.opengl.enable = true; + hardware.opengl.driSupport = true; + + programs.dconf.enable = true; + + security.polkit.enable = true; + + services.tlp.enable = true; + + environment.systemPackages = with pkgs; [ + tailscale + brightnessctl + ]; + + services.printing.enable = true; + services.avahi.enable = true; + services.avahi.nssmdns = true; + # for a WiFi printer + services.avahi.openFirewall = true; + + services.davfs2 = { + enable = true; + }; + + security.pam.services.swaylock = { }; + + programs.ssh.startAgent = true; + + programs.adb.enable = true; + services.udev.packages = [ + pkgs.android-udev-rules + ]; + + services.autofs = { + enable = true; + debug = true; + autoMaster = + let + mapConf = pkgs.writeText "auto" '' + nuage -fstype=davfs,uid=1000,file_mode=600,dir_mode=700,conf=/home/julien/.davfs2/davfs2.conf,rw :https\://nuage.malka.family/remote.php/webdav/ + ''; + in + '' + /home/julien/clouds file:${mapConf} + ''; + }; + + system.stateVersion = "23.05"; + +} + + + diff --git a/machines/x2100/hardware.nix b/machines/x2100/hardware.nix new file mode 100644 index 0000000..4b6ceac --- /dev/null +++ b/machines/x2100/hardware.nix @@ -0,0 +1,40 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "usb_storage" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { + device = "/dev/disk/by-uuid/d01369d1-b6ad-4fef-b73e-d1d56ec249ca"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { + device = "/dev/disk/by-uuid/1070-1613"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp1s0f0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; +} diff --git a/machines/x2100/home-julien.nix b/machines/x2100/home-julien.nix new file mode 100644 index 0000000..b89e9fe --- /dev/null +++ b/machines/x2100/home-julien.nix @@ -0,0 +1,107 @@ +{ pkgs, lib, config, ... }: +{ + + sops.secrets.ssh-macintosh-pub = { + owner = "julien"; + path = "/home/julien/.ssh/id_ed25519.pub"; + mode = "0644"; + format = "binary"; + sopsFile = ../../secrets/ssh-macintosh-pub; + }; + + sops.secrets.ssh-macintosh-priv = { + owner = "julien"; + path = "/home/julien/.ssh/id_ed25519"; + mode = "0600"; + format = "binary"; + sopsFile = ../../secrets/ssh-macintosh-priv; + }; + + luj.hmgr.julien = + { + home.stateVersion = "22.11"; + luj.programs.neovim.enable = true; + luj.programs.ssh-client.enable = true; + luj.programs.git.enable = true; + luj.programs.gtk.enable = true; + luj.programs.alacritty.enable = true; + luj.programs.hyprland.enable = true; + luj.programs.waybar.enable = true; + luj.programs.kitty.enable = true; + + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland; + font = "Fira Font"; + theme = "DarkBlue"; + }; + + programs.direnv = { + enable = true; + enableFishIntegration = true; + nix-direnv.enable = true; + }; + + home.pointerCursor = { + name = "Adwaita"; + package = pkgs.gnome.adwaita-icon-theme; + size = 15; + x11 = { + enable = true; + defaultCursor = "Adwaita"; + }; + }; + + home.packages = with pkgs; + [ + du-dust + kitty + jq + lazygit + fira-code + unstable.firefox + feh + meld + vlc + stable.nerdfonts + libreoffice + font-awesome + nodejs + neomutt + htop + evince + mosh + obsidian + zotero + flameshot + kitty + networkmanagerapplet + element-desktop + xdg-utils + sops + coq + cvc5 + coqPackages.coqide + (why3.withProvers + [ + unstable.cvc4 + alt-ergo + z3 + ]) + ]; + + fonts.fontconfig.enable = true; + + home.keyboard = { + layout = "fr"; + }; + + services.dunst = { + enable = true; + }; + + + }; + + +} diff --git a/machines/x2100/wallpaper.jpg b/machines/x2100/wallpaper.jpg new file mode 100644 index 0000000..403fd4e Binary files /dev/null and b/machines/x2100/wallpaper.jpg differ