Skip to content

Commit 16b77c4

Browse files
committed
Enhance NixOS config with Hyde-inspired features
Added Hyde-like functionality while maintaining a clean, non-abstracted configuration structure: - Enhanced waybar with media controls (mpris), idle inhibitor, and better styling - Added wlogout for graphical power menu (lock, logout, suspend, reboot, shutdown) - Improved kitty terminal with full theming, tab bar styling, and custom colors - Added fastfetch system info tool with NixOS branding - Enabled starship prompt for better shell experience All configurations use the existing theme system directly without abstractions, making them easily editable and extensible.
1 parent 73de668 commit 16b77c4

6 files changed

Lines changed: 413 additions & 6 deletions

File tree

home/laptop/default.nix

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
imports = [
44
../shared/zsh.nix
5-
# ../shared/starship.nix
5+
../shared/starship.nix
66
../shared/zoxide.nix
77
../shared/atuin.nix
88
../shared/bat.nix
@@ -17,7 +17,10 @@
1717
../nixos/waybar.nix
1818
../nixos/rofi.nix
1919
../nixos/mako.nix
20+
../nixos/kitty.nix
2021
../nixos/swaylock.nix
22+
../nixos/wlogout.nix
23+
../nixos/fastfetch.nix
2124
../nixos/gtk.nix
2225
];
2326

home/nixos/fastfetch.nix

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
{ config, pkgs, lib, osConfig, ... }:
2+
3+
let
4+
theme = osConfig.theme;
5+
in
6+
{
7+
# Fastfetch - Fast system information tool
8+
programs.fastfetch = {
9+
enable = true;
10+
11+
settings = {
12+
logo = {
13+
source = "nixos_small";
14+
padding = {
15+
top = 1;
16+
left = 2;
17+
};
18+
};
19+
20+
display = {
21+
separator = " → ";
22+
};
23+
24+
modules = [
25+
{
26+
type = "title";
27+
format = "{user-name}@{host-name}";
28+
}
29+
{
30+
type = "separator";
31+
}
32+
{
33+
type = "os";
34+
key = " OS";
35+
keyColor = "blue";
36+
}
37+
{
38+
type = "kernel";
39+
key = " Kernel";
40+
keyColor = "blue";
41+
}
42+
{
43+
type = "packages";
44+
key = "󰏗 Packages";
45+
keyColor = "cyan";
46+
}
47+
{
48+
type = "shell";
49+
key = " Shell";
50+
keyColor = "green";
51+
}
52+
{
53+
type = "wm";
54+
key = "󰨇 WM";
55+
keyColor = "green";
56+
}
57+
{
58+
type = "terminal";
59+
key = " Terminal";
60+
keyColor = "yellow";
61+
}
62+
{
63+
type = "separator";
64+
}
65+
{
66+
type = "host";
67+
key = "󰌢 Host";
68+
keyColor = "magenta";
69+
}
70+
{
71+
type = "cpu";
72+
key = "󰻠 CPU";
73+
keyColor = "red";
74+
}
75+
{
76+
type = "gpu";
77+
key = "󰍛 GPU";
78+
keyColor = "red";
79+
}
80+
{
81+
type = "memory";
82+
key = " Memory";
83+
keyColor = "yellow";
84+
}
85+
{
86+
type = "disk";
87+
key = "󰋊 Disk";
88+
keyColor = "yellow";
89+
}
90+
{
91+
type = "separator";
92+
}
93+
{
94+
type = "display";
95+
key = "󰍹 Display";
96+
keyColor = "cyan";
97+
}
98+
{
99+
type = "uptime";
100+
key = "󰔟 Uptime";
101+
keyColor = "magenta";
102+
}
103+
{
104+
type = "separator";
105+
}
106+
{
107+
type = "colors";
108+
symbol = "circle";
109+
}
110+
];
111+
};
112+
};
113+
114+
# Add fastfetch package
115+
home.packages = with pkgs; [
116+
fastfetch
117+
];
118+
}

home/nixos/kitty.nix

Lines changed: 102 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,105 @@
1-
{ ... }:
1+
{ config, pkgs, lib, osConfig, ... }:
2+
3+
let
4+
theme = osConfig.theme;
5+
in
26
{
3-
programs.kitty = {
4-
enable = true;
5-
# themeFile = "Glacier";
6-
# font = "JetBrains Mono";
7+
programs.kitty = {
8+
enable = true;
9+
10+
# Font configuration
11+
font = {
12+
name = theme.font.mono;
13+
size = theme.font.size.normal;
714
};
15+
16+
settings = {
17+
# Bell
18+
enable_audio_bell = false;
19+
20+
# Window layout
21+
window_padding_width = 10;
22+
confirm_os_window_close = 0;
23+
24+
# Cursor
25+
cursor_trail = 1;
26+
cursor_shape = "block";
27+
cursor_blink_interval = 0;
28+
29+
# Tab bar
30+
tab_bar_edge = "bottom";
31+
tab_bar_style = "powerline";
32+
tab_powerline_style = "slanted";
33+
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
34+
35+
# Performance tuning
36+
repaint_delay = 10;
37+
input_delay = 3;
38+
sync_to_monitor = true;
39+
40+
# Colors - Basic
41+
foreground = theme.fg;
42+
background = theme.bg;
43+
selection_foreground = theme.bg;
44+
selection_background = theme.accent;
45+
46+
# Cursor colors
47+
cursor = theme.accent;
48+
cursor_text_color = theme.bg;
49+
50+
# URL color
51+
url_color = theme.blue;
52+
53+
# Border colors
54+
active_border_color = theme.accent;
55+
inactive_border_color = theme.border;
56+
bell_border_color = theme.urgent;
57+
58+
# Tab bar colors
59+
active_tab_foreground = theme.bg;
60+
active_tab_background = theme.accent;
61+
inactive_tab_foreground = theme.fg;
62+
inactive_tab_background = theme.bg-alt;
63+
tab_bar_background = theme.bg;
64+
65+
# Terminal colors
66+
# Black
67+
color0 = theme.bg-alt;
68+
color8 = theme.fg-alt;
69+
70+
# Red
71+
color1 = theme.red;
72+
color9 = theme.red;
73+
74+
# Green
75+
color2 = theme.green;
76+
color10 = theme.green;
77+
78+
# Yellow
79+
color3 = theme.yellow;
80+
color11 = theme.yellow;
81+
82+
# Blue
83+
color4 = theme.blue;
84+
color12 = theme.blue;
85+
86+
# Magenta
87+
color5 = theme.purple;
88+
color13 = theme.purple;
89+
90+
# Cyan
91+
color6 = theme.cyan;
92+
color14 = theme.cyan;
93+
94+
# White
95+
color7 = theme.fg;
96+
color15 = theme.fg;
97+
};
98+
99+
# Keybindings
100+
keybindings = {
101+
# Open new tab in same directory
102+
"ctrl+shift+t" = "new_tab_with_cwd";
103+
};
104+
};
8105
}

home/nixos/sway.nix

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ in
5454

5555
# Clipboard
5656
"${mod}+v" = "exec cliphist list | rofi -dmenu | cliphist decode | wl-copy";
57+
58+
# Power menu
59+
"${mod}+Shift+e" = "exec wlogout";
5760
};
5861

5962
# Startup applications
@@ -143,6 +146,7 @@ in
143146
# Floating windows
144147
for_window [app_id="pavucontrol"] floating enable
145148
for_window [app_id="nm-connection-editor"] floating enable
149+
for_window [app_id="wlogout"] floating enable
146150
147151
# Disable focus wrapping
148152
focus_wrapping no

home/nixos/waybar.nix

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ in
3131

3232
# Right modules - system info (HyDE-inspired)
3333
modules-right = [
34+
"idle_inhibitor"
35+
"mpris"
3436
"pulseaudio"
3537
"network"
3638
"cpu"
@@ -136,6 +138,36 @@ in
136138
on-click = "pavucontrol";
137139
tooltip-format = "{desc}, {volume}%";
138140
};
141+
142+
"idle_inhibitor" = {
143+
format = "{icon}";
144+
format-icons = {
145+
activated = "";
146+
deactivated = "";
147+
};
148+
tooltip-format-activated = "Idle inhibitor active";
149+
tooltip-format-deactivated = "Idle inhibitor inactive";
150+
};
151+
152+
"mpris" = {
153+
format = "{player_icon} {dynamic}";
154+
format-paused = "{status_icon} <i>{dynamic}</i>";
155+
player-icons = {
156+
default = "▶";
157+
mpv = "🎵";
158+
spotify = "";
159+
};
160+
status-icons = {
161+
paused = "⏸";
162+
};
163+
dynamic-order = ["title" "artist"];
164+
dynamic-importance-order = ["title" "artist"];
165+
dynamic-len = 40;
166+
tooltip-format = "{player}: {title} - {artist}";
167+
on-click = "playerctl play-pause";
168+
on-scroll-up = "playerctl next";
169+
on-scroll-down = "playerctl previous";
170+
};
139171
};
140172
};
141173

@@ -187,6 +219,8 @@ in
187219
#memory,
188220
#network,
189221
#pulseaudio,
222+
#mpris,
223+
#idle_inhibitor,
190224
#tray,
191225
#mode,
192226
#window {
@@ -245,6 +279,23 @@ in
245279
color: ${theme.fg-alt};
246280
}
247281
282+
#mpris {
283+
color: ${theme.purple};
284+
}
285+
286+
#mpris.paused {
287+
color: ${theme.fg-alt};
288+
font-style: italic;
289+
}
290+
291+
#idle_inhibitor {
292+
color: ${theme.orange};
293+
}
294+
295+
#idle_inhibitor.activated {
296+
color: ${theme.warning};
297+
}
298+
248299
#clock {
249300
color: ${theme.fg};
250301
font-weight: bold;
@@ -281,5 +332,6 @@ in
281332
home.packages = with pkgs; [
282333
pavucontrol # Volume control GUI
283334
btop # System monitor
335+
playerctl # Media player control
284336
];
285337
}

0 commit comments

Comments
 (0)