Clean home env

This commit is contained in:
soraefir
2026-06-14 10:39:32 +02:00
parent 577fd364fd
commit abce77a6a6
16 changed files with 125 additions and 123 deletions

View File

@@ -54,7 +54,7 @@
sticky_history = "yes";
history_length = "20";
dmenu = "wofi --show dmenu -p dunst:";
dmenu = "${pkgs.wofi}/bin/wofi --show dmenu -p dunst:";
browser = "/usr/bin/xdg-open";
always_run_script = "true";
title = "Dunst";

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
eww close popup 2>/dev/null
hyprpicker -a

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
eww close popup 2>/dev/null
swaylock

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env bash
DIR="$HOME/Pictures/Screenshots"
mkdir -p "$DIR"
FILE="$DIR/$(date +%Y-%m-%d_%H-%M-%S).png"
grim -g "$(slurp)" "$FILE" && wl-copy < "$FILE"
eww close popup 2>/dev/null
sleep 0.15
hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command wl-copy

View File

@@ -89,8 +89,8 @@
(quick-btn :icon "󰌵" :label "Night Light" :onclick "eww update night-light=$(scripts/nightlight)" :active {night-light}))
(box :orientation "h" :space-evenly true
(quick-btn :icon "󰹑" :label "Screenshot" :onclick "scripts/screenshot" :active false)
(quick-btn :icon "󰌾" :label "Lock" :onclick "swaylock" :active false)
(quick-btn :icon "󱉨" :label "Color Pick" :onclick "hyprpicker -a" :active false)))))
(quick-btn :icon "󰌾" :label "Lock" :onclick "scripts/lock" :active false)
(quick-btn :icon "󱉨" :label "Color Pick" :onclick "scripts/color-pick" :active false)))))
; --- Brightness ---

View File

@@ -12,56 +12,90 @@ let
exec ${lib.getExe pkgs.eww} open "$window" "$@"
'';
# Wraps a static script file with a bash launcher that prepends Nix store
# bin dirs to PATH — keeps the source files unchanged.
mkScript = name: src: inputs: pkgs.writeShellScriptBin name ''
export PATH="${lib.makeBinPath inputs}:$PATH"
${builtins.readFile src}
'';
scripts = {
"scripts/brightness" = mkScript "brightness" ./bar/scripts/brightness [ pkgs.brightnessctl ];
"scripts/nightlight" = mkScript "nightlight" ./bar/scripts/nightlight [ pkgs.wlsunset ];
"scripts/panel-toggle" = mkScript "panel-toggle" ./bar/scripts/panel-toggle [ pkgs.eww pkgs.jq ];
"scripts/power-save" = mkScript "power-save" ./bar/scripts/power-save [ pkgs.eww ];
"scripts/radio" = mkScript "radio" ./bar/scripts/radio [ pkgs.eww pkgs.jq pkgs.curl pkgs.mpv pkgs.playerctl ];
"scripts/color-pick" = mkScript "color-pick" ./bar/scripts/color-pick [ pkgs.eww pkgs.hyprpicker ];
"scripts/lock" = mkScript "lock" ./bar/scripts/lock [ pkgs.eww pkgs.swaylock-effects ];
"scripts/screenshot" = mkScript "screenshot" ./bar/scripts/screenshot [ pkgs.eww pkgs.hyprshot pkgs.satty pkgs.wl-clipboard ];
"scripts/sys/gpu" = mkScript "gpu" ./bar/scripts/sys/gpu [ pkgs.custom.amdgpu_top pkgs.jq ];
"scripts/sys/memory" = mkScript "memory" ./bar/scripts/sys/memory [ pkgs.ripgrep ];
"scripts/volume" = mkScript "volume" ./bar/scripts/volume [ pkgs.ripgrep ];
"scripts/weather" = mkScript "weather" ./bar/scripts/weather [ pkgs.jq pkgs.curl ];
"scripts/workspaces" = mkScript "workspaces" ./bar/scripts/workspaces [ pkgs.jaq pkgs.socat pkgs.ripgrep ];
};
in {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top openOnCurrentScreen ];
home.packages = [ pkgs.eww openOnCurrentScreen ];
xdg.configFile."eww" = {
source = lib.cleanSourceWith {
filter = name: _type:
let baseName = baseNameOf (toString name);
in !(lib.hasSuffix ".nix" baseName) && (baseName != "_colors.scss");
src = lib.cleanSource ./bar/.;
};
xdg.configFile = lib.mkMerge [
{
"eww" = {
source = lib.cleanSourceWith {
filter = name: _type:
let
baseName = baseNameOf (toString name);
relPath = lib.removePrefix (toString ./bar + "/") (toString name);
in !(lib.hasSuffix ".nix" baseName)
&& (baseName != "_colors.scss")
&& !(builtins.elem relPath (builtins.attrNames scripts));
src = lib.cleanSource ./bar/.;
};
recursive = true;
};
recursive = true;
};
# colors file
xdg.configFile."eww/css/_colors.scss".text = ''
$base00: #${config.colorScheme.palette.base00};
$base01: #${config.colorScheme.palette.base01};
$base02: #${config.colorScheme.palette.base02};
$base03: #${config.colorScheme.palette.base03};
$base04: #${config.colorScheme.palette.base04};
$base05: #${config.colorScheme.palette.base05};
$base06: #${config.colorScheme.palette.base06};
$base07: #${config.colorScheme.palette.base07};
$base08: #${config.colorScheme.palette.base08};
$base09: #${config.colorScheme.palette.base09};
$base0A: #${config.colorScheme.palette.base0A};
$base0B: #${config.colorScheme.palette.base0B};
$base0C: #${config.colorScheme.palette.base0C};
$base0D: #${config.colorScheme.palette.base0D};
$base0E: #${config.colorScheme.palette.base0E};
$base0F: #${config.colorScheme.palette.base0F};
"eww/css/_colors.scss".text = ''
$base00: #${config.colorScheme.palette.base00};
$base01: #${config.colorScheme.palette.base01};
$base02: #${config.colorScheme.palette.base02};
$base03: #${config.colorScheme.palette.base03};
$base04: #${config.colorScheme.palette.base04};
$base05: #${config.colorScheme.palette.base05};
$base06: #${config.colorScheme.palette.base06};
$base07: #${config.colorScheme.palette.base07};
$base08: #${config.colorScheme.palette.base08};
$base09: #${config.colorScheme.palette.base09};
$base0A: #${config.colorScheme.palette.base0A};
$base0B: #${config.colorScheme.palette.base0B};
$base0C: #${config.colorScheme.palette.base0C};
$base0D: #${config.colorScheme.palette.base0D};
$base0E: #${config.colorScheme.palette.base0E};
$base0F: #${config.colorScheme.palette.base0F};
$fg: $base07;
$bg0: $base00;
$bg1: $base01;
$fg: $base07;
$bg0: $base00;
$bg1: $base01;
$border-color: $base03;
$border-color-focus: $base04;
$border-radius: ${config.colorScheme.palette.border-radius}px;
$border-width: ${config.colorScheme.palette.border-width}px;
$border-color: $base03;
$border-color-focus: $base04;
$border-radius: ${config.colorScheme.palette.border-radius}px;
$border-width: ${config.colorScheme.palette.border-width}px;
$gaps-screen: ${config.colorScheme.palette.gaps-screen}px;
$gaps-window: ${config.colorScheme.palette.gaps-window}px;
$gaps-screen: ${config.colorScheme.palette.gaps-screen}px;
$gaps-window: ${config.colorScheme.palette.gaps-window}px;
$panel-font-size: 10pt;
$popup-scale: 1.25;
'';
$panel-font-size: 10pt;
$popup-scale: 1.25;
'';
}
(lib.mapAttrs' (rel: drv: {
name = "eww/${rel}";
value.source = "${drv}/bin/${drv.name}";
}) scripts)
];
};
}

View File

@@ -19,8 +19,6 @@ let
in {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = [ pkgs.custom.amdgpu_top pkgs.jq ];
programs.waybar = {
enable = true;
package = pkgs.waybar;
@@ -203,8 +201,7 @@ in {
"custom/gpu" = {
"exec" = jsonOutput "gpu" {
tooltip = "...";
percentage = ''
$(amdgpu_top -J -n 1 | jq -r '.devices[0].GRBM2."Command Processor - Graphics".value')'';
percentage = ''$(${lib.getExe pkgs.custom.amdgpu_top} -J -n 1 | ${pkgs.jq}/bin/jq -r '.devices[0].GRBM2."Command Processor - Graphics".value')'';
};
"return-type" = "json";
"interval" = 5;

View File

@@ -1,8 +1,6 @@
{ lib, pkgs, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = with pkgs; [ swayidle swaylock-effects ];
xdg.configFile."swaylock/config".text = ''
screenshots
grace-no-mouse

View File

@@ -1,7 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = with pkgs; [ wofi ];
xdg.configFile."wofi/config".text = ''
width=280
lines=10