summaryrefslogtreecommitdiff
path: root/hosts/laptop-nixos
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/laptop-nixos')
-rw-r--r--hosts/laptop-nixos/configuration.nix203
-rw-r--r--hosts/laptop-nixos/hardware-configuration.nix41
-rw-r--r--hosts/laptop-nixos/home.nix124
3 files changed, 0 insertions, 368 deletions
diff --git a/hosts/laptop-nixos/configuration.nix b/hosts/laptop-nixos/configuration.nix
deleted file mode 100644
index 3047df5..0000000
--- a/hosts/laptop-nixos/configuration.nix
+++ /dev/null
@@ -1,203 +0,0 @@
-{ config, pkgs, inputs, ... }: {
- imports = [
- ./hardware-configuration.nix
- inputs.home-manager.nixosModules.default
- ];
-
- # Bootloader.
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
-
- networking.hostName = "laptop-nixos";
- # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
-
- nix.settings.experimental-features = [ "nix-command" "flakes" ];
-
- # Configure network proxy if necessary
- # networking.proxy.default = "http://user:password@proxy:port/";
- # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
-
- # Enable networking
- networking.networkmanager.enable = true;
-
- time.timeZone = "Asia/Hebron";
- i18n.defaultLocale = "en_US.UTF-8";
- i18n.supportedLocales = [
- "en_US.UTF-8/UTF-8"
- "C.UTF-8/UTF-8"
- "en_IL/UTF-8"
- ];
-
- # Enable the X11 windowing system.
- # You can disable this if you're only using the Wayland session.
- services.xserver.enable = true;
-
- # Enable the KDE Plasma Desktop Environment.
- services.displayManager.sddm.enable = true;
- services.desktopManager.plasma6.enable = true;
-
- # Configure keymap in X11
- services.xserver.xkb = {
- layout = "us";
- variant = "";
- };
-
- # Enable CUPS to print documents.
- services.printing.enable = false;
-
- # Enable sound with pipewire.
- hardware.pulseaudio.enable = false;
- security.rtkit.enable = true;
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- # If you want to use JACK applications, uncomment this
- #jack.enable = true;
-
- # use the example session manager (no others are packaged yet so this is enabled by default,
- # no need to redefine it in your config for now)
- #media-session.enable = true;
- };
-
- # Enable touchpad support (enabled default in most desktopManager).
- # services.xserver.libinput.enable = true;
-
- # Allow sudo without a password if in "wheel" group.
- security.sudo.wheelNeedsPassword = false;
-
- # Define a user account. Don't forget to set a password with ‘passwd’.
- users.users.kyren = {
- isNormalUser = true;
- description = "Kyren";
- extraGroups = [ "networkmanager" "wheel" ];
- shell = pkgs.zsh;
- };
-
- home-manager = {
- extraSpecialArgs = { inherit inputs pkgs; };
- useUserPackages = true;
- useGlobalPkgs = true;
- users = {
- "kyren" = import ./home.nix;
- };
- };
-
- nixpkgs.config.allowUnfree = true;
-
- # Install firefox.
- programs.firefox.enable = true;
-
- programs.zsh.enable = true;
-
- # Install Steam
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
- dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
- localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
- };
-
- # Install Docker (without using root access)
- # virtualisation.docker.enable = true;
- virtualisation.docker.rootless = {
- enable = true;
- setSocketVariable = true;
- };
-
- # List packages installed in system profile. Use for apps that need sudo.
- environment.systemPackages = with pkgs; [
- glib-networking
- openssl
- clang
- clang-tools
- inputs.ghostty.packages.x86_64-linux.default
- glibcLocales
- ];
-
- # Enable dynamic linking of applications that are not in nixpkgs (for vim LSPs for example).
- programs.nix-ld.enable = true;
- programs.nix-ld.libraries = with pkgs; [
- stdenv.cc.cc
- ];
-
- # 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;
- # };
-
- # Install Flatpak and Flathub
- services.flatpak.enable = true;
-
- # Enable openssh
- services.openssh.enable = true;
-
- # Mouse config service (used with piper)
- services.ratbagd.enable = true;
-
- # battery levels notifier
- systemd.timers."battery-notifier" = {
- wantedBy = [ "timers.target" ];
- timerConfig = {
- OnBootSec = "3m";
- OnUnitActiveSec = "3m";
- Unit = "battery-notifier.service";
- };
- };
-
- systemd.services."battery-notifier" = {
- script = "$HOME/scripts/battery_notifier.sh";
- serviceConfig = {
- Type = "oneshot";
- User = "kyren";
- };
- };
-
- systemd.timers."git-auto-sync" = {
- wantedBy = [ "timers.target" ];
- timerConfig = {
- OnBootSec = "5m";
- OnUnitActiveSec = "5m";
- Unit = "git-auto-sync.service";
- };
- };
-
- systemd.services."git-auto-sync" = {
- script = "$HOME/scripts/git-auto-sync.sh";
- path = [
- pkgs.git
- pkgs.gh
- pkgs.keychain
- pkgs.openssh
- ];
- serviceConfig = {
- Type = "oneshot";
- User = "kyren";
- };
- };
-
- # Enable KVM/QEMU virtualization
- programs.virt-manager.enable = true;
- users.groups.libvirtd.members = ["kyren"];
- virtualisation.libvirtd.enable = true;
- virtualisation.spiceUSBRedirection.enable = true;
-
- # Open ports in the firewall.
- # networking.firewall.allowedTCPPorts = [ ... ];
- # networking.firewall.allowedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
- # networking.firewall.enable = false;
-
- # 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?
-
-}
diff --git a/hosts/laptop-nixos/hardware-configuration.nix b/hosts/laptop-nixos/hardware-configuration.nix
deleted file mode 100644
index ac755f7..0000000
--- a/hosts/laptop-nixos/hardware-configuration.nix
+++ /dev/null
@@ -1,41 +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 = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-amd" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" =
- { device = "/dev/disk/by-uuid/07da3892-5b26-43d5-9e41-dbab9f4a8067";
- fsType = "ext4";
- };
-
- fileSystems."/boot" =
- { device = "/dev/disk/by-uuid/6051-DAFB";
- fsType = "vfat";
- options = [ "fmask=0077" "dmask=0077" ];
- };
-
- swapDevices = [ {
- device = "/var/lib/swapfile";
- size = 16*1024;
- } ];
-
- # 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.wlo1.useDHCP = lib.mkDefault true;
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
diff --git a/hosts/laptop-nixos/home.nix b/hosts/laptop-nixos/home.nix
deleted file mode 100644
index 6707ae1..0000000
--- a/hosts/laptop-nixos/home.nix
+++ /dev/null
@@ -1,124 +0,0 @@
-{ config, pkgs, inputs, ... }: {
- home.username = "kyren";
- home.homeDirectory = "/home/kyren";
-
- # This value determines the Home Manager release that your configuration is
- # compatible with. This helps avoid breakage when a new Home Manager release
- # introduces backwards incompatible changes.
- #
- # You should not change this value, even if you update Home Manager. If you do
- # want to update the value, then make sure to first check the Home Manager
- # release notes.
- home.stateVersion = "24.05"; # Please read the comment before changing.
-
- home.packages = with pkgs; [
- (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
- keepassxc
- discord
- git
- gh
- delta
- nh
- stow
- eza
- oh-my-posh
- gcc
- gnumake
- neovim
- fzf
- zoxide
- tmux
- bc
- keychain
- bat
- sqlite
- fd
- ripgrep
- wakatime-cli
- fastfetch
- btop
- protonvpn-gui
- unzip
- go
- pnpm
- nodejs_23
- (python312.withPackages (pypkgs: [
- pypkgs.matplotlib
- pypkgs.pandas
- ]))
- watchexec
- golangci-lint
- libnotify
- wl-clipboard
- whatsie
- libratbag
- piper
- goose
- sqlc
- jetbrains.idea-community
- jdk
- maven
- gradle
- kdePackages.filelight
- kotlin
- (minecraft.overrideAttrs (finalAttrs: previousAttrs: {
- meta.lib.broken = false;
- }))
- rustup
- tokei
- graphviz
- kdePackages.kmines # Minesweeper for fun lol
- kdePackages.kpat # Solitaire
- # btw missing the card/brick thing with weird symbols, not sure what that game was called
- gimp
- kdePackages.korganizer
- kdePackages.kaddressbook
- gitleaks
- rar
- gomodifytags
- sops
- dig
- syncthingtray
- libreoffice
- ];
-
- # For nixd LSP to recognize what nixpkgs version I use
- nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
-
- # Home Manager is pretty good at managing dotfiles. The primary way to manage
- # plain files is through 'home.file'.
- home.file = {
- ".jdks/openjdk17".source = pkgs.openjdk17;
- # # Building this configuration will create a copy of 'dotfiles/screenrc' in
- # # the Nix store. Activating the configuration will then make '~/.screenrc' a
- # # symlink to the Nix store copy.
- # ".screenrc".source = dotfiles/screenrc;
-
- # # You can also set the file content immediately.
- # ".gradle/gradle.properties".text = ''
- # org.gradle.console=verbose
- # org.gradle.daemon.idletimeout=3600000
- # '';
- };
-
- home.sessionPath = [
- "$HOME/.local/bin"
- ];
-
- xdg.desktopEntries = {
- "com.ktechpit.whatsie" = {
- name = "WhatsApp";
- genericName = "Watsie, unofficial WhatsApp client";
- exec = "whatsie %U";
- terminal = false;
- icon = "com.github.eneshecan.WhatsAppForLinux";
- categories = [ "Application" "Network" "WebBrowser" ];
- settings = {
- Keywords = "chat;im;messaging;messenger;sms;whatsapp;whatsapp-desktop;whatsie;";
- };
- };
- };
-
- # Let Home Manager install and manage itself.
- programs.home-manager.enable = true;
-}