Compare commits
2 changed files with 1 additions and 178 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
|
|
@ -8,84 +7,6 @@
|
||||||
let
|
let
|
||||||
filename = "fht-compositor.toml";
|
filename = "fht-compositor.toml";
|
||||||
|
|
||||||
swaync = pkgs.swaynotificationcenter;
|
|
||||||
swaync-config = (pkgs.formats.json { }).generate "swaync.json" (
|
|
||||||
let
|
|
||||||
default = lib.importJSON "${swaync}/etc/xdg/swaync/config.json";
|
|
||||||
in
|
|
||||||
default
|
|
||||||
// lib.genAttrs (map (side: "control-center-margin-${side}") [
|
|
||||||
"top"
|
|
||||||
"bottom"
|
|
||||||
"right"
|
|
||||||
]) (_: 8)
|
|
||||||
// {
|
|
||||||
notification-window-width = 420;
|
|
||||||
ignore-gtk-theme = false;
|
|
||||||
fit-to-screen = false;
|
|
||||||
control-center-height = -1;
|
|
||||||
widget-config = default.widget-config // {
|
|
||||||
notifications = default.widget-config.notifications or { } // {
|
|
||||||
vexpand = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
swaync-style = pkgs.writeText "swaync.css" ''
|
|
||||||
@import url("file://${swaync}/etc/xdg/swaync/style.css");
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--noti-bg-focus: transparent;
|
|
||||||
--noti-border-color: transparent;
|
|
||||||
--notification-shadow: none;
|
|
||||||
--border-radius: 16px;
|
|
||||||
--notification-icon-size: 48px;
|
|
||||||
--font-size-summary: 14px;
|
|
||||||
--font-size-body: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center {
|
|
||||||
background: @theme_bg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification,
|
|
||||||
.notification-group.collapsed .notification-row .notification {
|
|
||||||
background: shade(@theme_bg_color, 1.25);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action:hover,
|
|
||||||
.control-center .control-center-list .notification .notification-default-action:hover,
|
|
||||||
.notification-group.collapsed:hover .notification-row:not(:only-child) .notification {
|
|
||||||
background: shade(@theme_bg_color, 1.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list-placeholder {
|
|
||||||
margin-bottom: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content {
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time {
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: normal;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body {
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
osd-style = pkgs.writeText "swayosd.css" ''
|
|
||||||
@import url("file://${pkgs.swayosd}/etc/xdg/swayosd/style.css");
|
|
||||||
|
|
||||||
window#osd {
|
|
||||||
background: shade(@theme_bg_color, 1.15);
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
session-programs = lib.getExe (
|
session-programs = lib.getExe (
|
||||||
pkgs.writeShellApplication {
|
pkgs.writeShellApplication {
|
||||||
name = "session-programs";
|
name = "session-programs";
|
||||||
|
|
@ -109,8 +30,6 @@ let
|
||||||
restart 'walker.* --gapplication-service' walker --gapplication-service
|
restart 'walker.* --gapplication-service' walker --gapplication-service
|
||||||
restart 'gaypanel-wrapped_' systemd-cat -t gaypanel gaypanel
|
restart 'gaypanel-wrapped_' systemd-cat -t gaypanel gaypanel
|
||||||
restart 'bin/swaybg ' ${lib.getExe pkgs.swaybg} -i ${../../../background.jpg} -m fill
|
restart 'bin/swaybg ' ${lib.getExe pkgs.swaybg} -i ${../../../background.jpg} -m fill
|
||||||
restart 'bin/swayosd-server ' ${lib.getExe' pkgs.swayosd "swayosd-server"} --style ${osd-style}
|
|
||||||
restart 'bin/swaync ' ${lib.getExe' swaync "swaync"} --style ${swaync-style} --config ${swaync-config}
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
@ -118,75 +37,12 @@ in
|
||||||
{
|
{
|
||||||
imports = [ inputs.fht-compositor.nixosModules.default ];
|
imports = [ inputs.fht-compositor.nixosModules.default ];
|
||||||
|
|
||||||
# Prefer the GNOME portal (e.g. Nautilus as the file picker), falling back to GTK. This replaces
|
|
||||||
# the portal config fht-compositor ships.
|
|
||||||
xdg.portal.config.fht-compositor = {
|
|
||||||
default = [
|
|
||||||
"gnome"
|
|
||||||
"gtk"
|
|
||||||
];
|
|
||||||
|
|
||||||
# GNOME's sends them to GNOME Shell, GTK's to any notification daemon
|
|
||||||
"org.freedesktop.impl.portal.Notification" = [ "gtk" ];
|
|
||||||
|
|
||||||
# GNOME's needs GNOME Shell, and GTK doesn't have one
|
|
||||||
"org.freedesktop.impl.portal.ScreenCast" = [ "fht-compositor" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Take keyboard focus when opened, so you can type into the search straight away
|
# Take keyboard focus when opened, so you can type into the search straight away
|
||||||
environment.etc."xdg/walker/config.toml".source = (pkgs.formats.toml { }).generate "walker.toml" {
|
environment.etc."xdg/walker/config.toml".source = (pkgs.formats.toml { }).generate "walker.toml" {
|
||||||
force_keyboard_focus = true;
|
force_keyboard_focus = true;
|
||||||
theme = "system";
|
theme = "system";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc = {
|
|
||||||
# Only load the providers Walker uses
|
|
||||||
"xdg/elephant/elephant.toml".source = (pkgs.formats.toml { }).generate "elephant.toml" {
|
|
||||||
terminal_cmd = "ptyxis -x";
|
|
||||||
ignored_providers = [
|
|
||||||
"1password"
|
|
||||||
"aptpackages"
|
|
||||||
"archlinuxpkgs"
|
|
||||||
"bitwarden"
|
|
||||||
"bluetooth"
|
|
||||||
"bookmarks"
|
|
||||||
"clipboard"
|
|
||||||
"dnfpackages"
|
|
||||||
"files"
|
|
||||||
"menus"
|
|
||||||
"niriactions"
|
|
||||||
"nirisessions"
|
|
||||||
"playerctl"
|
|
||||||
"protonpass"
|
|
||||||
"providerlist"
|
|
||||||
"runner"
|
|
||||||
"snippets"
|
|
||||||
"symbols"
|
|
||||||
"todo"
|
|
||||||
"unicode"
|
|
||||||
"windows"
|
|
||||||
"wireplumber"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use the same search engines as LibreWolf, with its aliases as prefixes (e.g. "no nix")
|
|
||||||
"xdg/elephant/websearch.toml".source =
|
|
||||||
let
|
|
||||||
inherit (config.programs.firefox.policies) SearchEngines;
|
|
||||||
in
|
|
||||||
(pkgs.formats.toml { }).generate "websearch.toml" {
|
|
||||||
entries = map (
|
|
||||||
engine:
|
|
||||||
{
|
|
||||||
name = engine.Name;
|
|
||||||
url = lib.replaceStrings [ "{searchTerms}" ] [ "%TERM%" ] engine.URLTemplate;
|
|
||||||
default = engine.Name == SearchEngines.Default;
|
|
||||||
}
|
|
||||||
// lib.optionalAttrs (engine ? Alias) { prefix = "${engine.Alias} "; }
|
|
||||||
) SearchEngines.Add;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# The default theme, minus its hardcoded @define-color palette, so the GTK theme's colors show through
|
# The default theme, minus its hardcoded @define-color palette, so the GTK theme's colors show through
|
||||||
environment.etc."xdg/walker/themes/system/style.css".source =
|
environment.etc."xdg/walker/themes/system/style.css".source =
|
||||||
pkgs.runCommand "walker-system-style.css" { }
|
pkgs.runCommand "walker-system-style.css" { }
|
||||||
|
|
@ -239,14 +95,6 @@ in
|
||||||
action = "run-command";
|
action = "run-command";
|
||||||
arg = "nautilus";
|
arg = "nautilus";
|
||||||
};
|
};
|
||||||
Super-c = {
|
|
||||||
action = "run-command";
|
|
||||||
arg = "codium";
|
|
||||||
};
|
|
||||||
Super-b = {
|
|
||||||
action = "run-command";
|
|
||||||
arg = "librewolf";
|
|
||||||
};
|
|
||||||
|
|
||||||
Super-Down = {
|
Super-Down = {
|
||||||
action = "change-window-proportion";
|
action = "change-window-proportion";
|
||||||
|
|
@ -273,22 +121,7 @@ in
|
||||||
arg = i;
|
arg = i;
|
||||||
};
|
};
|
||||||
}) 9
|
}) 9
|
||||||
)
|
);
|
||||||
# Media keys, with a SwayOSD popup
|
|
||||||
//
|
|
||||||
lib.mapAttrs
|
|
||||||
(_: args: {
|
|
||||||
action = "run-command";
|
|
||||||
arg = "${lib.getExe' pkgs.swayosd "swayosd-client"} ${args}";
|
|
||||||
# Holding raise/lower keeps changing the volume, but holding mute shouldn't keep toggling
|
|
||||||
repeat = !lib.hasSuffix "mute-toggle" args;
|
|
||||||
})
|
|
||||||
{
|
|
||||||
XF86AudioRaiseVolume = "--output-volume raise";
|
|
||||||
XF86AudioLowerVolume = "--output-volume lower";
|
|
||||||
XF86AudioMute = "--output-volume mute-toggle";
|
|
||||||
XF86AudioMicMute = "--input-volume mute-toggle";
|
|
||||||
};
|
|
||||||
|
|
||||||
mousebinds = {
|
mousebinds = {
|
||||||
Super-Left = "swap-tile";
|
Super-Left = "swap-tile";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
@ -44,15 +43,6 @@ let
|
||||||
"flat",
|
"flat",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
$CommandButton {
|
|
||||||
styles [
|
|
||||||
"pill",
|
|
||||||
"flat",
|
|
||||||
]
|
|
||||||
|
|
||||||
icon-name: "notification-symbolic";
|
|
||||||
command: "${lib.getExe' pkgs.swaynotificationcenter "swaync-client"} --toggle-panel --skip-wait";
|
|
||||||
}
|
|
||||||
|
|
||||||
$SystemControlsWidget {
|
$SystemControlsWidget {
|
||||||
styles [
|
styles [
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue