diff --git a/README.md b/README.md new file mode 100644 index 0000000..619546b --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Nixos configuration diff --git a/devshells/ocaml/flake.lock b/devshells/ocaml/flake.lock new file mode 100644 index 0000000..6afaf12 --- /dev/null +++ b/devshells/ocaml/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1765762245, + "narHash": "sha256-3iXM/zTqEskWtmZs3gqNiVtRTsEjYAedIaLL0mSBsrk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c8cfcd6ccd422e41cc631a0b73ed4d5a925c393d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devshells/ocaml/flake.nix b/devshells/ocaml/flake.nix new file mode 100644 index 0000000..ac8d7e6 --- /dev/null +++ b/devshells/ocaml/flake.nix @@ -0,0 +1,33 @@ +{ + description = "OCaml nix-flake devshell."; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; + }; + + outputs = + { self, nixpkgs, ... }: + let + system = "x86_64-linux"; + in + { + devShells."${system}".default = + let + pkgs = import nixpkgs { + inherit system; + }; + in + pkgs.mkShell { + packages = + with pkgs; + with ocamlPackages; + [ + findlib + ocaml + ocaml-lsp + ocamlformat + dune_3 + ]; + }; + }; +} diff --git a/devshells/why3/flake.lock b/devshells/why3/flake.lock new file mode 100644 index 0000000..ef165e7 --- /dev/null +++ b/devshells/why3/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devshells/why3/flake.nix b/devshells/why3/flake.nix new file mode 100644 index 0000000..f385f42 --- /dev/null +++ b/devshells/why3/flake.nix @@ -0,0 +1,31 @@ +{ + description = "Why3 nix-flake devshell."; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = + { self, nixpkgs, ... }: + let + system = "x86_64-linux"; + in + { + devShells."${system}".default = + let + pkgs = import nixpkgs { inherit system; }; + in + pkgs.mkShell { + packages = with pkgs; [ + why3 + alt-ergo + z3 + cvc5 + ]; + + shellHook = '' + why3 config detect + ''; + }; + }; +} diff --git a/flake.nix b/flake.nix index 8fc4401..41b311f 100644 --- a/flake.nix +++ b/flake.nix @@ -7,17 +7,20 @@ home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { nixpkgs, home-manager, ... }: { - nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./nixos/configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.hms = ./home-manager/home.nix; - } - ]; + outputs = + { nixpkgs, home-manager, ... }: + { + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./nixos/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.hms = ./home-manager/home.nix; + } + ]; + }; }; - }; } diff --git a/home-manager/home.nix b/home-manager/home.nix index 38d1890..e1661a1 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -13,19 +13,22 @@ ripgrep just tealdeer + zoxide # Applications + blackbox-terminal zotero zulip discord signal-desktop - sgt-puzzles + # sgt-puzzles gapless # Development opam tinymist nixfmt-rfc-style + nil ]; shell.enableBashIntegration = true; @@ -48,8 +51,10 @@ editor = { lsp.display-messages = true; inline-diagnostics.cursor-line = "info"; - rulers = [81]; + rulers = [ 81 ]; + gutters.layout = [ "diagnostics" ]; }; + keys.insert.j.k = "normal_mode"; }; }; bat.enable = true; @@ -67,23 +72,27 @@ bash = { enable = true; bashrcExtra = '' - export PS1=" \W \[\e[33m\]λ\[\e[0m\] " - test -r '/home/hms/.opam/opam-init/init.sh' && . '/home/hms/.opam/opam-init/init.sh' > /dev/null 2> /dev/null || true - ''; + export PS1=" \W \[\e[33m\]λ\[\e[0m\] " + ''; }; gpg.enable = true; + zoxide = { + enable = true; + enableBashIntegration = true; + options = [ "--cmd cd" ]; + }; }; xdg.userDirs = { enable = true; createDirectories = true; - desktop = "${config.home.homeDirectory}/dsk"; - documents = "${config.home.homeDirectory}/doc"; - download = "${config.home.homeDirectory}/dwn"; - music = "${config.home.homeDirectory}/aud"; - pictures = "${config.home.homeDirectory}/img"; + desktop = "${config.home.homeDirectory}/dsk"; + documents = "${config.home.homeDirectory}/doc"; + download = "${config.home.homeDirectory}/dwn"; + music = "${config.home.homeDirectory}/aud"; + pictures = "${config.home.homeDirectory}/img"; publicShare = "${config.home.homeDirectory}/pub"; - templates = "${config.home.homeDirectory}/tpl"; - videos = "${config.home.homeDirectory}/vid"; + templates = "${config.home.homeDirectory}/tpl"; + videos = "${config.home.homeDirectory}/vid"; }; } diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 69ef286..8d5ab10 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -1,14 +1,9 @@ -# 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’). - -{ config, pkgs, ... }: +{ pkgs, ... }: { - imports = - [ - ./hardware-configuration.nix - ]; + imports = [ + ./hardware-configuration.nix + ]; # Use flakes. nix.settings.experimental-features = "nix-command flakes"; @@ -20,20 +15,13 @@ efi.canTouchEfiVariables = true; }; kernelPackages = pkgs.linuxPackages_latest; - initrd.luks.devices."luks-374c6259-18c4-462b-9f30-9c9648de00ae".device = "/dev/disk/by-uuid/374c6259-18c4-462b-9f30-9c9648de00ae"; + initrd.luks.devices."luks-374c6259-18c4-462b-9f30-9c9648de00ae".device = + "/dev/disk/by-uuid/374c6259-18c4-462b-9f30-9c9648de00ae"; }; networking = { hostName = "nixos"; networkmanager.enable = true; - wireless.networks.eduroam = { - auth = '' - key_mgmt=WPA-EAP - eap=PWD - identity="henri.saudubray@universite-paris-saclay.fr" - password="" - ''; - }; }; # Set your time zone. @@ -90,21 +78,20 @@ users.users.hms = { isNormalUser = true; description = "hms"; - extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; []; + extraGroups = [ + "networkmanager" + "wheel" + ]; + packages = [ ]; }; - # Install firefox. programs.firefox.enable = true; nixpkgs = { - overlays = []; - # Allow unfree packages + overlays = [ ]; config.allowUnfree = true; }; - # List packages installed in system profile. To search, run: - # $ nix search wget environment.systemPackages = with pkgs; [ helix wget @@ -113,7 +100,7 @@ gnomeExtensions.clipboard-indicator gnomeExtensions.rounded-window-corners-reborn gnomeExtensions.runcat - nerd-fonts.caskaydia-cove + nerd-fonts.adwaita-mono adw-gtk3 gnumake clang @@ -121,13 +108,10 @@ xclip ]; - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; - system.stateVersion = "25.11"; # Did you read the comment? + system.stateVersion = "25.11"; } diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix index 474c3e4..712136b 100644 --- a/nixos/hardware-configuration.nix +++ b/nixos/hardware-configuration.nix @@ -1,34 +1,52 @@ # 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, ... }: +{ + config, + lib, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "thunderbolt" + "vmd" + "nvme" + "usb_storage" + "usbhid" + "sd_mod" + "rtsx_pci_sdmmc" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/mapper/luks-de976821-5bfe-4c34-92ff-5d4d607e42c4"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/mapper/luks-de976821-5bfe-4c34-92ff-5d4d607e42c4"; + fsType = "ext4"; + }; - boot.initrd.luks.devices."luks-de976821-5bfe-4c34-92ff-5d4d607e42c4".device = "/dev/disk/by-uuid/de976821-5bfe-4c34-92ff-5d4d607e42c4"; + boot.initrd.luks.devices."luks-de976821-5bfe-4c34-92ff-5d4d607e42c4".device = + "/dev/disk/by-uuid/de976821-5bfe-4c34-92ff-5d4d607e42c4"; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6137-E7B4"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = - [ { device = "/dev/mapper/luks-374c6259-18c4-462b-9f30-9c9648de00ae"; } + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/6137-E7B4"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" ]; + }; + + swapDevices = [ + { device = "/dev/mapper/luks-374c6259-18c4-462b-9f30-9c9648de00ae"; } + ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;