116 lines
3.1 KiB
Org Mode
116 lines
3.1 KiB
Org Mode
#+title: Desktop System Configuration
|
|
|
|
Open the desktop configuration.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
#+end_src
|
|
|
|
Allow unfree packages on this system.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
nixpkgs.config.allowUnfree = true;
|
|
#+end_src
|
|
|
|
Install necessary packages for the desktop.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
environment.systemPackages = with pkgs; [
|
|
dolphin
|
|
firefox
|
|
git
|
|
greetd.tuigreet
|
|
kitty
|
|
gnumake
|
|
neovim
|
|
python3
|
|
wget
|
|
];
|
|
#+end_src
|
|
|
|
Install Steam.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
dedicatedServer.openFirewall = true;
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
};
|
|
#+end_src
|
|
|
|
Use Neovim as my default editor.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
environment.variables.EDITOR = "nvim";
|
|
#+end_src
|
|
|
|
Enable GPG agent globally.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
programs.gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
};
|
|
#+end_src
|
|
|
|
Install =zsh= and set up completions.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
programs.zsh.enable = true;
|
|
environment.pathsToLink = [ "/share/zsh" ];
|
|
#+end_src
|
|
|
|
Use the =us= keyboard layout.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
services.xserver.xkb.layout = "us";
|
|
#+end_src
|
|
|
|
Install Hyprland as a window manager.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
services.xserver.enable = true;
|
|
xdg.portal.enable = true;
|
|
programs.hyprland.enable = true;
|
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
#+end_src
|
|
|
|
Enable =pam= support for Hyprlock.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
security.pam.services.hyprlock = {};
|
|
#+end_src
|
|
|
|
Enable =greetd= with =tuigreet= as my login manager.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions --cmd \"dbus-run-session Hyprland\"";
|
|
user = "greeter";
|
|
};
|
|
};
|
|
};
|
|
systemd.services.greetd.serviceConfig = {
|
|
Type = "idle";
|
|
StandardInput = "tty";
|
|
StanardOutput = "tty";
|
|
StandardError = "journal";
|
|
TTYReset = true;
|
|
TTYVHangup = true;
|
|
TTYVTDisallocate = true;
|
|
};
|
|
#+end_src
|
|
|
|
Enable PipeWire.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
services.pipewire = {
|
|
enable = true;
|
|
pulse.enable = true;
|
|
};
|
|
#+end_src
|
|
|
|
Enable GNOME Keyring.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
services.gnome.gnome-keyring.enable = true;
|
|
security.pam.services.greetd.enableGnomeKeyring = true;
|
|
#+end_src
|
|
|
|
Close the desktop configuration.
|
|
#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes
|
|
}
|
|
#+end_src
|