summary refs log tree commit diff
path: root/host/Rory-portable/configuration.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/Rory-portable/configuration.nix')
-rw-r--r--host/Rory-portable/configuration.nix277
1 files changed, 277 insertions, 0 deletions
diff --git a/host/Rory-portable/configuration.nix b/host/Rory-portable/configuration.nix
new file mode 100644
index 0000000..579a655
--- /dev/null
+++ b/host/Rory-portable/configuration.nix
@@ -0,0 +1,277 @@
+{ config, pkgs, lib, nhekoSrc, mtxclientSrc, ... }:
+
+{
+  imports =
+    [
+      # base imports
+      ../../modules/base-client.nix
+      ../../modules/packages/vim.nix
+#      ../../modules/environments/home.nix
+      #../../modules/software-templates/profilers.nix
+      #./postgres.nix
+      #./nginx.nix
+
+      # hardware-specific imports
+      #./optional/hardware-specific/amd.nix
+
+      #./printing.nix
+      ./ollama.nix
+    ];
+
+  boot = {
+    kernelPackages = pkgs.linuxPackages_latest;
+    loader = {
+      grub = {
+        enable = true;
+        device = "nodev"; # nodev for EFI only
+        # EFI
+        efiSupport = true;
+        efiInstallAsRemovable = true;
+      };
+    };
+    #readOnlyNixStore = false;
+  };
+
+  services.udev.extraRules = ''
+    #SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="users"
+    # SDP protocol
+    KERNEL=="hidraw*", ATTRS{idVendor}=="1fc9", MODE="0666"
+    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1fc9", MODE="0666"
+    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", MODE="0666"
+    # Flashloader
+    KERNEL=="hidraw*", ATTRS{idVendor}=="15a2", MODE="0666"
+    # Controller
+    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="18d1", MODE="0666"
+    SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="9400", MODE="0660", TAG+="uaccess"
+  '';
+
+  networking = {
+    hostName = "Rory-portable";
+    networkmanager.enable = true;
+    wireless.enable = false;
+    firewall = {
+      enable = false;
+      # allowedTCPPorts = [ ... ];
+      # allowedUDPPorts = [ ... ];
+    };
+
+    #interfaces.enp34s0.ipv4.addresses = [ { 
+    #  address = "192.168.0.3";
+    #  prefixLength = 24;
+    #} ];
+#
+    #defaultGateway = "192.168.0.1";
+    # useDHCP = true;
+  };
+
+  time.timeZone = "Europe/Brussels";
+  i18n.defaultLocale = "en_US.UTF-8";
+
+  services = {
+    xserver = {
+      enable = true;
+      updateDbusEnvironment = true;
+      #videoDrivers = ["amdgpu"]; #"nvidia"
+      #desktopManager.gnome.enable = true;
+      libinput.enable = true;
+      layout = "us";
+      windowManager.i3.enable = true;
+      windowManager.i3.extraSessionCommands = ''
+        # output from arandr:
+        #xrandr --output DP-1 --mode 1920x1080 --pos 3840x1080 --rotate normal --output HDMI-1 --mode 3840x2160 --pos 0x0 --rotate normal --output HDMI-2 --off --output DP-2 --off
+        #xrandr --output HDMI-1 --mode 3840x2160 --pos 0x0 --rotate normal --primary --output DP-1 --mode 1920x1080 --pos 3840x1080 --rotate normal --output HDMI-2 --off --output DP-2 --off
+        ${pkgs.polybarFull}/bin/polybar &
+        ${pkgs.dunst}/bin/dunst &
+        ${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${../../modules/users/Rory/wallpaper.webp}
+      '';
+    };
+    picom.enable = true;
+    picom.vSync = false;
+    picom.backend = "glx";
+    
+    openssh = {
+      enable = true;
+      extraConfig = ''
+        MaxAuthTries 32
+        '';
+    };	
+    pipewire = {
+      enable = true;
+      audio.enable = true;
+      pulse.enable = true;
+      wireplumber.enable = true;
+      jack.enable = true;
+      alsa.enable = true;
+    };
+  };
+
+  sound.enable = true;
+
+  users.users = {
+    Rory = {
+      isNormalUser = true;
+      extraGroups = [ "wheel" ];
+      packages = with pkgs; [
+        #gimp-with-plugins
+
+        #xterm
+        #gnomeExtensions.vitals
+        #gnomeExtensions.runcat
+      ];
+      initialPassword = "password";
+    };
+  };
+
+  environment.systemPackages = with pkgs; [
+    libreoffice
+    qt6.qtwayland
+
+    gnome-console
+    feh
+    easyeffects
+    kitty
+    youtube-music
+
+    # - IDEs
+    #jetbrains-toolbox
+    jetbrains.rider
+    #jetbrains.webstorm
+    #jetbrains.clion
+    github-copilot-intellij-agent
+    
+    
+    dbeaver-bin
+    #insomnia
+    vscode
+
+    # - Utilities
+    inkscape-with-extensions
+    gimp #-with-plugins
+
+    # - Languages
+    #dotnet-sdk_7
+    #dotnet-sdk_8
+    (callPackage ../../modules/packages/dotnet-pack.nix { inherit pkgs; })
+
+    #games
+    osu-lazer-bin
+    #steam
+    steam-run
+
+    # extra packages
+    dmenu
+
+    cinnamon.nemo
+    gnome.file-roller
+    firefox-bin
+    ungoogled-chromium #needed for Rider in order to debug WASM
+
+    peek
+
+    unrar-wrapper
+
+    #(schildichat-desktop.override { electron = electron; })
+    (callPackage ../../modules/packages/nheko-git.nix { inherit nhekoSrc; inherit mtxclientSrc; voipSupport = false; })
+    #(callPackage ../../modules/packages/mc/server/modpack/curseforge/techopolis-2/5.4.nix { })
+
+    #vesktop
+    virt-viewer
+
+    # (dwarf-fortress-packages.dwarf-fortress-full.override { enableStoneSense = true; enableFPS = true; theme = dwarf-fortress-packages.themes.spacefox; })
+  ];
+
+  programs.steam.enable = true;
+  programs.steam.gamescopeSession.enable = true;
+
+  #environment.gnome.excludePackages = [
+  #  pkgs.orca
+  #  pkgs.gnome-tour
+  #  pkgs.gnome-user-docs
+  #];
+  xdg = {
+    portal = {
+      
+      enable = true;
+      extraPortals = with pkgs; [
+        #xdg-desktop-portal-gtk
+        xdg-desktop-portal-xapp
+        (callPackage ../../modules/packages/xdg-desktop-portal-gtk.nix { })
+      ];
+      config = {
+        common = {
+          default = [ "gtk" ];
+        };
+      };
+      xdgOpenUsePortal = true;
+      gtkUsePortal = true;
+
+    };
+    #sounds.enable = true;
+    #mime.enable = true;
+    #menus.enable = true;
+    #icons.enable = true;
+    #autostart.enable = true;
+  };
+  fonts = {
+    fonts = with pkgs; [
+      (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
+      noto-fonts-monochrome-emoji
+    ];
+    fontconfig.defaultFonts.monospace = with pkgs; [
+      "JetBrainsMonoNL Nerd Font,JetBrainsMonoNL NF:style=Regular"
+    ];
+    fontconfig.defaultFonts.sansSerif = with pkgs; [
+      "JetBrainsMonoNL Nerd Font,JetBrainsMonoNL NF:style=Regular"
+    ];
+    fontconfig.defaultFonts.serif = with pkgs; [
+      "JetBrainsMonoNL Nerd Font,JetBrainsMonoNL NF:style=Regular"
+    ];
+    fontconfig.defaultFonts.emoji = with pkgs; [
+      "freefont"
+    ];
+    enableDefaultPackages = lib.mkForce false;
+    enableGhostscriptFonts = lib.mkForce false;
+  };
+  nix = {
+    settings = {
+      experimental-features = [ "nix-command" "flakes" ];
+      auto-optimise-store = true;
+    };
+  };
+  nixpkgs = {
+    config = {
+      allowUnfree = true;
+      permittedInsecurePackages = [
+        "electron-25.9.0"
+      ];
+    };
+
+  };
+  security = {
+    polkit.enable = true;
+    sudo.wheelNeedsPassword = false;
+  };
+
+  hardware = {
+    pulseaudio.enable = false;
+  };
+  programs.dconf.enable = true;
+  environment.etc."resolv.conf".text = ''
+    nameserver 8.8.8.8
+    nameserver 8.4.4.8
+    nameserver 1.1.1.1
+    nameserver 1.0.0.1
+    '';
+
+    #networking.wireguard.interfaces = {
+    #  wg-KP-Ran = {
+
+      #};
+   # };
+
+  virtualisation.libvirtd.enable = true;
+  programs.virt-manager.enable = true;
+
+  system.stateVersion = "22.11"; # DO NOT EDIT!
+}
+