splitting things out for vade

This commit is contained in:
2026-03-16 19:18:26 -07:00
parent d3bc36ef59
commit 099a6e4250
7 changed files with 232 additions and 128 deletions

91
configs/desktop-light.nix Normal file
View File

@@ -0,0 +1,91 @@
# Baseline configuration for lightweight desktop systems.
# Full desktops should import desktop.nix instead, which builds on this.
{ pkgs, ... }: {
imports = [
./desktop-packages-light.nix
# ./ghostty.nix # doesn't work yet
];
services.displayManager.gdm.enable = true;
services.displayManager.gdm.wayland = false;
services.displayManager.gdm.debug = true;
services.xserver.windowManager.i3.enable = true;
services.xserver.xkb = {
layout = "us";
options = "ctrl:swapcaps,compose:ralt";
};
services.displayManager.autoLogin.enable = false;
# Enable touchpad support (enabled default in most desktopManager).
services.libinput = {
enable = true;
mouse.naturalScrolling = true;
touchpad.naturalScrolling = true;
};
console.useXkbConfig = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# 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;
};
# Enable Bluetooth.
hardware.bluetooth = {
powerOnBoot = true;
settings = {
General = {
# Shows battery charge of connected devices on supported
# Bluetooth adapters. Defaults to 'false'.
Experimental = true;
# When enabled other devices can connect faster to us, however
# the tradeoff is increased power consumption. Defaults to
# 'false'.
FastConnectable = true;
};
Policy = {
# Enable all controllers when they are found. This includes
# adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
AutoEnable = true;
};
};
};
services.blueman.enable = true;
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="backlight", GROUP="video", MODE="0660"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
services.avahi = {
enable = true;
publish = {
enable = true;
};
};
systemd.services."systemd-suspend" = {
description = "System Suspend with pm-suspend";
serviceConfig = {
Type = "oneshot";
Environment = "PATH=${pkgs.pmutils}/bin";
ExecStart = [
""
"${pkgs.pmutils}/bin/pm-suspend"
];
};
};
}

View File

@@ -1,79 +1,40 @@
# Desktop-specific packages.
# Additional packages for full desktop systems.
# Imported on top of desktop-packages-light.nix.
{ pkgs, inputs, ... }:
{
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
acpitool
# adafruit-nrfutil
alire
arduino
arduino-cli
arduino-ide
arduino-mk
asciinema
bibclean
bitwarden-cli
bitwarden-desktop
bluez
brave
cmus
direnv
dmenu
elinks
erlang
emacs
feh
ffmpeg
fira-code
firefox
freeglut
ghostty
glfw
glm
gnat15
gnome-disk-utility
go-font
gnat15Packages.gpr2
gnat15Packages.gprbuild
graphviz
i3
i3lock
inkscape
python312Packages.ipython
kdePackages.ksshaskpass
inputs.kte.packages.x86_64-linux.kge
inputs.kte.packages.x86_64-linux.qt
lagrange
libGL
libGL.dev
mesa
networkmanagerapplet
nyxt
obsidian
pavucontrol
pmutils
qmk
qmk-udev-rules
rbw
rebar3
rofi
scrot
SDL2
SDL2.dev
signal-desktop
stumpwm
syncthing
veracrypt
via
vlc
xfce.thunar
xfce.thunar-volman
xfce.xfce4-power-manager
xorg.libX11
xss-lock
# jetbrains
# jetbrains-toolbox

View File

@@ -0,0 +1,45 @@
# Core desktop packages for lightweight desktop systems.
{ pkgs, inputs, ... }:
{
environment.systemPackages = with pkgs; [
acpitool
alire
asciinema
bibclean
bitwarden-cli
bitwarden-desktop
bluez
cmus
direnv
dmenu
emacs
erlang
feh
fira-code
firefox
ghostty
gnat15
gnat15Packages.gpr2
gnat15Packages.gprbuild
gnome-disk-utility
go-font
graphviz
i3
i3lock
python312Packages.ipython
networkmanagerapplet
obsidian
pavucontrol
pmutils
rebar3
rofi
scrot
syncthing
xfce.thunar
xfce.thunar-volman
xfce.xfce4-power-manager
xss-lock
];
}

View File

@@ -1,91 +1,9 @@
# Baseline configuration for all desktop-class systems (including
# laptops).
# Full desktop configuration. Builds on desktop-light.nix with
# additional packages for development, multimedia, and embedded work.
{ pkgs, ... }: {
imports = [
./desktop-packages.nix
# ./ghostty.nix # doesn't work yet
./desktop-light.nix
./desktop-packages-full.nix
];
services.displayManager.gdm.enable = true;
services.displayManager.gdm.wayland = false;
services.displayManager.gdm.debug = true;
services.xserver.windowManager.i3.enable = true;
services.xserver.xkb = {
layout = "us";
options = "ctrl:swapcaps,compose:ralt";
};
services.displayManager.autoLogin.enable = false;
# Enable touchpad support (enabled default in most desktopManager).
services.libinput = {
enable = true;
mouse.naturalScrolling = true;
touchpad.naturalScrolling = true;
};
console.useXkbConfig = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# 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;
};
# Enable Bluetooth.
hardware.bluetooth = {
powerOnBoot = true;
settings = {
General = {
# Shows battery charge of connected devices on supported
# Bluetooth adapters. Defaults to 'false'.
Experimental = true;
# When enabled other devices can connect faster to us, however
# the tradeoff is increased power consumption. Defaults to
# 'false'.
FastConnectable = true;
};
Policy = {
# Enable all controllers when they are found. This includes
# adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
AutoEnable = true;
};
};
};
services.blueman.enable = true;
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="backlight", GROUP="video", MODE="0660"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
services.avahi = {
enable = true;
publish = {
enable = true;
};
};
systemd.services."systemd-suspend" = {
description = "System Suspend with pm-suspend";
serviceConfig = {
Type = "oneshot";
Environment = "PATH=${pkgs.pmutils}/bin";
ExecStart = [
""
"${pkgs.pmutils}/bin/pm-suspend"
];
};
};
}