refactor: moby: split more stuff out of the toplevel config and hide behind roles/etc
This commit is contained in:
parent
25298c9be6
commit
7e32fab5d4
|
@ -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>)
|
||||
|
|
|
@ -85,7 +85,7 @@ in
|
|||
"playerctl"
|
||||
"procps"
|
||||
"sane-open"
|
||||
"sway"
|
||||
# "sway" #< TODO: circular dependency :-(
|
||||
"wireplumber"
|
||||
# optional integrations:
|
||||
"megapixels"
|
||||
|
|
|
@ -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
|
||||
;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user