fix laptop setup

- adds auto-mounting of external drives with udiskie
- disables suspend, replaces it with hibernation
- disables alt+arrow keys switching between tty sessions
- other misc changes to rice + configs
This commit is contained in:
greyweather committed 2026-07-11 11:57:35 +01:00
1 parent 988e5664ef
commit acc0712fcb
6 files changed
+107 -37

No files matched your search

+11 -4
View File
@@ -70,16 +70,19 @@ binds {
Mod+B { spawn "floorp"; } Mod+B { spawn "floorp"; }
Mod+C { spawn "gnome-calculator"; } Mod+C { spawn "gnome-calculator"; }
Mod+D { spawn "noctalia" "msg" "panel-toggle" "launcher"; } Mod+D { spawn "noctalia" "msg" "panel-toggle" "launcher"; }
Mod+E { spawn "nautilus"; } Mod+E { spawn "nautilus" "-w"; }
Mod+Return { spawn "kitty"; } Mod+Return { spawn "kitty"; }
Mod+O { spawn "obsidian"; }
Mod+Z { spawn "kitty" "nh" "os" "switch" "./nixos"; } Mod+Z { spawn "kitty" "nh" "os" "switch" "./nixos"; }
Mod+Space { toggle-overview; } Mod+Space { toggle-overview; }
Mod+Q { close-window; } Mod+Q { close-window; }
Mod+F { fullscreen-window; } Mod+F { maximize-window-to-edges; }
Mod+Shift+F { fullscreen-window; }
Mod+Shift+E { quit; } Mod+Shift+E { quit; }
Mod+L { spawn "noctalia" "msg" "session" "lock"; }
Mod+Shift+D { spawn "noctalia" "msg" "desktop-widgets-edit"; } Mod+Shift+D { spawn "noctalia" "msg" "desktop-widgets-edit"; }
Mod+Shift+B { spawn "noctalia" "msg" "settings-open" "bar"; } Mod+Shift+B { spawn "noctalia" "msg" "settings-open" "bar"; }
Mod+Shift+S { spawn "noctalia" "msg" "settings-open"; } Mod+Shift+S { spawn "noctalia" "msg" "settings-open"; }
@@ -113,6 +116,7 @@ binds {
XF86WLAN { spawn-sh "rfkill toggle 0 || rfkill toggle 1"; } XF86WLAN { spawn-sh "rfkill toggle 0 || rfkill toggle 1"; }
XF86NotificationCenter { spawn "noctalia" "msg" "panel-toggle" "control-center" "notifications"; } XF86NotificationCenter { spawn "noctalia" "msg" "panel-toggle" "control-center" "notifications"; }
XF86Display { toggle-overview; } XF86Display { toggle-overview; }
Print { screenshot; }
} }
spawn-at-startup "noctalia" spawn-at-startup "noctalia"
window-rule { window-rule {
@@ -124,10 +128,13 @@ window-rule {
match app-id="^floorp$" match app-id="^floorp$"
match app-id="^code$" match app-id="^code$"
match app-id="^obsidian$" match app-id="^obsidian$"
default-column-width { proportion 1.000000; } open-maximized-to-edges true
} }
window-rule { window-rule {
match app-id="^kitty$" match app-id="^kitty$"
default-column-width { proportion 0.660000; } default-column-width { proportion 0.7; }
} }
gestures { hot-corners { off; }; } gestures { hot-corners { off; }; }
switch-events {
lid-close { spawn "bash" "-c" "noctalia msg session lock && systemctl hibernate"; }
}
+39 -29
View File
@@ -3,14 +3,14 @@ blur_intensity = 0.099999997764825821
tint_intensity = 0.14999999664723873 tint_intensity = 0.14999999664723873
[bar.default] [bar.default]
background_opacity = 0.74999998323619366 background_opacity = 0.79999998211860657
center = [ "workspaces" ] center = [ "workspaces" ]
end = [ "tray", "notifications", "bluetooth", "network", "volume", "battery", "control-center" ] end = [ "tray", "notifications", "bluetooth", "network", "volume", "battery", "control-center" ]
margin_edge = 8 margin_edge = 8
margin_ends = 80 margin_ends = 80
margin_opposite_edge = 8 margin_opposite_edge = 8
start = [ "clock", "media" ] start = [ "clock", "media" ]
thickness = 32 thickness = 36
widget_spacing = 16 widget_spacing = 16
[battery] [battery]
@@ -37,10 +37,10 @@ widget_order = [
visible = true visible = true
[desktop_widgets.widget.desktop-widget-0000000000000001] [desktop_widgets.widget.desktop-widget-0000000000000001]
box_height = 160.0 box_height = 144.0
box_width = 160.0 box_width = 144.0
cx = 176.0 cx = 1376.0
cy = 160.0 cy = 344.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "clock" type = "clock"
@@ -48,7 +48,7 @@ widget_order = [
[desktop_widgets.widget.desktop-widget-0000000000000001.settings] [desktop_widgets.widget.desktop-widget-0000000000000001.settings]
background = true background = true
background_color = "surface" background_color = "surface"
background_opacity = 0.75 background_opacity = 0.59999999999999998
background_padding = 10 background_padding = 10
background_radius = 12 background_radius = 12
center_text = false center_text = false
@@ -60,16 +60,16 @@ widget_order = [
shadow = true shadow = true
[desktop_widgets.widget.desktop-widget-0000000000000002] [desktop_widgets.widget.desktop-widget-0000000000000002]
box_height = 176.0 box_height = 160.0
box_width = 208.0 box_width = 208.0
cx = 1096.0 cx = 1096.0
cy = 168.0 cy = 160.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "sysmon" type = "sysmon"
[desktop_widgets.widget.desktop-widget-0000000000000002.settings] [desktop_widgets.widget.desktop-widget-0000000000000002.settings]
background_opacity = 0.75 background_opacity = 0.59999999999999998
display = "graph" display = "graph"
shadow = false shadow = false
show_label = true show_label = true
@@ -77,16 +77,16 @@ widget_order = [
stat2 = "cpu_temp" stat2 = "cpu_temp"
[desktop_widgets.widget.desktop-widget-0000000000000005] [desktop_widgets.widget.desktop-widget-0000000000000005]
box_height = 176.0 box_height = 160.0
box_width = 208.0 box_width = 208.0
cx = 1344.0 cx = 1344.0
cy = 168.0 cy = 160.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "sysmon" type = "sysmon"
[desktop_widgets.widget.desktop-widget-0000000000000005.settings] [desktop_widgets.widget.desktop-widget-0000000000000005.settings]
background_opacity = 0.75 background_opacity = 0.59999999999999998
display = "graph" display = "graph"
network_speed_compact = false network_speed_compact = false
shadow = false shadow = false
@@ -97,13 +97,13 @@ widget_order = [
box_height = 160.0 box_height = 160.0
box_width = 384.0 box_width = 384.0
cx = 288.0 cx = 288.0
cy = 704.0 cy = 736.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "media_player" type = "media_player"
[desktop_widgets.widget.desktop-widget-0000000000000006.settings] [desktop_widgets.widget.desktop-widget-0000000000000006.settings]
background_opacity = 0.75 background_opacity = 0.59999999999999998
hide_when_no_media = true hide_when_no_media = true
shadow = false shadow = false
@@ -111,7 +111,7 @@ widget_order = [
box_height = 96.0 box_height = 96.0
box_width = 384.0 box_width = 384.0
cx = 288.0 cx = 288.0
cy = 576.0 cy = 608.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "audio_visualizer" type = "audio_visualizer"
@@ -127,33 +127,34 @@ widget_order = [
[desktop_widgets.widget.desktop-widget-0000000000000008] [desktop_widgets.widget.desktop-widget-0000000000000008]
box_height = 96.0 box_height = 96.0
box_width = 144.0 box_width = 144.0
cx = 360.0 cx = 1192.0
cy = 128.0 cy = 320.0
output = "eDP-1" output = "eDP-1"
rotation = 0.0 rotation = 0.0
type = "weather" type = "weather"
[desktop_widgets.widget.desktop-widget-0000000000000008.settings] [desktop_widgets.widget.desktop-widget-0000000000000008.settings]
background_opacity = 0.75 background_opacity = 0.59999999999999998
[idle] [idle]
behavior_order = [ "lock", "screen-off", "lock-and-suspend" ] behavior_order = [ "lock", "screen-off", "Hibernate" ]
pre_action_fade_seconds = 30 pre_action_fade_seconds = 30
[idle.behavior.Hibernate]
action = "command"
command = "systemctl hibernate"
enabled = true
timeout = 600.0
[idle.behavior.lock] [idle.behavior.lock]
action = "lock" action = "lock"
enabled = true enabled = true
timeout = 600.0 timeout = 300.0
[idle.behavior.lock-and-suspend]
action = "lock_and_suspend"
enabled = false
timeout = 900.0
[idle.behavior.screen-off] [idle.behavior.screen-off]
action = "screen_off" action = "screen_off"
enabled = true enabled = true
timeout = 660.0 timeout = 450.0
[location] [location]
auto_locate = true auto_locate = true
@@ -231,9 +232,12 @@ polkit_agent = true
variant = "default" variant = "default"
[[shell.session.actions]] [[shell.session.actions]]
action = "lock_and_suspend" action = "command"
command = "noctalia msg session lock && systemctl hibernate"
countdown_seconds = 0.0 countdown_seconds = 0.0
enabled = false enabled = true
glyph = "hibernate"
label = "Hibernate"
shortcut = "3" shortcut = "3"
variant = "default" variant = "default"
@@ -302,9 +306,15 @@ title_scroll = "always"
[widget.network] [widget.network]
show_label = false show_label = false
[widget.notifications]
hide_when_no_unread = true
[widget.session] [widget.session]
enabled = false enabled = false
[widget.tray]
hidden = [ "Udiskie" ]
[widget.volume] [widget.volume]
mute_color = "on_surface" mute_color = "on_surface"
show_label = false show_label = false
+10
View File
@@ -181,6 +181,16 @@ in {
icon = "https://wiki.nixos.org/favicon.ico"; icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@nw"]; definedAliases = ["@nw"];
}; };
arch-wiki = {
name = "ArchWiki";
urls = [
{
template = "https://wiki.archlinux.org/index.php?search={searchTerms}";
}
];
icon = "https://wiki.archlinux.org/favicon.ico";
definedAliases = ["@aw"];
};
}; };
}; };
}; };
+1 -1
View File
@@ -34,7 +34,7 @@
"patternStore.savedPatterns" = [ "patternStore.savedPatterns" = [
{ {
label = "convert JSON pairs to Nix format"; label = "convert JSON pairs to Nix format";
find = "\"(\\w+)\": ([\\w, \\{\\}]+?),?$"; find = "\"(\\w+)\": (.+?),?$";
replace = "$1 = $2;"; replace = "$1 = $2;";
flags = { flags = {
"isRegex" = true; "isRegex" = true;
+31 -3
View File
@@ -22,12 +22,40 @@ in {
stylix.image = ../../assets/wallpapers/kitagawa.jpg; stylix.image = ../../assets/wallpapers/kitagawa.jpg;
stylix.polarity = "dark"; stylix.polarity = "dark";
systemd.sleep.settings.Sleep = {
AllowSuspend = "no";
AllowHibernation = "yes";
}; };
services.logind.settings.Login.HandleLidSwitch = "ignore";
systemd.services.disable-lid-wakeup = {
wantedBy = [ "multi-user.target" ];
description = "Prevent the lid switch from waking laptop from hibernation";
serviceConfig = {
Type = "simple";
User = "root";
ExecStart = "${pkgs.busybox}/bin/sh -c \"echo LID > /proc/acpi/wakeup\"";
};
};
systemd.services.disable-tty-switch = {
wantedBy = [ "multi-user.target" ];
description = "Prevent alt+arrow keys from switching tty";
serviceConfig = {
Type = "simple";
User = "root";
ExecStart = "${pkgs.busybox}/bin/sh -c \"${pkgs.kbd}/bin/dumpkeys -k|grep -v Incr_Console|grep -v Decr_Console|${pkgs.kbd}/bin/loadkeys\"";
};
};
services.udisks2.enable = true;
services.fprintd.enable = true; services.fprintd.enable = true;
security.pam.services.grey.fprintAuth = true; security.pam.services.login.fprintAuth = true;
security.pam.services.sudo.fprintAuth = true;
security.pam.services.swaylock.fprintAuth = true;
security.pam.services.lightdm.fprintAuth = true;
programs.nautilus-open-any-terminal = { programs.nautilus-open-any-terminal = {
enable = true; enable = true;
+15
View File
@@ -30,6 +30,9 @@ in {
ente-auth ente-auth
signal-desktop signal-desktop
hyperfine hyperfine
nautilus
code-nautilus
xarchiver
]; ];
stylix.targets.floorp.profileNames = [ "default" ]; stylix.targets.floorp.profileNames = [ "default" ];
@@ -53,6 +56,18 @@ in {
]; ];
}; };
services.udiskie = {
enable = true;
settings = {
# workaround for
# https://github.com/nix-community/home-manager/issues/632
program_options = {
# replace with your favorite file manager
file_manager = "${pkgs.nautilus}/bin/nautilus";
};
};
};
xdg = { xdg = {
enable = true; enable = true;
mimeApps.defaultApplications = { mimeApps.defaultApplications = {