diff options
Diffstat (limited to 'nixos/flake/system/desktop.nix.org')
-rw-r--r-- | nixos/flake/system/desktop.nix.org | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/nixos/flake/system/desktop.nix.org b/nixos/flake/system/desktop.nix.org new file mode 100644 index 0000000..eef6eef --- /dev/null +++ b/nixos/flake/system/desktop.nix.org @@ -0,0 +1,116 @@ +#+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 |