refactor: moby: split more stuff out of the toplevel config and hide behind roles/etc

This commit is contained in:
Colin 2024-06-04 14:51:36 +00:00
parent 25298c9be6
commit 7e32fab5d4
5 changed files with 29 additions and 13 deletions

View File

@ -16,7 +16,6 @@
sane.hal.pine64.enable = true;
sane.roles.client = true;
sane.roles.handheld = true;
sane.programs.zsh.config.showDeadlines = false; # unlikely to act on them when in shell
sane.services.wg-home.enable = true;
sane.services.wg-home.ip = config.sane.hosts.by-name."moby".wg-home.ip;
sane.ovpn.addrV4 = "172.24.87.255";
@ -30,11 +29,6 @@
sops.secrets.colin-passwd.neededForUsers = true;
sane.programs.sway.enableFor.user.colin = true;
sane.programs.swaylock.enableFor.user.colin = false; #< not usable on touch
sane.programs.schlock.enableFor.user.colin = true;
sane.programs.swayidle.config.actions.screenoff.delay = 300;
sane.programs.swayidle.config.actions.screenoff.enable = true;
sane.programs.sane-input-handler.enableFor.user.colin = true;
sane.programs.blueberry.enableFor.user.colin = false; # bluetooth manager: doesn't cross compile!
sane.programs.fcitx5.enableFor.user.colin = false; # does not cross compile
sane.programs.mercurial.enableFor.user.colin = false; # does not cross compile
@ -50,10 +44,6 @@
# sane.programs."gnome.geary".config.autostart = true;
# sane.programs.calls.config.autostart = true;
sane.programs.firefox.mime.priority = 300; # prefer other browsers when possible
# HACK/TODO: make `programs.P.env.VAR` behave according to `mime.priority`
sane.programs.firefox.env = lib.mkForce {};
sane.programs.epiphany.env.BROWSER = "epiphany";
sane.programs.pipewire.config = {
# tune so Dino doesn't drop audio
# there's seemingly two buffers for the mic (see: <https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#pipewire-buffering-explained>)

View File

@ -85,7 +85,7 @@ in
"playerctl"
"procps"
"sane-open"
"sway"
# "sway" #< TODO: circular dependency :-(
"wireplumber"
# optional integrations:
"megapixels"

View File

@ -107,6 +107,14 @@ in
default font (for e.g. window titles)
'';
};
locker = mkOption {
type = types.str;
default = "swaylock";
description = ''
name of program to use as the screenlocker
'';
example = "schlock";
};
mod = mkOption {
type = types.str;
default = "Mod4";
@ -152,7 +160,6 @@ in
# "splatmoji" # used by sway config
"sway-contrib.grimshot" # used by sway config
"swayidle" # enable if you need it
"swaylock" # used by sway config
"swaynotificationcenter" # notification daemon
"sysvol" # volume notifier
"unl0kr" # greeter
@ -179,6 +186,8 @@ in
# xdg-desktop-portal-wlr provides portals for screenshots/screen sharing
"xdg-desktop-portal-wlr"
"xdg-terminal-exec" # used by sway config
] ++ [
cfg.config.locker
];
sandbox.method = "bwrap";
@ -220,6 +229,7 @@ in
inherit (cfg.config)
extra_lines
font
locker
mod
workspace_layout
;

View File

@ -16,6 +16,7 @@ set $volume_up wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
set $volume_down wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
set $mute wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
set $default_workspace_layout @workspace_layout@
set $locker @locker@
set $out_tv "LG Electronics LG TV 0x01010101"
set $out_projector "MS Telematica TV 0x00000001"
@ -79,7 +80,7 @@ bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
#### special functions
bindsym Print exec sane-open --application sane-screenshot.desktop
bindsym $mod+Print exec sane-open --application sane-screenshot.desktop
bindsym $mod+l exec s6-rc -b start swaylock
bindsym $mod+l exec s6-rc -b start $locker
bindsym $mod+s exec sane-open --application rofi-snippets.desktop
# bindsym $mod+slash exec sane-open splatmoji.desktop
bindsym $mod+d exec sane-open --application rofi.desktop

View File

@ -13,6 +13,9 @@
"consoleMediaUtils" # overbroad, but handy on very rare occasion
"handheldGuiApps"
];
sane.programs.sway.suggestedPrograms = [
"sane-input-handler"
];
sane.programs.alacritty.config.fontSize = 9;
@ -26,13 +29,23 @@
# sidebery UX doesn't make sense on small screen
addons.sidebery.enable = false;
};
sane.programs.firefox.mime.priority = 300; # prefer other browsers when possible
# HACK/TODO: make `programs.P.env.VAR` behave according to `mime.priority`
sane.programs.firefox.env = lib.mkForce {};
sane.programs.epiphany.env.BROWSER = "epiphany";
sane.programs.sway.config = {
font = "pango:monospace 10";
locker = "schlock";
mod = "Mod1"; # prefer Alt
workspace_layout = "tabbed";
};
sane.programs.swayidle.config = {
actions.screenoff.delay = 300;
actions.screenoff.enable = true;
};
sane.programs.waybar.config = {
fontSize = 14;
height = 26;
@ -43,6 +56,8 @@
modules.windowTitle = false;
# TODO: show modem state
};
sane.programs.zsh.config.showDeadlines = false; # unlikely to act on them when in shell
};
}