nixos/scrappy/modules/niri/niri_conf.nix

184 lines
5.4 KiB
Nix

{ inputs, lib, config, pkgs, userName, ... }:
let
unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; };
in
{
options.niriwm = {
enable = lib.mkEnableOption "Enable niri window manager.";
useNonFree = lib.mkOption {
default = false;
example = true;
description = "Whether to enable non-free software in the niri config";
};
systemPackages = lib.mkOption {
default = [];
description = "Add any additional packages desired. Merged with sway defaults.";
};
};
###
## Configuration
###
config = lib.mkIf config.niriwm.enable {
#programs.dconf.enable = true;
#programs.sway.enable = true;
#programs.sway.wrapperFeatures.gtk = true;
nixpkgs.config.allowUnfree = config.niriwm.useNonFree;
###
## XDG portal setup
###
xdg.portal = {
config = {
common = {
default = [
"wlr"
];
};
};
extraPortals = with pkgs; [
# xdg-desktop-portal-kde
xdg-desktop-portal-gnome
];
#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
libnotify
mako
man-pages
man-pages-posix
ncspot
networkmanagerapplet
#unstable.niri
pavucontrol
slurp
syncthingtray
swaylock
#swayidle
#swaybg
# swww
#tailscale-systray
wl-clipboard
waybar
wdisplays
wofi
xdg-utils
zsh
lxqt.lxqt-policykit
# Fonts
]
config.niriwm.systemPackages
];
environment.variables.QT_STYLE_OVERRIDE = "kvantum";
# adds additional man pages
documentation.dev.enable = true;
# 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.swaywm.installGaming;
#programs.gamemode.enable = true;
#programs.adb.enable = true;
#programs.kdeconnect.enable = true;
# service file to start the sshAgent
#programs.ssh.startAgent = true;
###
## Services
###
virtualisation.docker.enable = true;
services.blueman.enable = true;
#services.flatpak.enable = true;
services.gvfs.enable = true; # thunar mount, trash, etc
services.tumbler.enable = true; # thunar thumbnails
services.openssh.enable = true;
services.dbus.enable = true;
#services.syncthing.enable = true;
services.gnome.gnome-keyring.enable = true;
#services.usbmuxd.enable = true;
#services.tailscale = {
# enable = true;
# openFirewall = true;
#};
# For betaflight configurator
#services.udev.extraRules = ''
# DFU (Internal bootloader for STM32 and AT32 MCUs)
# SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
# SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
#'';
# For yubioath desktop
services.pcscd.enable = true;
# Audio
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
sound.enable = false;
###
## Misc
###
# Necessary for home-manager sway setup
security.polkit.enable = true;
#services.greetd = {
# enable = true;
# settings = rec {
# initial_session = {
# command = "${pkgs.sway}/bin/sway";
# user = "nate";
# };
# default_session = initial_session;
# };
#};
# services.xserver.videoDrivers = [ "amdgpu" ];
# Enable HIP
#systemd.tmpfiles.rules = [
# "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
#];
hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
#hardware.opengl = {
# Mesa
# enable = true;
# Vulkan
# driSupport = true;
# Rocm support and vulkan drivers
# extraPackages = with pkgs; [
# rocmPackages.clr.icd
# ];
#};
};
}