Compare commits
2 commits
ec923b007f
...
c98869240a
Author | SHA1 | Date | |
---|---|---|---|
c98869240a | |||
0b5219c89f |
3 changed files with 137 additions and 22 deletions
96
modules/home/services/picom/default.nix
Normal file
96
modules/home/services/picom/default.nix
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.marleyos.services.picom;
|
||||||
|
hasXorg = config.xsession.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.marleyos.services.picom.enable = mkEnableOption "picom";
|
||||||
|
|
||||||
|
config = mkIf (cfg.enable && hasXorg) {
|
||||||
|
services.picom = {
|
||||||
|
enable = true;
|
||||||
|
package = config.lib.nixGL.wrap pkgs.picom;
|
||||||
|
};
|
||||||
|
|
||||||
|
# The module config options are a nightmare.
|
||||||
|
xdg.configFile."picom/picom.conf".text = # conf
|
||||||
|
''
|
||||||
|
# Shadows - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
shadow = true;
|
||||||
|
shadow-radius = 20;
|
||||||
|
shadow-opacity = .30;
|
||||||
|
shadow-offset-x = -7;
|
||||||
|
shadow-offset-y = 7;
|
||||||
|
shadow-exclude = [
|
||||||
|
"name = 'Notification'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g = 'Cairo-clock'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Fading - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
fading = true;
|
||||||
|
fade-in-step = 0.03;
|
||||||
|
fade-out-step = 0.03;
|
||||||
|
|
||||||
|
# Transparency / Opacity - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
inactive-opacity = 0.7;
|
||||||
|
active-opacity = 0.9;
|
||||||
|
frame-opacity = 0.7;
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||||
|
opacity-rule = [
|
||||||
|
"100:class_g = 'firefox'",
|
||||||
|
"60:class_g = 'dolphin'",
|
||||||
|
"50:class_g = 'cava'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Corners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
corner-radius = 20;
|
||||||
|
rounded-corners-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"class_g = 'Dunst'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Background Blurring - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
blur-method = "dual_kawase";
|
||||||
|
blur-size = 12;
|
||||||
|
blur-strength = 10;
|
||||||
|
blur-background = false;
|
||||||
|
blur-kern = "3x3box";
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"name = 'firefox'",
|
||||||
|
"class_g = 'slop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
backend = "glx";
|
||||||
|
dithered-present = false;
|
||||||
|
vsync = true;
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
detect-client-opacity = true;
|
||||||
|
detect-transient = true;
|
||||||
|
use-damage = false;
|
||||||
|
log-level = "warn";
|
||||||
|
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||||
|
dock = { shadow = false; clip-shadow-above = true; }
|
||||||
|
dnd = { shadow = false; }
|
||||||
|
popup_menu = { opacity = 0.8; }
|
||||||
|
dropdown_menu = { opacity = 0.8; }
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,38 +5,33 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkIf;
|
inherit (lib) mkEnableOption mkIf getExe;
|
||||||
|
|
||||||
cfg = config.marleyos.services.polybar;
|
cfg = config.marleyos.services.polybar;
|
||||||
hasXorg = config.xsession.enable;
|
hasXorg = config.xsession.enable;
|
||||||
|
xrandr = getExe pkgs.xorg.xrandr;
|
||||||
|
grep = getExe pkgs.gnugrep;
|
||||||
|
cut = "${pkgs.coreutils}/bin/cut";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.marleyos.services.polybar.enable = mkEnableOption "polybar";
|
options.marleyos.services.polybar.enable = mkEnableOption "polybar";
|
||||||
|
|
||||||
config = mkIf (cfg.enable && hasXorg) {
|
config = mkIf (cfg.enable && hasXorg) {
|
||||||
home.packages = with pkgs; [
|
|
||||||
xorg.xrandr
|
|
||||||
];
|
|
||||||
|
|
||||||
services.polybar = {
|
services.polybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = config.lib.nixGL.wrap pkgs.polybar;
|
package = config.lib.nixGL.wrap pkgs.polybar;
|
||||||
|
|
||||||
script = # bash
|
script = # bash
|
||||||
''
|
''
|
||||||
if type "xrandr" &/dev/null; then
|
for m in $(${xrandr} --query | ${grep} " connected" | ${cut} -d" " -f1); do
|
||||||
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
bar="main"
|
||||||
bar="main"
|
|
||||||
|
|
||||||
if [[ "$m" == "DP-0" ]]; then
|
if [[ "$m" == "DP-0" ]]; then
|
||||||
bar="tray"
|
bar="tray"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MONITOR="$m" polybar -q "$bar" &
|
MONITOR="$m" polybar -q "$bar" &
|
||||||
done
|
done
|
||||||
else
|
|
||||||
polybar -q main &
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# colorblock theme from
|
# colorblock theme from
|
||||||
|
@ -66,7 +61,7 @@ in
|
||||||
cfgHome = config.xdg.configHome;
|
cfgHome = config.xdg.configHome;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
### Global Settings ###
|
# Global Settings - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
"settings" = {
|
"settings" = {
|
||||||
screenchange.reload = true;
|
screenchange.reload = true;
|
||||||
compositing = {
|
compositing = {
|
||||||
|
@ -82,7 +77,7 @@ in
|
||||||
margin.bottom = 0;
|
margin.bottom = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
### Bars ###
|
# Bars - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
"bar/main" = {
|
"bar/main" = {
|
||||||
monitor.text = "\${env:MONITOR:}";
|
monitor.text = "\${env:MONITOR:}";
|
||||||
monitor.strict = false;
|
monitor.strict = false;
|
||||||
|
@ -123,10 +118,10 @@ in
|
||||||
|
|
||||||
"bar/tray" = {
|
"bar/tray" = {
|
||||||
"inherit" = "bar/main";
|
"inherit" = "bar/main";
|
||||||
modules.right = "color-switch tray sep updates sep cpu memory pulseaudio network date sep sysmenu";
|
modules.right = "tray filesystem sep cpu memory pulseaudio network date sep sysmenu";
|
||||||
};
|
};
|
||||||
|
|
||||||
### Modules ###
|
# Modules - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
"module/sep" = {
|
"module/sep" = {
|
||||||
type = "custom/text";
|
type = "custom/text";
|
||||||
format = " ";
|
format = " ";
|
||||||
|
@ -343,6 +338,14 @@ in
|
||||||
background = color.shade2;
|
background = color.shade2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
ramp.volume = {
|
||||||
|
text = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
font = 2;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"module/network" = {
|
"module/network" = {
|
||||||
|
@ -393,6 +396,19 @@ in
|
||||||
};
|
};
|
||||||
click.left = mkIf hasRofi "${cfgHome}/rofi/powermenu/type-1/powermenu.sh &";
|
click.left = mkIf hasRofi "${cfgHome}/rofi/powermenu/type-1/powermenu.sh &";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"module/tray" = {
|
||||||
|
type = "internal/tray";
|
||||||
|
tray = {
|
||||||
|
size = 16;
|
||||||
|
background = color.shade2;
|
||||||
|
spacing = "5px";
|
||||||
|
};
|
||||||
|
format = {
|
||||||
|
background = color.shade2;
|
||||||
|
padding = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,8 +15,11 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
marleyos = {
|
marleyos = {
|
||||||
programs.rofi = enabled;
|
programs.rofi = enabled;
|
||||||
services.polybar = enabled;
|
services = {
|
||||||
services.dunst = enabled;
|
picom = enabled;
|
||||||
|
polybar = enabled;
|
||||||
|
dunst = enabled;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue