From 6eb48663b6ef7f8e0fb1e0e27115293b4c6a8daf Mon Sep 17 00:00:00 2001 From: arnaucube Date: Thu, 5 Sep 2024 19:38:02 +0200 Subject: [PATCH] update & reorganize nixos configs --- nixos/README.md | 2 + nixos/common-configuration.nix | 104 ++++++++++++++++++ ...guration.nix => surface-configuration.nix} | 2 + nixos/thinkpad-configuration.nix | 78 +++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 nixos/common-configuration.nix rename nixos/{configuration.nix => surface-configuration.nix} (98%) create mode 100644 nixos/thinkpad-configuration.nix diff --git a/nixos/README.md b/nixos/README.md index 9152e67..9e4e727 100644 --- a/nixos/README.md +++ b/nixos/README.md @@ -10,3 +10,5 @@ sudo nix-env --profile /nix/var/nix/profiles/system --delete-generations 9 10 11 # to remove old programs nix-collect-garbage --delete-old ``` + +When stting up the config files in a system, remember to rename either the file `thinkpad-configuration.nix` or `surface-configuration.nix` files into `configuration.nix`. diff --git a/nixos/common-configuration.nix b/nixos/common-configuration.nix new file mode 100644 index 0000000..ae41613 --- /dev/null +++ b/nixos/common-configuration.nix @@ -0,0 +1,104 @@ +# This file contains the config shared across different devices. + +{ config, pkgs, ... }: + +{ + # Set your time zone. + time.timeZone = "Europe/Madrid"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "es_ES.UTF-8"; + LC_IDENTIFICATION = "es_ES.UTF-8"; + LC_MEASUREMENT = "es_ES.UTF-8"; + LC_MONETARY = "es_ES.UTF-8"; + LC_NAME = "es_ES.UTF-8"; + LC_NUMERIC = "es_ES.UTF-8"; + LC_PAPER = "es_ES.UTF-8"; + LC_TELEPHONE = "es_ES.UTF-8"; + LC_TIME = "es_ES.UTF-8"; + }; + + + environment.systemPackages = with pkgs; [ + # minimal + vim + neovim + wget + tmux + git + delta + tig + mosh + bat + lf + ripgrep + fzf + screenfetch + htop + alacritty + zathura + mate.atril + xclip # to make clipboard work in neovim + xorg.xmodmap + xfce.xfce4-screenshooter + xfce.thunar + xfce.xfconf # needed to save preferences of thunar + xfce.ristretto + pavucontrol + + # other + mpv + feh + kolourpaint + + # browsers + firefox + qutebrowser + chromium + + # languages + texlive.combined.scheme-medium # includes latexmk + #pgf-umlsd # latex diagrams + #pgf + #(pkgs.texlive.combine { + # inherit (pkgs.texlive) + # scheme-medium + # pgf + # ; + #}) + #gcc + clang + clang-tools + stdenv + rustup + sage + go + python3 + nodejs + + ]; + + environment.variables = { + LIBCLANG_PATH = "${pkgs.llvmPackages_17.libclang.lib}/lib"; + }; + + fonts.packages = with pkgs; [ + dina-font + proggyfonts + terminus_font + fira-code + liberation_ttf + noto-fonts + tamsyn + termsyn + gohufont + ]; + + programs.zsh.enable = true; + users.defaultUserShell = pkgs.zsh; + environment.shells = with pkgs; [zsh]; + +} diff --git a/nixos/configuration.nix b/nixos/surface-configuration.nix similarity index 98% rename from nixos/configuration.nix rename to nixos/surface-configuration.nix index 9f88aab..b1c9ad9 100644 --- a/nixos/configuration.nix +++ b/nixos/surface-configuration.nix @@ -1,3 +1,5 @@ +# This file is meant to be renamed to `configuration.nix` + # 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’). diff --git a/nixos/thinkpad-configuration.nix b/nixos/thinkpad-configuration.nix new file mode 100644 index 0000000..c4e9014 --- /dev/null +++ b/nixos/thinkpad-configuration.nix @@ -0,0 +1,78 @@ +# This file is meant to be renamed to `configuration.nix` + +# 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, ... }: + +{ + imports = + [ + ./common-configuration.nix + ./hardware-configuration.nix + ./private-configuration.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Enable networking + networking.networkmanager.enable = true; + + services.displayManager = { + defaultSession = "none+i3"; + }; + services.xserver = { + xkb = { # Configure keymap in X11 + layout = "us"; + variant = ""; + }; + + enable=true; + #displayManager = { + # defaultSession = "none+i3"; + #}; + windowManager.i3 = { + enable=true; + extraPackages = with pkgs; [ + dmenu + i3status + i3lock + ]; + }; + }; + + # Define a user account + users.users.user = { + isNormalUser = true; + description = "user"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; []; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + + # 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? + + # gvfs needed for Thunar to detect external disks + services.gvfs.enable = true; + + # bluetooth related + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + hardware.pulseaudio.enable = true; +}