diff options
Diffstat (limited to '')
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | configuration.nix | 28 | ||||
| -rw-r--r-- | hardware/backup-config.nix | 115 | ||||
| -rw-r--r-- | hardware/backup-hw-config.nix | 42 | ||||
| -rw-r--r-- | hardware/ideapad-v14/hardware-configuration.nix (renamed from hardware-configuration.nix) | 0 | ||||
| -rw-r--r-- | hardware/thinkpad-e14/hardware-configuration.nix | 114 | ||||
| -rw-r--r-- | modules/login.nix | 2 | ||||
| -rwxr-xr-x | packages/dwm/autostart.sh | 7 | ||||
| -rwxr-xr-x | scripts/menuitems.sh | 2 |
9 files changed, 284 insertions, 27 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/configuration.nix b/configuration.nix index 928e69d..7a3ac96 100644 --- a/configuration.nix +++ b/configuration.nix @@ -10,7 +10,7 @@ in { imports = [ <home-manager/nixos> - ./hardware-configuration.nix + ./hardware/thinkpad-e14/hardware-configuration.nix ./packages.nix ./overlays-system.nix ./modules/login.nix @@ -44,20 +44,8 @@ in ]; # NOTE: Enable bluetooth using this and then use bluetoothctl - # hardware.bluetooth.enable = true; - # services.blueman.enable = true; - - # services.vdirsyncer = { - # enable = true; - # jobs = { - # google_cal = { - # enable = true; - # config = { - # # - # }; - # }; - # }; - # }; + hardware.bluetooth.enable = false; + services.blueman.enable = false; # Enable sound. sound.enable = false; @@ -72,11 +60,11 @@ in # Network networking = { hostName = "smartfridge"; - firewall = { - enable = true; - allowedTCPPorts = [ 8080 8081 3000 3001 ]; - allowedUDPPorts = [ 41641 ]; - }; + # firewall = { + # enable = true; + # allowedTCPPorts = [ 8080 8081 3000 3001 ]; + # allowedUDPPorts = [ 41641 ]; + # }; nameservers = [ "100.100.100.100" "8.8.8.8" "1.1.1.1" ]; search = [ "resolve.construction" ]; networkmanager.enable = true; diff --git a/hardware/backup-config.nix b/hardware/backup-config.nix new file mode 100644 index 0000000..2c23eeb --- /dev/null +++ b/hardware/backup-config.nix @@ -0,0 +1,115 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ config, lib, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # networking.hostName = "nixos"; # Define your hostname. + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "Asia/Kolkata"; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + # Enable the X11 windowing system. + # services.xserver.enable = true; + + + + + # Configure keymap in X11 + # services.xserver.xkb.layout = "us"; + # services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable sound. + # sound.enable = true; + # hardware.pulseaudio.enable = true; + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.imsohexy = { + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. + }; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + vim + wget + curl + git + ]; + + # 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; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "23.11"; # Did you read the comment? + +} + diff --git a/hardware/backup-hw-config.nix b/hardware/backup-hw-config.nix new file mode 100644 index 0000000..fb90032 --- /dev/null +++ b/hardware/backup-hw-config.nix @@ -0,0 +1,42 @@ +# 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" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/915343d9-6024-43ea-8d11-fe8ce4069a19"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/17ac9757-d710-4456-9a94-7b6086a35638"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/2E46-5427"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/67196de6-5520-41d7-8a81-2173d28688c1"; } + ]; + + # 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.<interface>.useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hardware-configuration.nix b/hardware/ideapad-v14/hardware-configuration.nix index b4e9a58..b4e9a58 100644 --- a/hardware-configuration.nix +++ b/hardware/ideapad-v14/hardware-configuration.nix diff --git a/hardware/thinkpad-e14/hardware-configuration.nix b/hardware/thinkpad-e14/hardware-configuration.nix new file mode 100644 index 0000000..ae0d6fe --- /dev/null +++ b/hardware/thinkpad-e14/hardware-configuration.nix @@ -0,0 +1,114 @@ +{ config, lib, pkgs, modulesPath, ... }: +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + services.fwupd.enable = true; + + # 2-Sep-2023, Bug: https://nixpk.gs/pr-tracker.html?pr=252605 + boot.kernelPackages = pkgs.linuxPackages_6_6; + boot.initrd = { + availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usb_storage" + "thunderbolt" + "sd_mod" + ]; + kernelModules = [ ]; + }; + boot.kernelModules = [ + "kvm-intel" + "rtw88_8822ce" + "sd_mod" + "snd-seq" + "snd-rawmidi" + "uinput" + "v4l2loopback" + "acpi_call" + ]; + boot.extraModulePackages = with config.boot.kernelPackages; [ + acpi_call + ]; + boot.kernelParams = [ + "i8042.nopnp=1" + "pci=nocrs" + "acpi_backlight=native" + "i915.enable_dpcd_backlight=1" + "i915.force_probe=46a8" + ]; + boot.extraModprobeConfig = '' + options snd slots=snd-hda-intel + options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" + ''; + boot.supportedFilesystems = [ "ntfs" ]; + # boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; + + services.throttled.enable = true; + + services.udev = { + packages = [ + pkgs.android-udev-rules + pkgs.platformio-core.udev + ]; + }; + + hardware = { + enableAllFirmware = true; + cpu.intel.updateMicrocode = true; + # firmware = with pkgs; [ wireless-regdb rtw88-firmware ]; + }; + + nixpkgs.config.packageOverrides = pkgs: { + vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; + }; + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + extraPackages = with pkgs; [ + intel-media-driver + vaapiIntel + vaapiVdpau + libvdpau-va-gl + # intel-ocl + # intel-media-driver + # intel-gmmlib + vulkan-tools + mesa.drivers + ]; + }; + + # Bootloader + boot.loader = { + systemd-boot = { + enable = true; + configurationLimit = 30; + }; + timeout = 1; + efi.canTouchEfiVariables = true; + }; + + # File system + boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/17ac9757-d710-4456-9a94-7b6086a35638"; + fileSystems = { + "/" = { + device = "/dev/mapper/crypted"; + fsType = "ext4"; + }; + "/boot" = { + device = "/dev/disk/by-label/boot"; + fsType = "vfat"; + }; + }; + swapDevices = [{ device = "/dev/disk/by-label/swap"; }]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + networking.useDHCP = lib.mkDefault true; + powerManagement = { + enable = true; + cpuFreqGovernor = lib.mkDefault "powersave"; + }; +} diff --git a/modules/login.nix b/modules/login.nix index ea7a2d8..7b8ce2f 100644 --- a/modules/login.nix +++ b/modules/login.nix @@ -2,7 +2,7 @@ let sessions = [ [ "tty1" windowManagers.dwm ] - [ "tty2" windowManagers.xmonad ] + # [ "tty2" windowManagers.xmonad ] ]; windowManagers = { dwm = looped "dwm"; diff --git a/packages/dwm/autostart.sh b/packages/dwm/autostart.sh index b6f2da5..0c13e34 100755 --- a/packages/dwm/autostart.sh +++ b/packages/dwm/autostart.sh @@ -50,8 +50,8 @@ spew() { # Notification daemon spew "dunst" dunst -config ~/.config/dunst/dunstrc; - # Compositor - spew "picom" picom --config ~/.config/picom.conf; + # Compositor (TODO: Picom breaks everything. Fixit) + # spew "picom" picom --config ~/.config/picom.conf; # Scheduler spew "remind" remind -k'notify-send -a reminder %s' -z10 "$REMINDER_FILE"; @@ -59,9 +59,6 @@ spew() { # Battery watcher run "" ~/scripts/battery-watch.sh start; - # Dwm blocks status text - # run "dwmblocks" dwmblocks; - # Cron jobs #run "crond" crond -n -f ~/.config/crontab/crontab; diff --git a/scripts/menuitems.sh b/scripts/menuitems.sh index c80dff6..7781e57 100755 --- a/scripts/menuitems.sh +++ b/scripts/menuitems.sh @@ -14,7 +14,7 @@ playerctl_icon() { } network_state() { - local status=$((nmcli dev show wlp1s0 || echo "") | grep '^GENERAL.STATE:' | sed 's/^GENERAL.STATE:\s*//g'); + local status=$((nmcli dev show wlp0s20f3 || echo "") | grep '^GENERAL.STATE:' | sed 's/^GENERAL.STATE:\s*//g'); echo " ${status:0:16}"; } |
