summaryrefslogtreecommitdiff
path: root/hosts/kyren-laptop
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-04-20 01:34:33 +0300
committerKyren223 <Kyren223@proton.me>2025-04-20 01:34:33 +0300
commit286340b6f12e438616c01018ec8882e46f63f846 (patch)
tree4deea2baf11520cc5d56bd1a9ff2b00ff6e196df /hosts/kyren-laptop
parent0c9444b0ce0fe243d857a00ac7f646c3adac0aa2 (diff)
Refactored nix config to make it slightly more modular
Diffstat (limited to 'hosts/kyren-laptop')
-rw-r--r--hosts/kyren-laptop/configuration.nix230
-rw-r--r--hosts/kyren-laptop/hardware-configuration.nix41
-rw-r--r--hosts/kyren-laptop/home.nix146
3 files changed, 0 insertions, 417 deletions
diff --git a/hosts/kyren-laptop/configuration.nix b/hosts/kyren-laptop/configuration.nix
deleted file mode 100644
index 2e86d95..0000000
--- a/hosts/kyren-laptop/configuration.nix
+++ /dev/null
@@ -1,230 +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 = "kyren-laptop";
- # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
-
- nix.settings.experimental-features = [ "nix-command" "flakes" ];
-
- # Optimize nix store automatically
- nix.settings.auto-optimise-store=true;
-
- # 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.
- services.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
- ghostty
- 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"; };
- };
-
- systemd.timers."k-sleep-tracker" = {
- wantedBy = [ "timers.target" ];
- timerConfig = {
- OnBootSec = "1m";
- OnUnitActiveSec = "1m";
- Unit = "k-sleep-tracker.service";
- };
- };
-
- systemd.services."k-sleep-tracker" = {
- script = "$HOME/projects/k/bin/k tracker sleep";
- 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;
-
- services.syncthing.enable = true;
- services.syncthing = {
- group = "users";
- user = "kyren";
- dataDir = "/home/kyren";
- configDir = "/home/kyren/.config/syncthing";
- };
- systemd.tmpfiles.rules = [
- "d /home/kyren/.config/syncthing 0700 kyren users"
- ];
-
- services.cloudflare-warp.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/kyren-laptop/hardware-configuration.nix b/hosts/kyren-laptop/hardware-configuration.nix
deleted file mode 100644
index 5dbd889..0000000
--- a/hosts/kyren-laptop/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/4E6C-E7AD";
- 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/kyren-laptop/home.nix b/hosts/kyren-laptop/home.nix
deleted file mode 100644
index dd96a09..0000000
--- a/hosts/kyren-laptop/home.nix
+++ /dev/null
@@ -1,146 +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; [
- nerd-fonts.jetbrains-mono
- keepassxc
- git
- gh
- delta
- 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
- pypkgs.pygithub
- ]))
- watchexec
- golangci-lint
- libnotify
- wl-clipboard
- whatsie
- libratbag # Mouse software (GHUB replacement)
- piper
- goose
- sqlc
- jetbrains.idea-community
- jdk
- maven
- gradle
- kdePackages.filelight
- kotlin
- (minecraft.overrideAttrs (finalAttrs: previousAttrs: {
- meta.lib.broken = false;
- }))
- rustup
- tokei
- 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
- vesktop
- nasm
- activitywatch
- awatcher
- albert
- gdb
- asm-lsp
- minisign
- libisoburn
- ncdu
- imagemagick
- xxd
- gnome-clocks
- duf
- tldr
- bottom
- hyperfine
- nh
- wget
- mold
- aseprite
- prismlauncher
- cloudflare-warp
- drawio
- ];
-
- # 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;
-}