lemp11: use GNOME and don't hibernate when the lid

...is closed but there is external power
This commit is contained in:
Oliver Davies 2024-12-26 20:03:43 +00:00
parent 675f4c6d92
commit ad08679bf2
3 changed files with 126 additions and 114 deletions

View file

@ -112,6 +112,9 @@
layout = "gb";
variant = "";
};
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
# Configure console keymap

View file

@ -8,6 +8,7 @@
features = {
desktop = {
gaming.enable = true;
i3.enable = true;
peek.enable = true;
};
};

View file

@ -1,149 +1,157 @@
{
config,
inputs,
lib,
pkgs,
self,
username,
...
}:
with lib;
let
theme = import "${self}/nix/lib/theme" { inherit pkgs; };
modifier = "Mod4";
in
{
services = {
cron = {
enable = true;
options.features.desktop.i3.enable = mkEnableOption "Enable i3";
systemCronJobs = [
"* * * * * opdavies ${pkgs.notify-battery}/bin/notify-battery"
];
};
displayManager.defaultSession = "none+i3";
xserver = {
displayManager.lightdm.enable = true;
windowManager.i3 = {
config = mkIf config.features.desktop.i3.enable {
services = {
cron = {
enable = true;
extraPackages = with pkgs; [
i3status
i3lock
i3blocks
systemCronJobs = [
"* * * * * opdavies ${pkgs.notify-battery}/bin/notify-battery"
];
};
};
};
environment.systemPackages = with pkgs; [
acpi
libnotify
];
displayManager.defaultSession = "none+i3";
home-manager.users.${username} = {
xsession.windowManager.i3 = {
enable = true;
xserver = {
displayManager.lightdm.enable = true;
config = {
assigns = {
"7" = [ { class = "vlc"; } ];
"8" = [ { class = "0ad"; } ];
"9" = [
{ class = "Slack"; }
{ class = "discord"; }
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
i3status
i3lock
i3blocks
];
};
defaultWorkspace = "workspace number 1";
modifier = modifier;
keybindings = inputs.nixpkgs.lib.mkOptionDefault {
"${modifier}+d" = "exec rofi -show drun";
"${modifier}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox";
"${modifier}+Shift+f" = "exec ${pkgs.xfce.thunar}/bin/thunar";
# Change focus.
"${modifier}+h" = "focus left";
"${modifier}+j" = "focus down";
"${modifier}+k" = "focus up";
"${modifier}+l" = "focus right";
# Move focused window.
"${modifier}+Shift+h" = "move left";
"${modifier}+Shift+j" = "move down";
"${modifier}+Shift+k" = "move up";
"${modifier}+Shift+l" = "move right";
"${modifier}+Shift+s" = "exec ${pkgs.flameshot}/bin/flameshot gui";
"${modifier}+Shift+p" = "exec ${pkgs.autorandr}/bin/autorandr --change";
"${modifier}+Shift+y" = "exec ${pkgs.copyq}/bin/copyq toggle";
"XF86AudioRaiseVolume" = "exec pamixer -ui 2 && pamixer --get-volume";
"XF86AudioLowerVolume" = "exec pamixer -ud 2 && pamixer --get-volume";
"XF86AudioMute" = ''exec pamixer --toggle-mute && ( [ "$(pamixer --get-mute)" = "true" ] && echo 0'';
"XF86MonBrightnessDown" = "exec brightnessctl set 5%- | sed -En 's/.*(([0-9]+)%).*/1/p'";
"XF86MonBrightnessUp" = "exec brightnessctl set +5% | sed -En 's/.*(([0-9]+)%).*/1/p'";
};
terminal = "alacritty";
};
extraConfig = ''
set $laptop eDP-1
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
exec_always --no-startup-id caffeine
exec_always --no-startup-id ${pkgs.autorandr}/bin/autorandr --change
smart_borders on
smart_gaps on
for_window [class="copyq"] floating enable
for_window [class="zoom"] floating enable
# xprop | grep -i class
'';
config = {
bars = [
{
position = "bottom";
statusCommand = "${pkgs.i3status}/bin/i3status";
trayOutput = "none";
}
];
gaps = {
smartBorders = "on";
smartGaps = true;
};
};
};
programs.i3status = {
enable = true;
environment.systemPackages = with pkgs; [
acpi
libnotify
];
general.colors = false;
home-manager.users.${username} = {
xsession.windowManager.i3 = {
enable = true;
modules = {
"battery all".settings.last_full_capacity = true;
config = {
assigns = {
"7" = [ { class = "vlc"; } ];
"8" = [ { class = "0ad"; } ];
"9" = [
{ class = "Slack"; }
{ class = "discord"; }
];
};
"tztime local".settings.format = "%d-%m-%Y %H:%M:%S";
cpu_temperature.enable = false;
ipv6.enable = false;
load.enable = false;
defaultWorkspace = "workspace number 1";
modifier = modifier;
keybindings = inputs.nixpkgs.lib.mkOptionDefault {
"${modifier}+d" = "exec rofi -show drun";
"${modifier}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox";
"${modifier}+Shift+f" = "exec ${pkgs.xfce.thunar}/bin/thunar";
# Change focus.
"${modifier}+h" = "focus left";
"${modifier}+j" = "focus down";
"${modifier}+k" = "focus up";
"${modifier}+l" = "focus right";
# Move focused window.
"${modifier}+Shift+h" = "move left";
"${modifier}+Shift+j" = "move down";
"${modifier}+Shift+k" = "move up";
"${modifier}+Shift+l" = "move right";
"${modifier}+Shift+s" = "exec ${pkgs.flameshot}/bin/flameshot gui";
"${modifier}+Shift+p" = "exec ${pkgs.autorandr}/bin/autorandr --change";
"${modifier}+Shift+y" = "exec ${pkgs.copyq}/bin/copyq toggle";
"XF86AudioRaiseVolume" = "exec pamixer -ui 2 && pamixer --get-volume";
"XF86AudioLowerVolume" = "exec pamixer -ud 2 && pamixer --get-volume";
"XF86AudioMute" = ''exec pamixer --toggle-mute && ( [ "$(pamixer --get-mute)" = "true" ] && echo 0'';
"XF86MonBrightnessDown" = "exec brightnessctl set 5%- | sed -En 's/.*(([0-9]+)%).*/1/p'";
"XF86MonBrightnessUp" = "exec brightnessctl set +5% | sed -En 's/.*(([0-9]+)%).*/1/p'";
};
terminal = "alacritty";
};
extraConfig = ''
set $laptop eDP-1
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
exec_always --no-startup-id caffeine
exec_always --no-startup-id ${pkgs.autorandr}/bin/autorandr --change
smart_borders on
smart_gaps on
for_window [class="copyq"] floating enable
for_window [class="zoom"] floating enable
# xprop | grep -i class
'';
config = {
bars = [
{
position = "bottom";
statusCommand = "${pkgs.i3status}/bin/i3status";
trayOutput = "none";
}
];
gaps = {
smartBorders = "on";
smartGaps = true;
};
};
};
};
services.dunst = {
enable = true;
programs.i3status = {
enable = true;
settings.global.follow = "keyboard";
general.colors = false;
modules = {
"battery all".settings.last_full_capacity = true;
"tztime local".settings.format = "%d-%m-%Y %H:%M:%S";
cpu_temperature.enable = false;
ipv6.enable = false;
load.enable = false;
};
};
services.dunst = {
enable = true;
settings.global.follow = "keyboard";
};
};
};
}