feat: add host IROH, improve hyprland config, add ausweisapp

This commit is contained in:
Jacob Bachmann 2024-03-25 15:51:13 +01:00
parent 7c5af81e75
commit 1e8844c6a3
Signed by: bchmnn
GPG key ID: 732A612DAD28067D
18 changed files with 554 additions and 73 deletions

6
modules/ausweisapp.nix Normal file
View file

@ -0,0 +1,6 @@
{ config, lib, ... }: lib.mkIf config.bchmnn.gui.enable {
programs.ausweisapp = {
enable = true;
openFirewall = true;
};
}

View file

@ -5,10 +5,13 @@
gui = {
enable = mkEnableOption "gui";
greeter = {
enable = mkEnableOption "greeter";
};
flavour = mkOption {
type = types.listOf types.str;
default = [ "sway" ];
example = [ "sway" "i3" "hyprland" ];
example = [ "sway" "i3" "Hyprland" ];
description = ''
The flavour (WM) for your system to use
'';
@ -51,6 +54,7 @@
imports = [
./audio.nix
./ausweisapp.nix
./bluetooth.nix
./dbus.nix
./fonts.nix

View file

@ -3,7 +3,7 @@
environment.pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw
programs.sway.enable = builtins.elem "sway" gui.flavour;
programs.hyprland.enable = builtins.elem "hyprland" gui.flavour;
programs.hyprland.enable = builtins.elem "Hyprland" gui.flavour;
services.xserver.windowManager.i3.enable = builtins.elem "i3" gui.flavour;
services.xserver = {
@ -13,17 +13,25 @@
};
};
environment.systemPackages = with pkgs; [
(writeShellScriptBin "sway-run" ''
export WLR_NO_HARDWARE_CURSORS=1
exec ${sway}/bin/sway "$@"
'')
];
environment = {
etc = {
"greetd/environments".text = ''
sway
Hyprland
'';
"greetd/environments".text = (lib.strings.concatLines gui.flavour);
"greetd/kanshi-config".text = ''
profile nomad {
output "LVDS-1" enable
}
profile iroh {
output "DP-3" enable mode 2560x1440 position 0,0
output "DP-2" enable mode 2560x1440 position 2560,0
output "DP-1" enable mode 2560x1440 position 5120,0
}
profile station {
output "LVDS-1" disable
output "Dell Inc. DELL U2515H 9X2VY5490XUL" enable mode 1920x1080 position 0,0
@ -47,10 +55,10 @@
};
services.greetd = {
enable = true;
enable = gui.greeter.enable;
settings = {
default_session = {
command = "${pkgs.sway}/bin/sway --config /etc/greetd/sway-config";
command = "sway-run --config /etc/greetd/sway-config" + lib.optionals nvidia.enable " --unsupported-gpu";
};
};
};

View file

@ -1,18 +1,11 @@
{ config, lib, pkgs, ... }: lib.mkIf config.bchmnn.nvidia.enable {
{ config, lib, ... }: lib.mkIf config.bchmnn.nvidia.enable {
services.xserver.videoDrivers = [ "nouveau" ];
# services.xserver.videoDrivers = [ "nvidia" ];
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
# Modesetting is needed for most Wayland compositors
modesetting.enable = true;
# Use the open source version of the kernel module
# Only available on driver 515.43.04+
open = false;
# Enable the nvidia settings menu
powerManagement.enable = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
};
}

View file

@ -19,6 +19,7 @@
inotify-tools # a C library and a set of command-line programs providing a simple interface to inotify
ghostscript # postscript interpreter (mainline version)
ventoy-full # bootable usb solution
fio # flexible io tester - an io benchmark tool
] ++ lib.optionals (devenv.enable) [
# languages
gcc13
@ -44,5 +45,7 @@
] ++ lib.optionals (gui.enable && lib.elem "sway" gui.flavour) [
qt5.qtwayland
qt6.qtwayland
] ++ lib.optionals (nvidia.enable) [
nvtop
];
}

View file

@ -2,13 +2,9 @@
xdg.portal = {
enable = true;
wlr.enable = true;
# gtk portal needed to make gtk apps happy
# upper has been replaced by following
config.common.default = "*";
extraPortals = with lib; with config.bchmnn; optionals (elem "sway" gui.flavour) [
extraPortals = with lib; with config.bchmnn; optionals (elem "sway" gui.flavour || elem "Hyprland" gui.flavour) [
pkgs.xdg-desktop-portal-wlr
] ++ optionals (elem "hyprland" gui.flavour) [
pkgs.xdg-desktop-portal-hyprland
];
};
}