From d12184c99b528cddf0676608d290e50932d1656c Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sun, 11 Feb 2024 00:17:07 +0100 Subject: guixify surltesh-echer initial config, the system is now a mess with lots of old nix stuff still hanging out on the disk. Tbh not sure if I'll do much with this, but wanted to play around a little with this again. --- surltesh-echer/configuration.nix | 38 ---------- surltesh-echer/configuration.scm | 117 +++++++++++++++++++++++++++++ surltesh-echer/hardware-configuration.nix | 26 ------- surltesh-echer/home/bash_profile | 5 ++ surltesh-echer/home/bashrc | 36 +++++++++ surltesh-echer/home/home-configuration.scm | 66 ++++++++++++++++ 6 files changed, 224 insertions(+), 64 deletions(-) delete mode 100644 surltesh-echer/configuration.nix create mode 100644 surltesh-echer/configuration.scm delete mode 100644 surltesh-echer/hardware-configuration.nix create mode 100644 surltesh-echer/home/bash_profile create mode 100644 surltesh-echer/home/bashrc create mode 100644 surltesh-echer/home/home-configuration.scm (limited to 'surltesh-echer') diff --git a/surltesh-echer/configuration.nix b/surltesh-echer/configuration.nix deleted file mode 100644 index 0b5dab9..0000000 --- a/surltesh-echer/configuration.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, ... }: - -{ - imports = - [ - ./hardware-configuration.nix - ]; - - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/sda"; - - networking.hostName = "surltesh-echer"; # Define your hostname. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Set your time zone. - time.timeZone = "Europe/Amsterdam"; - - networking = { - networkmanager.enable = true; - useDHCP = false; - interfaces = { - enp0s25.useDHCP = true; - wlp3s0.useDHCP = true; - wwp0s20u4i6.useDHCP = 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 = "20.09"; # Did you read the comment? - -} - diff --git a/surltesh-echer/configuration.scm b/surltesh-echer/configuration.scm new file mode 100644 index 0000000..bea816a --- /dev/null +++ b/surltesh-echer/configuration.scm @@ -0,0 +1,117 @@ +(use-modules (gnu) + (guix packages) + (guix git-download) + (gnu system) + (gnu services) + (guix gexp) + (srfi srfi-1)) + +(use-package-modules + bootloaders certs + emacs + terminals + wm xdisorg shells admin + version-control + nss) + +(use-service-modules desktop + base) + +(define wlroots-0.15 + (package + (inherit wlroots) + (version "0.15.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/wlroots/wlroots") + (commit version))) + (file-name (git-file-name "wlroots" version)) + (sha256 + (base32 "00s73nhi3sc48l426jdlqwpclg41kx1hv0yk4yxhbzw19gqpfm1h")))))) + + +(define-public hikari-patched + (package + (inherit hikari) + (inputs (modify-inputs (package-inputs hikari) + (replace "wlroots" wlroots-0.15))))) + + +(operating-system + (host-name "surltesh-echer") + (timezone "Europe/Paris") + (locale "en_US.utf8") + + ;; Use the UEFI variant of GRUB with the EFI System + ;; Partition mounted on /boot/efi. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (targets '("/dev/sda")))) + + ;; Assume the target root file system is labelled "my-root", + ;; and the EFI System Partition has UUID 1234-ABCD. + (file-systems (append + (list (file-system + (device "/dev/sda1") + (mount-point "/") + (type "ext4"))) + %base-file-systems)) + + (users (cons (user-account + (name "stuebinm") + (group "users") + (supplementary-groups '("wheel" "netdev" + "audio" "video")) + (shell (file-append fish "/bin/fish"))) + %base-user-accounts)) + + ;; Add a bunch of window managers; we can choose one at + ;; the log-in screen with F1. + (packages (append (list + ;; window managers + hikari-patched + emacs kitty fuzzel git + fish + ;; for HTTPS access + nss-certs) + %base-packages)) + + ;; Use the "desktop" services, which include the X11 + ;; log-in service, networking with NetworkManager, and more. + (services + (append (modify-services + %desktop-services + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + (greetd-terminal-configuration + (terminal-vt "1") + (terminal-switch #t) + (default-session-command + (greetd-agreety-session + (command (file-append hikari-patched "/bin/hikari")) + (command-args '("-c" "hikari.conf")) + )) + ))))) + (service mingetty-service-type + (mingetty-configuration (tty "tty2"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty3"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty4"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty5"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty6"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty7"))) + (service mingetty-service-type + (mingetty-configuration (tty "tty8"))) + ))) + + ;; Allow resolution of '.local' host names with mDNS. + (name-service-switch %mdns-host-lookup-nss)) diff --git a/surltesh-echer/hardware-configuration.nix b/surltesh-echer/hardware-configuration.nix deleted file mode 100644 index 4cfe83b..0000000 --- a/surltesh-echer/hardware-configuration.nix +++ /dev/null @@ -1,26 +0,0 @@ -# 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 = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/9cc0a379-0671-4f2e-86ef-9f38f3db3b41"; - fsType = "ext4"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/7d644f80-1042-4a9f-ace0-620b6a1c916f"; } - ]; - - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; -} diff --git a/surltesh-echer/home/bash_profile b/surltesh-echer/home/bash_profile new file mode 100644 index 0000000..1db2b77 --- /dev/null +++ b/surltesh-echer/home/bash_profile @@ -0,0 +1,5 @@ +# include .profile if it exists +[[ -f ~/.profile ]] && . ~/.profile + +# include .bashrc if it exists +[[ -f ~/.bashrc ]] && . ~/.bashrc diff --git a/surltesh-echer/home/bashrc b/surltesh-echer/home/bashrc new file mode 100644 index 0000000..9c2ee2d --- /dev/null +++ b/surltesh-echer/home/bashrc @@ -0,0 +1,36 @@ + + +# Commands that should be applied only for interactive shells. +[[ $- == *i* ]] || return + +HISTCONTROL=ignoredups:ignorespace +HISTFILESIZE=10000 +HISTSIZE=10000 + +shopt -s histappend +shopt -s checkwinsize +shopt -s extglob +shopt -s globstar +shopt -s checkjobs + +alias ll='ls -slF' +alias lrz-vpn='sudo openconnect https://asa-cluster.lrz.de -g AnyConnect' +alias news='newsboat' +alias pj='pijul' + +if [[ ! -v BASH_COMPLETION_VERSINFO ]]; then + . "/nix/store/9xgx98k6ggq1ay63cq57k9gw35i44b1n-bash-completion-2.11/etc/profile.d/bash_completion.sh" +fi + +export GPG_TTY=`tty` +# this shouldn't be necessary, but apparently nix is broken ... +NIX_PATH=$HOME/.nix-defexpr/channels${NIX_PATH:+:}$NIX_PATH +PS1='\[\033[1;36m\] >>> [\j|\u@\w]\$: \[\033[00m\]' + +GPG_TTY="$(tty)" +export GPG_TTY + +if [[ $TERM != "dumb" && (-z $INSIDE_EMACS || $INSIDE_EMACS == "vterm") ]]; then + eval "$(/home/stuebinm/.nix-profile/bin/starship init bash --print-full-init)" +fi + diff --git a/surltesh-echer/home/home-configuration.scm b/surltesh-echer/home/home-configuration.scm new file mode 100644 index 0000000..f44a68b --- /dev/null +++ b/surltesh-echer/home/home-configuration.scm @@ -0,0 +1,66 @@ +;; This "home-environment" file can be passed to 'guix home reconfigure' +;; to reproduce the content of your profile. This is "symbolic": it only +;; specifies package names. To reproduce the exact same profile, you also +;; need to capture the channels being used, as returned by "guix describe". +;; See the "Replicating Guix" section in the manual. + +(use-modules (gnu) + (gnu home) + (gnu packages) + (gnu services) + (guix gexp) + (gnu home services shells) + (gnu home services ssh) + (gnu home services guix)) + +(use-package-modules + bootloaders certs + emacs + terminals + wm xdisorg shells admin + version-control + haskell-apps + rust-apps + compression + linux + pulseaudio + ssh + nss) + +(home-environment + ;; Below is the list of packages that will show up in your + ;; Home profile, under ~/.guix-home/profile. + (packages (list git + ripgrep + fd eza zip unzip acpi + brightnessctl openssh + pavucontrol)) + + ;; Below is the list of Home services. To search for available + ;; services, run 'guix home search KEYWORD' in a terminal. + (services + (list + (service home-openssh-service-type + (home-openssh-configuration + (hosts + (list (openssh-host + (name "cgit") + (user "git") + (host-name "flora.stuebinm.eu") + (identity-file "/home/stuebinm/.ssh/hetzner")) + (openssh-host + (name "chaski") + (user "root") + (host-name "chaski.stuebinm.eu") + (identity-file "/home/stuebinm/.ssh/hetzner")))))) + (service home-fish-service-type + (home-fish-configuration)) + (service home-bash-service-type + (home-bash-configuration + (aliases '(("ll" . "ls -slF") + ("lrz-vpn" . "sudo openconnect https://asa-cluster.lrz.de -g AnyConnect") + ("news" . "newsboat") + ("pj" . "pijul"))) + (bashrc (list (local-file "bashrc" "bashrc"))) + (bash-profile (list (local-file "bash_profile" + "bash_profile")))))))) -- cgit v1.2.3