plumb my configured sway through to everywhere that wants pkgs.sway
.
kinda ugly. this lets me avoid having multiple versions of sway on my system.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./feeds.nix
|
./feeds.nix
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
# this probably doesn't work if more than one sway session exists on the system.
|
# this probably doesn't work if more than one sway session exists on the system.
|
||||||
_notifyActiveSwaySock="$(echo /run/user/*/sway-ipc*.sock)"
|
_notifyActiveSwaySock="$(echo /run/user/*/sway-ipc*.sock)"
|
||||||
if [ -e "$_notifyActiveSwaySock" ]; then
|
if [ -e "$_notifyActiveSwaySock" ]; then
|
||||||
SWAYSOCK="$_notifyActiveSwaySock" ${pkgs.sway}/bin/swaymsg -- exec \
|
SWAYSOCK="$_notifyActiveSwaySock" ${config.sane.programs.sway.packageUnwrapped}/bin/swaymsg -- exec \
|
||||||
"${pkgs.libnotify}/bin/notify-send 'nixos activated' 'version: $(cat $systemConfig/nixos-version)'"
|
"${pkgs.libnotify}/bin/notify-send 'nixos activated' 'version: $(cat $systemConfig/nixos-version)'"
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
@@ -1,6 +1,19 @@
|
|||||||
{ ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
sane.programs."sway-contrib.grimshot" = {
|
sane.programs."sway-contrib.grimshot" = {
|
||||||
|
packageUnwrapped = pkgs.sway-contrib.grimshot.override {
|
||||||
|
# my `sway` is heavily patched to be cross compatible
|
||||||
|
sway-unwrapped = config.sane.programs.sway.package.sway-unwrapped;
|
||||||
|
};
|
||||||
|
suggestedPrograms = [
|
||||||
|
# runtime dependencies (grimshot is just a trivial shell script)
|
||||||
|
"grim"
|
||||||
|
"jq"
|
||||||
|
"libnotify" # only if invoked with `-n`
|
||||||
|
"slurp"
|
||||||
|
# "sway"
|
||||||
|
"wl-clipboard"
|
||||||
|
];
|
||||||
sandbox.method = "bwrap";
|
sandbox.method = "bwrap";
|
||||||
sandbox.wrapperType = "wrappedDerivation";
|
sandbox.wrapperType = "wrappedDerivation";
|
||||||
sandbox.whitelistWayland = true;
|
sandbox.whitelistWayland = true;
|
||||||
|
@@ -26,25 +26,23 @@ let
|
|||||||
swayLauncher
|
swayLauncher
|
||||||
configuredSway
|
configuredSway
|
||||||
];
|
];
|
||||||
|
passthru.sway-unwrapped = configuredSway;
|
||||||
};
|
};
|
||||||
swayPackage = wrapSway (
|
swayPackage = wrapSway (
|
||||||
(pkgs.sway-unwrapped.override {
|
pkgs.sway-unwrapped.override {
|
||||||
# wlroots seems to launch Xwayland itself, and i can't easily just do that myself externally.
|
# wlroots seems to launch Xwayland itself, and i can't easily just do that myself externally.
|
||||||
# so in order for the Xwayland it launches to be sandboxed, i need to patch the sandboxed version in here.
|
# so in order for the Xwayland it launches to be sandboxed, i need to patch the sandboxed version in here.
|
||||||
wlroots_0_16 = pkgs.wlroots_0_16.override { xwayland = config.sane.programs.xwayland.package; };
|
wlroots_0_16 = pkgs.wlroots_0_16.override {
|
||||||
}).overrideAttrs (_: {
|
xwayland = config.sane.programs.xwayland.package;
|
||||||
# isNixOS = true; #< doesn't matter
|
};
|
||||||
#
|
|
||||||
# about xwayland:
|
# about xwayland:
|
||||||
# - required by many electron apps, though some electron apps support NIXOS_OZONE_WL=1 for native wayland.
|
# - required by many electron apps, though some electron apps support NIXOS_OZONE_WL=1 for native wayland.
|
||||||
# - when xwayland is enabled, KOreader incorrectly chooses the X11 backend
|
# - when xwayland is enabled, KOreader incorrectly chooses the X11 backend
|
||||||
# -> slower; blurrier
|
# -> slower; blurrier
|
||||||
# - xwayland uses a small amount of memory (like 30MiB, IIRC?)
|
# - xwayland uses a small amount of memory (like 30MiB, IIRC?)
|
||||||
#
|
|
||||||
# TODO: something else is dragging a xwayland-enabled wlroots into the environment,
|
|
||||||
# making this actually kinda wasteful.
|
|
||||||
enableXWayland = config.sane.programs.xwayland.enabled;
|
enableXWayland = config.sane.programs.xwayland.enabled;
|
||||||
})
|
}
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@@ -85,7 +85,9 @@ let
|
|||||||
};
|
};
|
||||||
rotate = pkgs.static-nix-shell.mkBash {
|
rotate = pkgs.static-nix-shell.mkBash {
|
||||||
pname = "sxmo_hook_rotate.sh";
|
pname = "sxmo_hook_rotate.sh";
|
||||||
pkgs = [ "sway" ];
|
pkgs = {
|
||||||
|
sway = config.sane.programs.sway.package.sway-unwrapped;
|
||||||
|
};
|
||||||
srcRoot = ./hooks;
|
srcRoot = ./hooks;
|
||||||
};
|
};
|
||||||
start = pkgs.static-nix-shell.mkBash {
|
start = pkgs.static-nix-shell.mkBash {
|
||||||
@@ -109,7 +111,10 @@ in
|
|||||||
};
|
};
|
||||||
sane.gui.sxmo.package = mkOption {
|
sane.gui.sxmo.package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.sxmo-utils.override { preferSystemd = true; };
|
default = pkgs.sxmo-utils.override {
|
||||||
|
preferSystemd = true;
|
||||||
|
sway = config.sane.programs.sway.package.sway-unwrapped;
|
||||||
|
};
|
||||||
description = ''
|
description = ''
|
||||||
sxmo base scripts and hooks collection.
|
sxmo base scripts and hooks collection.
|
||||||
consider overriding the outputs under /share/sxmo/default_hooks
|
consider overriding the outputs under /share/sxmo/default_hooks
|
||||||
@@ -243,6 +248,7 @@ in
|
|||||||
"sfeed" # want this here so that the user's ~/.sfeed/sfeedrc gets created
|
"sfeed" # want this here so that the user's ~/.sfeed/sfeedrc gets created
|
||||||
# "superd" # make superctl (used by sxmo) be on PATH
|
# "superd" # make superctl (used by sxmo) be on PATH
|
||||||
# "sway-autoscaler"
|
# "sway-autoscaler"
|
||||||
|
"waybar-sxmo-status"
|
||||||
];
|
];
|
||||||
|
|
||||||
persist.byStore.cryptClearOnBoot = [
|
persist.byStore.cryptClearOnBoot = [
|
||||||
@@ -252,6 +258,17 @@ in
|
|||||||
".local/share/sxmo/notifications" # so i can see new SMS messages. not sure actually if this needs persisting or if it'll re-hydrate from modem.
|
".local/share/sxmo/notifications" # so i can see new SMS messages. not sure actually if this needs persisting or if it'll re-hydrate from modem.
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sane.programs.waybar-sxmo-status = {
|
||||||
|
packageUnwrapped = pkgs.static-nix-shell.mkBash {
|
||||||
|
pname = "waybar-sxmo-status";
|
||||||
|
srcRoot = ./.;
|
||||||
|
pkgs = {
|
||||||
|
sxmo-utils = package;
|
||||||
|
"sxmo-utils.runtimeDeps" = package.runtimeDeps;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -267,7 +284,7 @@ in
|
|||||||
{
|
{
|
||||||
sane.programs.sway.enableFor.user.colin = true;
|
sane.programs.sway.enableFor.user.colin = true;
|
||||||
sane.programs.waybar.config = {
|
sane.programs.waybar.config = {
|
||||||
top = import ./waybar-top.nix { inherit pkgs; };
|
top = import ./waybar-top.nix;
|
||||||
# reset extra waybar style
|
# reset extra waybar style
|
||||||
extra_style = "";
|
extra_style = "";
|
||||||
};
|
};
|
||||||
|
@@ -1,14 +1,6 @@
|
|||||||
# docs: https://github.com/Alexays/Waybar/wiki/Configuration
|
# docs: https://github.com/Alexays/Waybar/wiki/Configuration
|
||||||
# format specifiers: https://fmt.dev/latest/syntax.html#syntax
|
# format specifiers: https://fmt.dev/latest/syntax.html#syntax
|
||||||
# this is merged with the sway/waybar-top.nix defaults
|
# this is merged with the sway/waybar-top.nix defaults
|
||||||
{ pkgs }:
|
|
||||||
let
|
|
||||||
waybar-sxmo-status = pkgs.static-nix-shell.mkBash {
|
|
||||||
pname = "waybar-sxmo-status";
|
|
||||||
srcRoot = ./.;
|
|
||||||
pkgs = [ "sxmo-utils" "sxmo-utils.runtimeDeps" ];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
height = 26;
|
height = 26;
|
||||||
|
|
||||||
@@ -43,7 +35,7 @@ in
|
|||||||
# so it works even without the "statusbar periodics" sxmo service running.
|
# so it works even without the "statusbar periodics" sxmo service running.
|
||||||
interval = 2;
|
interval = 2;
|
||||||
format = "{}";
|
format = "{}";
|
||||||
exec = "${waybar-sxmo-status}/bin/waybar-sxmo-status modem-state modem-tech modem-signal wifi-status volume";
|
exec = "waybar-sxmo-status modem-state modem-tech modem-signal wifi-status volume";
|
||||||
};
|
};
|
||||||
|
|
||||||
"custom/sxmo" = {
|
"custom/sxmo" = {
|
||||||
|
Reference in New Issue
Block a user