From ad08679bf261ecb8af553b4c01e053978d996ab7 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Thu, 26 Dec 2024 20:03:43 +0000 Subject: [PATCH] lemp11: use GNOME and don't hibernate when the lid ...is closed but there is external power --- nix/hosts/lemp11/configuration.nix | 3 + nix/hosts/t490/default.nix | 1 + nix/modules/nixos/i3.nix | 236 +++++++++++++++-------------- 3 files changed, 126 insertions(+), 114 deletions(-) diff --git a/nix/hosts/lemp11/configuration.nix b/nix/hosts/lemp11/configuration.nix index 5ebb4bf..a7be113 100644 --- a/nix/hosts/lemp11/configuration.nix +++ b/nix/hosts/lemp11/configuration.nix @@ -112,6 +112,9 @@ layout = "gb"; variant = ""; }; + + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; }; # Configure console keymap diff --git a/nix/hosts/t490/default.nix b/nix/hosts/t490/default.nix index 786716b..364150d 100644 --- a/nix/hosts/t490/default.nix +++ b/nix/hosts/t490/default.nix @@ -8,6 +8,7 @@ features = { desktop = { gaming.enable = true; + i3.enable = true; peek.enable = true; }; }; diff --git a/nix/modules/nixos/i3.nix b/nix/modules/nixos/i3.nix index 2c7856b..19aba38 100644 --- a/nix/modules/nixos/i3.nix +++ b/nix/modules/nixos/i3.nix @@ -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"; + }; }; }; }