Compare commits

..
4 Commits
8 changed files with 134 additions and 35 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ nixos-config/
| Key | Action | | Key | Action |
|---|---| |---|---|
| `Mod+T` | Open kitty terminal | | `Mod+T` | Open ghostty terminal |
| `Mod+Space` | Noctalia launcher | | `Mod+Space` | Noctalia launcher |
| `Mod+S` | Noctalia control center | | `Mod+S` | Noctalia control center |
| `Super+Alt+L` | Lock screen | | `Super+Alt+L` | Lock screen |
+2 -1
View File
@@ -7,6 +7,7 @@
imports = [ imports = [
../modules/niri ../modules/niri
../modules/kitty ../modules/kitty
../modules/ghostty
../modules/cli ../modules/cli
../modules/applications ../modules/applications
]; ];
@@ -15,7 +16,7 @@
home.activation.zenBrowserUserJs = lib.hm.dag.entryAfter [ "writeBoundary" ] '' home.activation.zenBrowserUserJs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
for profile in "$HOME/.config/zen/"*.*/; do for profile in "$HOME/.config/zen/"*.*/; do
[[ -d "$profile" ]] || continue [[ -d "$profile" ]] || continue
echo 'user_pref("mousewheel.default.delta_multiplier_y", 50);' > "$profile/user.js" echo 'user_pref("mousewheel.default.delta_multiplier_y", 75);' > "$profile/user.js"
done done
''; '';
+5 -3
View File
@@ -20,9 +20,6 @@
xdg-utils xdg-utils
inotify-tools inotify-tools
# Editor
vscodium
# Daily apps # Daily apps
mpv mpv
imv imv
@@ -39,6 +36,7 @@
swappy swappy
libreoffice libreoffice
telegram-desktop telegram-desktop
megasync
pavucontrol pavucontrol
blueman blueman
@@ -106,4 +104,8 @@
LC_PAPER = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8";
}; };
}; };
programs.vscodium = {
enable = true;
};
} }
+17
View File
@@ -0,0 +1,17 @@
{ ... }:
{
programs.ghostty = {
enable = true;
settings = {
font-family = "JetBrainsMono Nerd Font";
font-size = 11;
theme = "Catppuccin Mocha";
window-decoration = false;
# Disable ligatures
font-feature = [ "-liga" "-dlig" "-calt" ];
};
};
}
+1 -1
View File
@@ -2,6 +2,6 @@
{ {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings.wheel_scroll_multiplier = 10; settings.wheel_scroll_multiplier = 300;
}; };
} }
+7 -2
View File
@@ -38,7 +38,7 @@ input {
natural-scroll natural-scroll
// accel-speed 0.2 // accel-speed 0.2
accel-profile "flat" accel-profile "flat"
scroll-factor 1.0 scroll-factor 0.3
// scroll-method "two-finger" // scroll-method "two-finger"
// disabled-on-external-mouse // disabled-on-external-mouse
} }
@@ -364,7 +364,7 @@ binds {
Mod+Shift+Slash { show-hotkey-overlay; } Mod+Shift+Slash { show-hotkey-overlay; }
// Suggested binds for running programs: terminal, app launcher, screen locker. // Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+T hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; } Mod+T hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; }
Mod+Space hotkey-overlay-title="Noctalia: Launcher" { spawn "noctalia-ipc" "panel-toggle" "launcher"; } Mod+Space hotkey-overlay-title="Noctalia: Launcher" { spawn "noctalia-ipc" "panel-toggle" "launcher"; }
Mod+S hotkey-overlay-title="Noctalia: Control Center" { spawn "noctalia-ipc" "panel-toggle" "control-center"; } Mod+S hotkey-overlay-title="Noctalia: Control Center" { spawn "noctalia-ipc" "panel-toggle" "control-center"; }
Super+Alt+L hotkey-overlay-title="Noctalia: Lock" { spawn "noctalia-ipc" "session" "lock"; } Super+Alt+L hotkey-overlay-title="Noctalia: Lock" { spawn "noctalia-ipc" "session" "lock"; }
@@ -683,3 +683,8 @@ window-rule {
open-floating true open-floating true
} }
window-rule {
match app-id="zen"
open-on-workspace "2"
}
+68 -24
View File
@@ -1,5 +1,6 @@
{ config, inputs, pkgs, ... }: { config, inputs, pkgs, ... }:
let let
# Repo wallpapers are symlinked to ~/.config/wallpapers by xdg.configFile below
wallpaperDir = "${config.home.homeDirectory}/.config/wallpapers"; wallpaperDir = "${config.home.homeDirectory}/.config/wallpapers";
defaultWallpaper = "${wallpaperDir}/even-in-arcadia.png"; defaultWallpaper = "${wallpaperDir}/even-in-arcadia.png";
@@ -13,24 +14,38 @@ in
home.packages = [ noctaliaIpc ]; home.packages = [ noctaliaIpc ];
# Wallpapers tracked in the repo; linked to ~/.config/wallpapers for noctalia # Wallpapers tracked in the repo; symlinked to ~/.config/wallpapers for noctalia
xdg.configFile."wallpapers".source = ./wallpapers; xdg.configFile."wallpapers".source = ./wallpapers;
programs.noctalia = { programs.noctalia = {
enable = true; enable = true;
settings = { settings = {
bar.default = {
# "group:sysmon" renders as one capsule containing cpu + ram
start = [ "launcher" "clipboard" "group:sysmon" "network" ];
center = [ "clock" ];
end = [ "notifications" "volume" "brightness" "battery" "control-center" "session" ];
thickness = 40;
padding = 10;
radius = 0;
margin_edge = 0;
margin_ends = 0;
widget_spacing = 8;
bar.default = {
start = [ "launcher" "clipboard" "volume" "brightness" "active_window" ];
center = [ "workspaces" ];
end = [ "network" "sysmon" "battery" "notifications" "clock" "session" ];
thickness = 35;
padding = 17;
radius = 17;
margin_edge = 5;
margin_ends = 5;
margin_opposite_edge = 5;
widget_spacing = 15;
background_opacity = 0.9;
border = "outline";
capsule = true;
capsule_fill = "surface_variant";
capsule_opacity = 1.0;
capsule_padding = 6.0;
capsule_thickness = 0.76;
contact_shadow = true;
panel_overlap = 1;
shadow = true;
hover_highlight = true;
concave_edge_corners = true;
# cpu + ram rendered as one capsule labelled "sysmon"
capsule_group = [ capsule_group = [
{ {
id = "sysmon"; id = "sysmon";
@@ -42,18 +57,43 @@ in
]; ];
}; };
idle = { dock = {
behavior_order = [ "lock" "screen-off" ];
behavior = {
lock = {
action = "lock";
enabled = true; enabled = true;
timeout = 600; # Desktop entry IDs (filename without .desktop)
pinned = [ "zen" "codium" "ghostty" "thunar" "claude-desktop" ];
position = "bottom";
smart_auto_hide = true;
icon_size = 20;
radius = 15;
show_dots = true;
show_running = true;
show_instance_count = true;
magnification = true;
magnification_scale = 1.35;
background_opacity = 1.0;
border = "outline";
concave_edge_corners = true;
shadow = true;
main_axis_padding = 20;
cross_axis_padding = 10;
item_spacing = 5;
inactive_opacity = 0.85;
inactive_scale = 0.85;
}; };
idle = {
# screen turns off first, then locks after
behavior_order = [ "screen-off" "lock" ];
behavior = {
screen-off = { screen-off = {
action = "screen_off"; action = "screen_off";
enabled = true; enabled = true;
timeout = 660; timeout = 300; # 5 min
};
lock = {
action = "lock";
enabled = true;
timeout = 600; # 10 min
}; };
}; };
}; };
@@ -68,24 +108,28 @@ in
font_family = "JetBrainsMono Nerd Font"; font_family = "JetBrainsMono Nerd Font";
polkit_agent = true; polkit_agent = true;
corner_radius_scale = 1.0; corner_radius_scale = 1.0;
animation.speed = 1.5; animation.speed = 2.0;
panel = { panel = {
clipboard_placement = "attached"; clipboard_placement = "attached";
launcher_placement = "attached"; launcher_placement = "attached";
launcher_session_search = true;
panel_overlap = 1; # pull panel flush against bar to hide seam
contact_shadow = true; # gradient at meeting point masks any residual gap
}; };
shadow.alpha = 0.5; shadow.alpha = 0.5;
}; };
theme.builtin = "Kanagawa"; # Theme follows wallpaper colours (Catppuccin palette, muted scheme, dark mode)
theme = {
builtin = "Catppuccin";
source = "wallpaper";
mode = "dark";
wallpaper_scheme = "muted";
};
wallpaper = { wallpaper = {
enabled = true; enabled = true;
directory = wallpaperDir; directory = wallpaperDir;
default.path = defaultWallpaper; default.path = defaultWallpaper;
}; };
}; };
}; };
} }
+30
View File
@@ -105,9 +105,39 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Run prebuilt/foreign dynamically-linked Linux binaries (e.g. games)
# that expect a standard FHS-style dynamic linker.
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
stdenv.cc.cc.lib
zlib
openssl
curl
libGL
libglvnd
glib
fontconfig
freetype
alsa-lib
# SDL2 windowing backends (Wayland + XWayland fallback) — needed for
# prebuilt games (e.g. Ren'Py) to open a window at all.
wayland
libxkbcommon
libdecor
xorg.libX11
xorg.libXext
xorg.libXcursor
xorg.libXi
xorg.libXfixes
xorg.libXrandr
xorg.libXScrnSaver
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
claude-code claude-code
git git
chromium
]; ];
services.openssh = { services.openssh = {