Merged sketchybar config into declaritive Nix Repo

This commit is contained in:
DerGrumpf
2026-04-05 19:32:42 +02:00
parent 0d4654203c
commit ebd4183584
18 changed files with 515 additions and 188 deletions

View File

@@ -85,12 +85,16 @@
{ {
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit inputs primaryUser self; inherit inputs primaryUser self;
isDarwin = false;
}; };
home-manager.users.${primaryUser} = import ./home; home-manager.users.${primaryUser} = import ./home;
} }
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
]; ];
specialArgs = { inherit inputs primaryUser self hostName; }; specialArgs = {
inherit inputs primaryUser self hostName;
isDarwin = false;
};
}; };
mkDarwin = hostName: mkDarwin = hostName:
@@ -105,12 +109,16 @@
{ {
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit inputs primaryUser self; inherit inputs primaryUser self;
isDarwin = true;
}; };
home-manager.users.${primaryUser} = import ./home; home-manager.users.${primaryUser} = import ./home;
} }
inputs.sops-nix.darwinModules.sops inputs.sops-nix.darwinModules.sops
]; ];
specialArgs = { inherit inputs primaryUser self hostName; }; specialArgs = {
inherit inputs primaryUser self hostName;
isDarwin = true;
};
}; };
in { in {
nixosConfigurations."cyper-desktop" = mkNixos "cyper-desktop"; nixosConfigurations."cyper-desktop" = mkNixos "cyper-desktop";

View File

@@ -1,34 +1,20 @@
{ { config, primaryUser, inputs, self, lib, isDarwin, ... }: {
config,
primaryUser,
inputs,
self,
pkgs,
lib,
...
}:
{
imports = [ imports = [
./packages.nix ./packages.nix
./git.nix ./git.nix
./shell.nix ./shell.nix
./xdg.nix
./neovim ./neovim
./python.nix ./python.nix
./nixcord.nix ./nixcord.nix
./spicetify.nix ./spicetify.nix
./floorp.nix ./floorp.nix
./obsidian.nix ./obsidian.nix
./desktop
./xdg.nix
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
] ++ lib.optionals (!isDarwin) [ ./desktop ] ++ lib.optionals isDarwin [
./desktop/sketchybar
inputs.catppuccin.homeModules.catppuccin
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
catppuccin = { catppuccin = {
@@ -40,14 +26,14 @@
fzf.enable = true; fzf.enable = true;
bat.enable = true; bat.enable = true;
element-desktop = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { element-desktop = lib.mkIf (!isDarwin) {
enable = true; enable = true;
accent = "green"; accent = "green";
}; };
btop.enable = true; btop.enable = true;
cava = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { cava = lib.mkIf (!isDarwin) {
enable = true; enable = true;
transparent = true; transparent = true;
}; };
@@ -57,31 +43,31 @@
yazi.enable = true; yazi.enable = true;
fish.enable = true; fish.enable = true;
cursors = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { cursors = lib.mkIf (!isDarwin) {
enable = true; enable = true;
accent = "sapphire"; accent = "sapphire";
}; };
hyprland = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { enable = true; }; hyprland = lib.mkIf (!isDarwin) { enable = true; };
hyprlock = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { hyprlock = lib.mkIf (!isDarwin) {
enable = true; enable = true;
useDefaultConfig = false; useDefaultConfig = false;
}; };
waybar = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { waybar = lib.mkIf (!isDarwin) {
enable = true; enable = true;
mode = "createLink"; mode = "createLink";
}; };
mako.enable = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) true; mako.enable = lib.mkIf (!isDarwin) true;
mpv.enable = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) true; mpv.enable = lib.mkIf (!isDarwin) true;
newsboat.enable = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) true; newsboat.enable = lib.mkIf (!isDarwin) true;
mangohud.enable = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) true; mangohud.enable = lib.mkIf (!isDarwin) true;
gtk.icon.enable = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) true; gtk.icon.enable = lib.mkIf (!isDarwin) true;
kvantum = pkgs.lib.mkIf (!pkgs.stdenv.isDarwin) { kvantum = lib.mkIf (!isDarwin) {
enable = true; enable = true;
apply = true; apply = true;
}; };
@@ -90,7 +76,7 @@
home = { home = {
username = primaryUser; username = primaryUser;
stateVersion = "26.05"; stateVersion = "26.05";
sessionVariables = lib.mkIf (!pkgs.stdenv.isDarwin) { sessionVariables = lib.mkIf (!isDarwin) {
GROQ_API_KEY = config.sops.secrets.GROQ_API_KEY.path; GROQ_API_KEY = config.sops.secrets.GROQ_API_KEY.path;
OPENWEATHER_API_KEY = config.sops.secrets.OPENWEATHER_API_KEY.path; OPENWEATHER_API_KEY = config.sops.secrets.OPENWEATHER_API_KEY.path;
}; };
@@ -111,18 +97,19 @@
sops = { sops = {
defaultSopsFile = ../secrets/secrets.yaml; defaultSopsFile = ../secrets/secrets.yaml;
defaultSopsFormat = "yaml"; defaultSopsFormat = "yaml";
age.keyFile = age.keyFile = if isDarwin then
if pkgs.stdenv.isDarwin then "/Users/${primaryUser}/.config/nix/secrets/keys.txt"
"/Users/${primaryUser}/.config/nix/secrets/keys.txt" else
else "/home/${primaryUser}/.config/nix/secrets/keys.txt";
"/home/${primaryUser}/.config/nix/secrets/keys.txt";
secrets = { secrets = {
GROQ_API_KEY = { }; GROQ_API_KEY = { };
OPENWEATHER_API_KEY = { }; OPENWEATHER_API_KEY = { };
ssh_private_key = { ssh_private_key = {
path = path = if isDarwin then
if pkgs.stdenv.isDarwin then "/Users/${primaryUser}/.ssh/ssh" else "/home/${primaryUser}/.ssh/ssh"; "/Users/${primaryUser}/.ssh/ssh"
else
"/home/${primaryUser}/.ssh/ssh";
mode = "0600"; mode = "0600";
}; };
}; };

View File

@@ -1,32 +1,24 @@
{ { pkgs, inputs, lib, system, ... }:
pkgs, let isDarwin = builtins.match ".*-darwin" system != null;
inputs, in {
lib, imports = [ inputs.catppuccin.homeModules.catppuccin ]
... ++ lib.optionals (!isDarwin) [
}: ./hyprland
{ ./rofi
imports = [ ./waybar
inputs.catppuccin.homeModules.catppuccin ./gtk.nix
./hyprland ./qt.nix
./rofi ] ++ lib.optionals isDarwin [ ./sketchybar.nix ];
./waybar
./gtk.nix
./qt.nix
./sketchybar.nix
];
_module.args.compositor = if pkgs.stdenv.isDarwin then "quartz" else "hyprland"; _module.args.compositor = if isDarwin then "quartz" else "hyprland";
home = lib.mkIf (!pkgs.stdenv.isDarwin) { home = lib.mkIf (!isDarwin) {
packages = with pkgs; [ packages = with pkgs; [ waypaper awww ];
waypaper
awww
];
file.".config/waypaper/config.ini".source = ./waypaper.ini; file.".config/waypaper/config.ini".source = ./waypaper.ini;
}; };
# TODO: Qutebrowser install # TODO: Qutebrowser install
programs = lib.mkIf (!pkgs.stdenv.isDarwin) { programs = lib.mkIf (!isDarwin) {
mangohud = { mangohud = {
enable = true; enable = true;
settings = { settings = {

View File

@@ -1,23 +1,17 @@
{ inputs, pkgs, ... }: { inputs, pkgs, lib, ... }:
let let
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
super = "SUPER"; super = "SUPER";
terminal = "kitty"; terminal = "kitty";
fileManager = "yazi"; fileManager = "yazi";
theme = "-theme $HOME/.config/rofi/custom.rasi"; theme = "-theme $HOME/.config/rofi/custom.rasi";
menu = "rofi -show drun ${theme}"; menu = "rofi -show drun ${theme}";
filebrowser = "rofi -show filebrowser ${theme}"; filebrowser = "rofi -show filebrowser ${theme}";
power = "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi"; power =
"rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi";
apps = "rofi -show window ${theme}"; apps = "rofi -show window ${theme}";
in in lib.mkIf (!pkgs.stdenv.isDarwin) {
{
imports = [ imports = [ ./hypridle.nix ./hyprlock.nix ./mako.nix ./portal.nix ];
./hypridle.nix
./hyprlock.nix
./mako.nix
./portal.nix
];
home.packages = with pkgs; [ home.packages = with pkgs; [
catppuccin-cursors.mochaDark catppuccin-cursors.mochaDark
@@ -29,12 +23,12 @@ in
playerctl playerctl
]; ];
systemd.user.targets.hyprland-session.Unit.Wants = [ systemd.user.targets.hyprland-session.Unit.Wants =
"xdg-desktop-autostart.target" [ "xdg-desktop-autostart.target" ];
];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
inherit package; package =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
@@ -45,10 +39,12 @@ in
enableXdgAutostart = false; enableXdgAutostart = false;
}; };
plugins = with inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}; [ plugins =
#hyprbars with inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system};
# hyprexpo [
]; #hyprbars
# hyprexpo
];
settings = { settings = {
env = [ env = [
@@ -69,10 +65,8 @@ in
"XCURSOR_SIZE,24" "XCURSOR_SIZE,24"
]; ];
monitor = [ monitor =
"DP-1, 1920x1080@60, 1920x0, 1" [ "DP-1, 1920x1080@60, 1920x0, 1" "HDMI-A-2, 1920x1080@60, 0x0, 1" ];
"HDMI-A-2, 1920x1080@60, 0x0, 1"
];
input = { input = {
kb_layout = "de"; kb_layout = "de";
@@ -126,7 +120,7 @@ in
size = 1; size = 1;
passes = 3; passes = 3;
new_optimizations = 1; new_optimizations = 1;
noise = 0.04; noise = 4.0e-2;
}; };
}; };
@@ -195,10 +189,7 @@ in
# "noblur, class:^(org\\.gnome\\.|io\\.github\\.|org\\.gtk\\.)" # "noblur, class:^(org\\.gnome\\.|io\\.github\\.|org\\.gtk\\.)"
# ]; # ];
exec-once = [ exec-once = [ "awww-daemon & disown" "waybar &" ];
"awww-daemon & disown"
"waybar &"
];
# Keybindings # Keybindings
bind = [ bind = [
@@ -270,7 +261,8 @@ in
"${super}, mouse_up, workspace, e-1" "${super}, mouse_up, workspace, e-1"
# Screenshot # Screenshot
''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')'' ''
${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
"${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')" "${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')"
]; ];

View File

@@ -1,31 +1,21 @@
{ { pkgs, lib, ... }: {
pkgs, home.packages =
... lib.mkIf (!pkgs.stdenv.isDarwin) (with pkgs; [ rofi-power-menu rofi-calc ]);
}:
{
home.packages = with pkgs; [ programs.rofi = lib.mkIf (!pkgs.stdenv.isDarwin) {
rofi-power-menu
rofi-calc
];
programs.rofi = {
enable = true; enable = true;
cycle = true; cycle = true;
package = pkgs.rofi; package = pkgs.rofi;
font = "FiraCode Nerd Font Mono 12"; font = "FiraCode Nerd Font Mono 12";
location = "center"; location = "center";
terminal = "${pkgs.kitty}/bin/kitty"; terminal = "${pkgs.kitty}/bin/kitty";
}; };
home.file = { home.file = lib.mkIf (!pkgs.stdenv.isDarwin) {
".config/rofi/background.png".source = ./background.png; ".config/rofi/background.png".source = ./background.png;
".config/rofi/custom.rasi".source = ./custom.rasi; ".config/rofi/custom.rasi".source = ./custom.rasi;
".config/rofi/power.jpg".source = ./power.jpg; ".config/rofi/power.jpg".source = ./power.jpg;
".config/rofi/power.rasi".source = ./power.rasi; ".config/rofi/power.rasi".source = ./power.rasi;
".config/rofi/smoking_girl.png".source = ./smoking_girl.png; ".config/rofi/smoking_girl.png".source = ./smoking_girl.png;
}; };
} }

View File

@@ -1,8 +0,0 @@
{ pkgs, lib, ... }:
{
programs.sketchybar = lib.mkIf pkgs.stdenv.isDarwin {
enable = true;
configType = "lua";
sbarLuaPackage = pkgs.sbarlua;
};
}

View File

@@ -0,0 +1,32 @@
{ pkgs, lib, isDarwin, ... }: {
programs.sketchybar = lib.mkIf isDarwin {
enable = true;
configType = "lua";
sbarLuaPackage = pkgs.sbarlua;
};
home.file = lib.mkIf isDarwin {
".config/sketchybar/sketchybar.lua".source = ./sketchybar.lua;
".config/sketchybar/sketchybarrc".source = ./sketchybarrc;
".config/sketchybar/plugins/battery.sh" = {
source = ./plugins/battery.sh;
executable = true;
};
".config/sketchybar/plugins/clock.sh" = {
source = ./plugins/clock.sh;
executable = true;
};
".config/sketchybar/plugins/front_app.sh" = {
source = ./plugins/front_app.sh;
executable = true;
};
".config/sketchybar/plugins/space.sh" = {
source = ./plugins/space.sh;
executable = true;
};
".config/sketchybar/plugins/volume.sh" = {
source = ./plugins/volume.sh;
executable = true;
};
};
}

View File

@@ -0,0 +1,28 @@
#!/bin/sh
PERCENTAGE="$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)"
CHARGING="$(pmset -g batt | grep 'AC Power')"
if [ "$PERCENTAGE" = "" ]; then
exit 0
fi
case "${PERCENTAGE}" in
9[0-9]|100) ICON=" "
;;
[6-8][0-9]) ICON=" "
;;
[3-5][0-9]) ICON=" "
;;
[1-2][0-9]) ICON=" "
;;
*) ICON=" "
esac
if [[ "$CHARGING" != "" ]]; then
ICON=""
fi
# The item invoking this script (name $NAME) will get its icon and label
# updated with the current battery status
sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}%"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# The $NAME variable is passed from sketchybar and holds the name of
# the item invoking this script:
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
sketchybar --set "$NAME" label="$(date '+%a %d %b %H:%M:%S')"

View File

@@ -0,0 +1,10 @@
#!/bin/sh
# Some events send additional information specific to the event in the $INFO
# variable. E.g. the front_app_switched event sends the name of the newly
# focused application in the $INFO variable:
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
if [ "$SENDER" = "front_app_switched" ]; then
sketchybar --set "$NAME" label="$INFO"
fi

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# The $SELECTED variable is available for space components and indicates if
# the space invoking this script (with name: $NAME) is currently selected:
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
sketchybar --set "$NAME" icon.highlight="$SELECTED"

View File

@@ -0,0 +1,20 @@
#!/bin/sh
# The volume_change event supplies a $INFO variable in which the current volume
# percentage is passed to the script.
if [ "$SENDER" = "volume_change" ]; then
VOLUME="$INFO"
case "$VOLUME" in
[6-9][0-9]|100) ICON="󰕾"
;;
[3-5][0-9]) ICON="󰖀"
;;
[1-9]|[1-2][0-9]) ICON="󰕿"
;;
*) ICON="󰖁"
esac
sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
fi

View File

@@ -0,0 +1,278 @@
-- Main configuration file: sketchybar.lua
-- Save this in ~/.config/sketchybar/
-- SketchyBar Lua API
sbar = require("sketchybar")
-- Colors (Catppuccin Mocha theme)
local colors = {
text = 0xffcdd6f4,
bg = 0xff1e1e2e,
accent = 0xff74c7ec,
green = 0xffa6e3a1,
rosewater = 0xfff5e0dc,
flamingo = 0xfff2cdcd,
pink = 0xfff5c2e7,
mauve = 0xffcba6f7,
red = 0xfff38ba8,
maroon = 0xffeba0ac,
peach = 0xfffab387,
yellow = 0xfff9e2af,
teal = 0xff94e2d5,
sky = 0xff89dceb,
sapphire = 0xff74c7ec,
blue = 0xff89b4fa,
lavender = 0xffb4befe,
subtext1 = 0xffbac2de,
subtext0 = 0xffa6adc8,
overlay2 = 0xff9399b2,
overlay1 = 0xff7f849c,
overlay0 = 0xff6c7086,
surface2 = 0xff585b70,
surface1 = 0xff45475a,
surface0 = 0xff313244,
base = 0xff1e1e2e,
mantle = 0xff181825,
crust = 0xff11111b,
}
-- Default styles
sbar.default({
icon = {
color = colors.text,
font = "Hack Nerd Font:Bold:14.0",
padding_right = 4,
},
label = {
color = colors.text,
font = "Hack Nerd Font:Bold:14.0",
},
padding_right = 20,
popup = {
background = {
border_width = 2,
corner_radius = 9,
border_color = colors.accent,
color = colors.bg,
padding_right = 12,
},
},
})
-- Bar configuration
sbar.bar({
height = 32,
position = "top",
y_offset = 6,
padding_left = 12,
padding_right = 12,
margin = 12,
color = colors.bg,
border_color = colors.accent,
border_width = 2,
corner_radius = 60,
})
-- Apple logo menu
local apple_logo = sbar.add("item", "apple.logo", {
icon = {
string = "",
padding_left = 6,
font = "Hack Nerd Font:Bold:20.0",
},
label = { drawing = false },
padding_left = 0,
click_script = "sketchybar -m --set $NAME popup.drawing=toggle",
popup = {
y_offset = 8,
},
})
sbar.add("item", "apple.about", {
position = "popup.apple.logo",
icon = "",
label = "About",
click_script = 'osascript -e \'tell application "System Events" to tell process "Finder" to click menu item "About This Mac" of menu 1 of menu bar item "Apple" of menu bar 1\'; sketchybar -m --set apple.logo popup.drawing=off',
padding_left = 8,
padding_right = 8,
})
sbar.add("item", "apple.preferences", {
position = "popup.apple.logo",
icon = "",
label = "Preferences",
click_script = "open -a 'System Preferences'; sketchybar -m --set apple.logo popup.drawing=off",
padding_left = 8,
padding_right = 8,
})
sbar.add("item", "apple.activity", {
position = "popup.apple.logo",
icon = "",
label = "Activity",
click_script = "open -a 'Activity Monitor'; sketchybar -m --set apple.logo popup.drawing=off",
padding_left = 8,
padding_right = 8,
})
sbar.add("item", "apple.lock", {
position = "popup.apple.logo",
icon = "",
label = "Lock Screen",
click_script = "pmset displaysleepnow; sketchybar -m --set apple.logo popup.drawing=off",
padding_left = 8,
padding_right = 8,
})
-- Spaces
local space_icons = { "󰖟 ", "", "", "", "", "", "7", "8", "9", "10" }
for i = 1, #space_icons do
local space = sbar.add("space", "space." .. i, {
space = i,
icon = {
string = space_icons[i],
padding_left = 2,
padding_right = 2,
highlight_color = colors.green,
},
label = { drawing = false },
padding_right = 4,
script = "$CONFIG_DIR/plugins/space.lua",
click_script = "yabai -m space --focus " .. i,
})
space:subscribe("space_change", function(env)
local selected = env.SELECTED == "true"
sbar.set(env.NAME, { icon = { highlight = selected } })
end)
end
-- Front app
local front_app = sbar.add("item", "front_app", {
position = "center",
icon = "󰶮 ",
script = "$CONFIG_DIR/plugins/front_app.lua",
})
front_app:subscribe("front_app_switched", function(env)
sbar.set(env.NAME, { label = env.INFO })
end)
-- Clock
local clock = sbar.add("item", "clock", {
position = "right",
icon = "",
padding_right = 0,
update_freq = 1,
script = "$CONFIG_DIR/plugins/clock.lua",
})
clock:subscribe("routine", function()
sbar.exec("date '+%a %d %b %H:%M:%S'", function(date)
sbar.set("clock", { label = date })
end)
end)
-- Battery
local battery = sbar.add("item", "battery", {
position = "right",
update_freq = 1,
script = "$CONFIG_DIR/plugins/battery.lua",
})
battery:subscribe({ "routine", "system_woke", "power_source_change" }, function()
sbar.exec("pmset -g batt", function(batt_info)
local percentage = batt_info:match("(%d+)%%")
local charging = batt_info:match("AC Power") ~= nil
if not percentage then
return
end
local icon = " "
local pct = tonumber(percentage)
if pct >= 90 then
icon = ""
elseif pct >= 60 then
icon = ""
elseif pct >= 30 then
icon = ""
elseif pct >= 10 then
icon = ""
else
icon = ""
end
if charging then
icon = ""
end
sbar.set("battery", {
icon = icon,
label = percentage .. "%",
})
end)
end)
-- Volume
local volume = sbar.add("item", "volume", {
position = "right",
script = "$CONFIG_DIR/plugins/volume.lua",
})
volume:subscribe("volume_change", function(env)
local vol = tonumber(env.INFO)
local icon = "󰖁"
if vol >= 60 then
icon = "󰕾"
elseif vol >= 30 then
icon = "󰖀"
elseif vol >= 1 then
icon = "󰕿"
end
sbar.set(env.NAME, {
icon = icon,
label = vol .. "%",
})
end)
-- WiFi
local wifi = sbar.add("item", "wifi", {
position = "right",
update_freq = 10,
})
wifi:subscribe("routine", function()
-- Check if WiFi is active
sbar.exec("ifconfig en0 | grep 'status: active'", function(status)
local icon = "󰖪 " -- Off
if status and status ~= "" then
-- WiFi is active, check if connected to network
sbar.exec("ifconfig en0 | grep 'inet '", function(inet)
if inet and inet ~= "" then
icon = "󰖩 " -- Connected
else
icon = "󱚼 " -- Disconnected
end
sbar.set("wifi", {
icon = icon,
label = "",
})
end)
else
-- WiFi is off
sbar.set("wifi", {
icon = icon,
label = "",
})
end
end)
end)
-- Run the bar
sbar.hotload(true)
sbar.update()

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env lua
-- Load the sketchybar lua module
package.cpath = package.cpath .. ";/Users/" .. os.getenv("USER") .. "/.local/share/sketchybar_lua/?.so"
-- Load your main config
dofile(os.getenv("HOME") .. "/.config/sketchybar/sketchybar.lua")

View File

@@ -1,18 +1,13 @@
{ { pkgs, lib, compositor ? "hyprland", ... }: {
pkgs, programs.waybar = lib.mkIf (!pkgs.stdenv.isDarwin) ({
compositor ? "hyprland",
...
}:
{
programs.waybar = {
enable = true; enable = true;
package = pkgs.waybar; package = pkgs.waybar;
} } // (import ./dual.nix { inherit compositor; }));
// (import ./dual.nix { inherit compositor; });
home = { home.packages = lib.mkIf (!pkgs.stdenv.isDarwin) (with pkgs; [ cava ]);
packages = with pkgs; [ cava ];
file.".config/waybar" = { home.file = lib.mkIf (!pkgs.stdenv.isDarwin) {
".config/waybar" = {
source = ./configs; source = ./configs;
recursive = true; recursive = true;
}; };

View File

@@ -1,5 +1,5 @@
{ pkgs, ... }: { { isDarwin, lib, ... }: {
programs.nixvim = { programs.nixvim = lib.mkIf (!isDarwin) {
plugins.molten = { plugins.molten = {
enable = true; enable = true;
python3Dependencies = p: python3Dependencies = p:

View File

@@ -13,7 +13,6 @@
# GUI # GUI
openscad openscad
blender
fstl fstl
# PDF Tools # PDF Tools
@@ -60,6 +59,7 @@
thunderbird thunderbird
xonotic xonotic
irssi irssi
blender
] ++ lib.optionals pkgs.stdenv.isDarwin [ graphite-cli ]; ] ++ lib.optionals pkgs.stdenv.isDarwin [ graphite-cli ];
}; };
} }

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
home.packages = with pkgs; [ home.packages = with pkgs; [
eza # ls replacement eza # ls replacement
tdf # terminal pdf viewer tdf # terminal pdf viewer
@@ -41,32 +40,31 @@
tab_bar_min_tabs = 1; tab_bar_min_tabs = 1;
tab_bar_edge = "bottom"; tab_bar_edge = "bottom";
tab_bar_style = "custom"; # Should be changed to custom tab_bar_style = "custom"; # Should be changed to custom
tab_title_template = "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"; tab_title_template =
"{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
symbol_map = symbol_map = let
let mappings = [
mappings = [ "U+23FB-U+23FE"
"U+23FB-U+23FE" "U+2B58"
"U+2B58" "U+E200-U+E2A9"
"U+E200-U+E2A9" "U+E0A0-U+E0A3"
"U+E0A0-U+E0A3" "U+E0B0-U+E0BF"
"U+E0B0-U+E0BF" "U+E0C0-U+E0C8"
"U+E0C0-U+E0C8" "U+E0CC-U+E0CF"
"U+E0CC-U+E0CF" "U+E0D0-U+E0D2"
"U+E0D0-U+E0D2" "U+E0D4"
"U+E0D4" "U+E700-U+E7C5"
"U+E700-U+E7C5" "U+F000-U+F2E0"
"U+F000-U+F2E0" "U+2665"
"U+2665" "U+26A1"
"U+26A1" "U+F400-U+F4A8"
"U+F400-U+F4A8" "U+F67C"
"U+F67C" "U+E000-U+E00A"
"U+E000-U+E00A" "U+F300-U+F313"
"U+F300-U+F313" "U+E5FA-U+E62B"
"U+E5FA-U+E62B" ];
]; in (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono";
in
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono";
}; };
}; };
@@ -77,24 +75,15 @@
urls = [ urls = [
{ {
url = "https://www.tagesschau.de/xml/rss2"; url = "https://www.tagesschau.de/xml/rss2";
tags = [ tags = [ "news" "de" ];
"news"
"de"
];
} }
{ {
url = "https://www.spiegel.de/schlagzeilen/index.rss"; url = "https://www.spiegel.de/schlagzeilen/index.rss";
tags = [ tags = [ "news" "de" ];
"news"
"de"
];
} }
{ {
url = "https://www.focus.de/rss"; url = "https://www.focus.de/rss";
tags = [ tags = [ "news" "de" ];
"news"
"de"
];
} }
{ {
url = "https://feeds.feedburner.com/blogspot/rkEL"; url = "https://feeds.feedburner.com/blogspot/rkEL";
@@ -103,9 +92,7 @@
]; ];
}; };
programs.cava = { programs.cava = { enable = true; };
enable = true;
};
programs.yazi = { programs.yazi = {
enable = true; enable = true;
@@ -113,13 +100,7 @@
enableZshIntegration = true; enableZshIntegration = true;
enableFishIntegration = true; enableFishIntegration = true;
settings = { settings = { ration = [ 1 3 4 ]; };
ration = [
1
3
4
];
};
}; };
programs.fzf = { programs.fzf = {
@@ -128,7 +109,8 @@
enableZshIntegration = true; enableZshIntegration = true;
enableFishIntegration = true; enableFishIntegration = true;
defaultCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git"; defaultCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git";
fileWidgetCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git"; fileWidgetCommand =
"fd --type f --strip-cwd-prefix --hidden --exclude .git";
defaultOptions = [ defaultOptions = [
"--height 100%" "--height 100%"
"--border sharp" "--border sharp"
@@ -189,11 +171,10 @@
cat = "bat --color=always --style=numbers"; cat = "bat --color=always --style=numbers";
grep = "rg"; grep = "rg";
cp = "rsync -ah --progress"; cp = "rsync -ah --progress";
nix-switch = nix-switch = if pkgs.stdenv.isDarwin then
if pkgs.stdenv.isDarwin then "sudo darwin-rebuild switch --flake ~/.config/nix#(hostname -s)"
"darwin-rebuild switch --flake ~/.config/nix#(hostname -s)" else
else "sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)";
"sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)";
}; };
interactiveShellInit = '' interactiveShellInit = ''
@@ -249,7 +230,8 @@
# Git status module settings # Git status module settings
git_status = { git_status = {
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)"; format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
style = "bold #a6e3a1"; style = "bold #a6e3a1";
conflicted = ""; conflicted = "";
untracked = ""; untracked = "";