diff --git a/bash/tools.bash b/bash/tools.bash index da78446..6e59e2c 100644 --- a/bash/tools.bash +++ b/bash/tools.bash @@ -8,8 +8,8 @@ if ! shopt -oq posix; then fi # ble.sh -[[ -r "$HOME/.local/share/blesh/out/ble.sh" ]] && - source "$HOME/.local/share/blesh/out/ble.sh" +[[ -r "/etc/blesh/ble.sh" ]] && + source /etc/blesh/ble.sh # NVM export NVM_DIR="$HOME/.nvm" diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..75d8502 --- /dev/null +++ b/flake.lock @@ -0,0 +1,44 @@ +{ + "nodes": { + "codex-nixpkgs": { + "locked": { + "lastModified": 1790985011, + "narHash": "sha256-VgqQfUblvgQomOUkyTCy5YE1mjRn8VBS8g984p9Ft4s=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4379d026b3ff838d5a8655451280c4fdf2e3e96a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1790920529, + "narHash": "sha256-nQyFkMR78WP6PiXKkDW2SjqzLf/spQqjRuxRGSbcV8k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "774debe7a0d1b496e35677ad955a1011c6ff74f3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "codex-nixpkgs": "codex-nixpkgs", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..49165a9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,18 @@ +{ + description = "NixOS system and personal dotfiles"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; + codex-nixpkgs.url = "github:NixOS/nixpkgs/master"; + }; + + outputs = { nixpkgs, codex-nixpkgs, ... }: { + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ ./nixos/hosts/nixos ]; + specialArgs = { + codexPkgs = codex-nixpkgs.legacyPackages.x86_64-linux; + }; + }; + }; +} diff --git a/nixos/hosts/nixos/default.nix b/nixos/hosts/nixos/default.nix new file mode 100644 index 0000000..d1db620 --- /dev/null +++ b/nixos/hosts/nixos/default.nix @@ -0,0 +1,17 @@ +{ ... }: + +{ + imports = [ + ./hardware-configuration.nix + ../../modules/desktop.nix + ../../modules/hardware.nix + ../../modules/packages + ../../modules/system.nix + ../../modules/users.nix + ]; + + networking.hostName = "nixos"; + + # Keep this at the version used during the initial installation. + system.stateVersion = "26.05"; +} diff --git a/nixos/hosts/nixos/hardware-configuration.nix b/nixos/hosts/nixos/hardware-configuration.nix new file mode 100644 index 0000000..9b1e5e4 --- /dev/null +++ b/nixos/hosts/nixos/hardware-configuration.nix @@ -0,0 +1,37 @@ +# Generated by nixos-generate-config. Keep machine-specific settings here. +{ config, lib, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "ahci" + "nvme" + "xhci_pci" + "usb_storage" + "usbhid" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/bc9b799b-3c14-419b-b3f5-88ff212bb1f4"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/D846-0839"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/nixos/modules/desktop.nix b/nixos/modules/desktop.nix new file mode 100644 index 0000000..4059405 --- /dev/null +++ b/nixos/modules/desktop.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +{ + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + + services.displayManager.sddm = { + enable = true; + wayland.enable = true; + }; + + services.displayManager.sessionPackages = [ pkgs.hyprland ]; + + programs.throne.enable = true; + programs.throne.tunMode.enable = true; +} diff --git a/nixos/modules/hardware.nix b/nixos/modules/hardware.nix new file mode 100644 index 0000000..ae4cc37 --- /dev/null +++ b/nixos/modules/hardware.nix @@ -0,0 +1,23 @@ +{ ... }: + +{ + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware.nvidia = { + modesetting.enable = true; + open = true; + nvidiaSettings = true; + }; + + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + services.pipewire = { + enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + }; +} diff --git a/nixos/modules/packages/default.nix b/nixos/modules/packages/default.nix new file mode 100644 index 0000000..02426a8 --- /dev/null +++ b/nixos/modules/packages/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./desktop.nix + ./development.nix + ./shell.nix + ./utilities.nix + ]; +} diff --git a/nixos/modules/packages/desktop.nix b/nixos/modules/packages/desktop.nix new file mode 100644 index 0000000..83e8675 --- /dev/null +++ b/nixos/modules/packages/desktop.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + adwaita-icon-theme + firefox + grim + hyprpaper + kitty + mako + slurp + waybar + wl-clipboard + wofi + ]; +} diff --git a/nixos/modules/packages/development.nix b/nixos/modules/packages/development.nix new file mode 100644 index 0000000..7a59aa0 --- /dev/null +++ b/nixos/modules/packages/development.nix @@ -0,0 +1,29 @@ +{ codexPkgs, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + clang + cmake + codexPkgs.codex + gcc + git + gitui + meson + neovim + ninja + tree-sitter + vim + ]; + + systemd.user.services.codex-background-server = { + description = "Codex background app server"; + wantedBy = [ "default.target" ]; + unitConfig.ConditionUser = "hhhh"; + serviceConfig = { + ExecStart = "/run/current-system/sw/bin/codex app-server --listen unix://"; + WorkingDirectory = "%h"; + Restart = "on-failure"; + RestartSec = 3; + }; + }; +} diff --git a/nixos/modules/packages/shell.nix b/nixos/modules/packages/shell.nix new file mode 100644 index 0000000..adcd429 --- /dev/null +++ b/nixos/modules/packages/shell.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + atuin + blesh + direnv + eza + fd + fzf + ripgrep + starship + zoxide + ]; + + environment.etc."blesh/ble.sh".source = "${pkgs.blesh}/share/blesh/ble.sh"; +} diff --git a/nixos/modules/packages/utilities.nix b/nixos/modules/packages/utilities.nix new file mode 100644 index 0000000..2b02441 --- /dev/null +++ b/nixos/modules/packages/utilities.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + curl + tree + unzip + wget + zip + ]; +} diff --git a/nixos/modules/system.nix b/nixos/modules/system.nix new file mode 100644 index 0000000..86b0258 --- /dev/null +++ b/nixos/modules/system.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + + nixpkgs.config.allowUnfree = true; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.networkmanager.enable = true; + + security.polkit.enable = true; + services.openssh.enable = true; +} diff --git a/nixos/modules/users.nix b/nixos/modules/users.nix new file mode 100644 index 0000000..22b3be7 --- /dev/null +++ b/nixos/modules/users.nix @@ -0,0 +1,12 @@ +{ ... }: + +{ + users.users.hhhh = { + isNormalUser = true; + description = "main"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + }; +}