nixos/jaci/modules/labwc/labwc_conf.nix

155 lines
3.9 KiB
Nix
Raw Normal View History

{ lib, config, pkgs, ... }:
{
options.labwc = {
enable = lib.mkEnableOption "Enable labwc window manager.";
useNonFree = lib.mkOption {
default = false;
example = true;
description = "Whether to enable non-free software in the labwc config";
};
installGaming = lib.mkOption {
default = false;
example = true;
description = "Whether to install gaming software on the system.";
};
systemPackages = lib.mkOption {
default = [];
description = "Add any additional packages desired. Merged with labwc defaults.";
};
};
###
## Configuration
###
config = lib.mkIf config.labwc.enable {
programs.dconf.enable = true;
nixpkgs.config.allowUnfree = config.labwc.useNonFree;
# For R2ModMan
# nixpkgs.config.permittedInsecurePackages = [
# "electron-25.9.0"
# ];
###
## XDG portal setup
###
xdg.portal = {
config = {
common = {
default = [
"wlr"
];
};
};
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
wlr.enable = true;
enable = true;
};
xdg.sounds.enable = true;
###
## System Packages
###
environment.systemPackages = with pkgs; lib.lists.flatten [
[
bash
foot
git
glib # gsettings
grim
sway-contrib.grimshot
2024-01-20 12:34:12 -07:00
ghostscript
labwc
libnotify
kanshi
mako
2024-01-27 12:34:48 -07:00
spot
networkmanagerapplet
nwg-dock
nwg-drawer
nwg-look
pavucontrol
slurp
swaylock
swayidle
swww
wl-clipboard
waybar
wdisplays
wlr-randr
xdg-utils
zsh
]
config.labwc.systemPackages
# (lib.mkIf config.labwc.installGaming [
# pkgs.lutris
# ])
];
2024-01-20 12:34:12 -07:00
# environment.loginShellInit = ''
# [[ "$(tty)" == /dev/tty1 ]] && labwc
# '';
# Thunar config
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
programs.file-roller.enable = true;
programs.xfconf.enable = true;
programs.zsh.enable = true;
programs.steam.enable = config.labwc.installGaming;
# kdeconnect setup
programs.kdeconnect.enable = true;
###
## Services
###
2024-01-20 12:34:12 -07:00
# Printing
services.printing.enable = true;
services.printing.drivers = [ pkgs.brlaser ];
services.gvfs.enable = true; # thunar functionalities
2024-01-20 12:34:12 -07:00
services.openssh.enable = true;
2024-01-20 12:34:12 -07:00
services.dbus.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "${pkgs.labwc}/bin/labwc";
user = "jaci";
};
default_session = initial_session;
};
};
###
## Misc
###
sound.enable = true;
# Necessary for home-manager labwc setup
security.polkit.enable = true;
hardware.opengl = {
enable = true;
driSupport = true;
};
};
}