mirror of
https://github.com/nmasur/dotfiles
synced 2025-07-06 02:40:14 +00:00
initial refactoring
This commit is contained in:
96
platforms/nixos/modules/nmasur/profiles/gui.nix
Normal file
96
platforms/nixos/modules/nmasur/profiles/gui.nix
Normal file
@ -0,0 +1,96 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.profiles.gui;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.profiles.gui.enable = lib.mkEnableOption "GUI machine";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Mouse customization
|
||||
services.ratbagd.enable = lib.mkDefault true;
|
||||
|
||||
environment.systemPackages = lib.mkDefault [
|
||||
pkgs.libratbag # Mouse adjustments
|
||||
pkgs.piper # Mouse adjustments GUI
|
||||
pkgs.ddcutil # Monitor brightness control
|
||||
];
|
||||
|
||||
services.libinput.mouse = {
|
||||
# Disable mouse acceleration
|
||||
accelProfile = lib.mkDefault "flat";
|
||||
accelSpeed = lib.mkDefault "1.15";
|
||||
};
|
||||
|
||||
# Enable touchpad support
|
||||
services.libinput.enable = true;
|
||||
|
||||
services.xserver = {
|
||||
|
||||
xkb.layout = lib.mkDefault "us";
|
||||
|
||||
# Keyboard responsiveness
|
||||
autoRepeatDelay = lib.mkDefault 250;
|
||||
autoRepeatInterval = lib.mkDefault 40;
|
||||
|
||||
windowManager = {
|
||||
i3 = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# Detect monitors (brightness) for ddcutil
|
||||
hardware.i2c.enable = lib.mkDefault true;
|
||||
|
||||
# Grant main user access to external monitors
|
||||
users.users.${config.user}.extraGroups = lib.mkDefault [ "i2c" ];
|
||||
|
||||
services.xserver.displayManager = {
|
||||
|
||||
# Put the login screen on the left monitor
|
||||
lightdm.greeters.gtk.extraConfig = lib.mkDefault ''
|
||||
active-monitor=0
|
||||
'';
|
||||
|
||||
# Set up screen position and rotation
|
||||
setupCommands = lib.mkDefault ''
|
||||
${pkgs.xorg.xrandr}/bin/xrandr --output DisplayPort-1 \
|
||||
--primary \
|
||||
--rotate normal \
|
||||
--mode 2560x1440 \
|
||||
--rate 165 \
|
||||
--output DisplayPort-2 \
|
||||
--right-of DisplayPort-1 \
|
||||
--rotate left \
|
||||
--output DVI-0 --off \
|
||||
--output DVI-1 --off \
|
||||
|| echo "xrandr failed"
|
||||
'';
|
||||
};
|
||||
|
||||
# Required for setting GTK theme (for preferred-color-scheme in browser)
|
||||
services.dbus.packages = [ pkgs.dconf ];
|
||||
programs.dconf.enable = true;
|
||||
|
||||
# Make the login screen dark
|
||||
services.xserver.displayManager.lightdm.greeters.gtk.theme = {
|
||||
name = config.gtk.theme.name;
|
||||
package = config.gtk.theme.package;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
GTK_THEME = config.gtk.theme.name;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user