Compare commits
4
Commits
59624cad0a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
761ef128ef | ||
|
|
299709f0eb | ||
|
|
f9a2c476cb | ||
|
|
b9aeb8bbd5 |
@@ -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 |
|
||||||
|
|||||||
@@ -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
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
{
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.wheel_scroll_multiplier = 10;
|
settings.wheel_scroll_multiplier = 300;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
let
|
let
|
||||||
wallpaperDir = "${config.home.homeDirectory}/.config/wallpapers";
|
# Repo wallpapers are symlinked to ~/.config/wallpapers by xdg.configFile below
|
||||||
|
wallpaperDir = "${config.home.homeDirectory}/.config/wallpapers";
|
||||||
defaultWallpaper = "${wallpaperDir}/even-in-arcadia.png";
|
defaultWallpaper = "${wallpaperDir}/even-in-arcadia.png";
|
||||||
|
|
||||||
noctaliaIpc = pkgs.writeShellScriptBin "noctalia-ipc" ''
|
noctaliaIpc = pkgs.writeShellScriptBin "noctalia-ipc" ''
|
||||||
@@ -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
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dock = {
|
||||||
|
enabled = true;
|
||||||
|
# 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 = {
|
idle = {
|
||||||
behavior_order = [ "lock" "screen-off" ];
|
# screen turns off first, then locks after
|
||||||
|
behavior_order = [ "screen-off" "lock" ];
|
||||||
behavior = {
|
behavior = {
|
||||||
lock = {
|
|
||||||
action = "lock";
|
|
||||||
enabled = true;
|
|
||||||
timeout = 600;
|
|
||||||
};
|
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
Reference in New Issue
Block a user