mirror of
https://github.com/zephrynis/nix-flake.git
synced 2026-02-18 20:21:53 +00:00
feat: integrate spicetify-nix for Spotify customization, add steam and add hyprlock configuration
This commit is contained in:
55
flake.lock
generated
55
flake.lock
generated
@@ -94,7 +94,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -447,6 +447,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762363567,
|
||||||
|
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759036355,
|
"lastModified": 1759036355,
|
||||||
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
||||||
@@ -492,9 +508,29 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"spicetify-nix": "spicetify-nix",
|
||||||
"vicinae": "vicinae"
|
"vicinae": "vicinae"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"spicetify-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762718300,
|
||||||
|
"narHash": "sha256-oOQimZTaV1jCw0OBmmK2g7Rdj3E8YGVpkJYD32BWKRQ=",
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"rev": "c7175bd485ed5052df5075fcdde395b631316e94",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
@@ -525,10 +561,25 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vicinae": {
|
"vicinae": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761603305,
|
"lastModified": 1761603305,
|
||||||
|
|||||||
@@ -25,11 +25,14 @@
|
|||||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
ags.inputs.astal.follows = "astal";
|
ags.inputs.astal.follows = "astal";
|
||||||
|
|
||||||
|
# Spicetify - Spotify customization
|
||||||
|
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||||
|
|
||||||
# Optional: Other useful inputs
|
# Optional: Other useful inputs
|
||||||
# nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
# nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, home-manager, hyprland, vicinae, astal, ags, ... }@inputs: {
|
outputs = { self, nixpkgs, home-manager, hyprland, vicinae, astal, ags, spicetify-nix, ... }@inputs: {
|
||||||
# NixOS configuration for your hostname(s)
|
# NixOS configuration for your hostname(s)
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
# Desktop PC configuration
|
# Desktop PC configuration
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./ags.nix
|
./ags.nix
|
||||||
|
inputs.spicetify-nix.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager configuration for user-level dotfiles and applications
|
# Home Manager configuration for user-level dotfiles and applications
|
||||||
@@ -67,6 +68,8 @@
|
|||||||
wofi # App launcher
|
wofi # App launcher
|
||||||
rofi-bluetooth # Bluetooth menu
|
rofi-bluetooth # Bluetooth menu
|
||||||
networkmanagerapplet # WiFi manager applet for system tray
|
networkmanagerapplet # WiFi manager applet for system tray
|
||||||
|
hyprlock # Screen locker for Hyprland
|
||||||
|
hypridle # Idle daemon for Hyprland (auto-lock)
|
||||||
# rofi-wayland # Alternative launcher
|
# rofi-wayland # Alternative launcher
|
||||||
|
|
||||||
# Wayland utilities
|
# Wayland utilities
|
||||||
@@ -228,6 +231,91 @@
|
|||||||
home.file.".config/waybar/config".source = ./waybar-config.json;
|
home.file.".config/waybar/config".source = ./waybar-config.json;
|
||||||
home.file.".config/waybar/style.css".source = ./waybar-style.css;
|
home.file.".config/waybar/style.css".source = ./waybar-style.css;
|
||||||
|
|
||||||
|
# Hyprlock configuration
|
||||||
|
home.file.".config/hypr/hyprlock.conf".text = ''
|
||||||
|
# Hyprlock configuration
|
||||||
|
# Documentation: https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
||||||
|
|
||||||
|
# General settings
|
||||||
|
general {
|
||||||
|
hide_cursor = true
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Background
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = screenshot # Use a blurred screenshot of current screen
|
||||||
|
blur_passes = 3
|
||||||
|
blur_size = 8
|
||||||
|
noise = 0.0117
|
||||||
|
contrast = 0.8916
|
||||||
|
brightness = 0.8172
|
||||||
|
vibrancy = 0.1696
|
||||||
|
vibrancy_darkness = 0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Input field
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 250, 50
|
||||||
|
outline_thickness = 3
|
||||||
|
dots_size = 0.33
|
||||||
|
dots_spacing = 0.15
|
||||||
|
dots_center = true
|
||||||
|
|
||||||
|
outer_color = rgba(4a7aa1ee) # Match your theme accent color
|
||||||
|
inner_color = rgba(050a0eff) # Match your theme background
|
||||||
|
font_color = rgb(cdd6f4)
|
||||||
|
fade_on_empty = true
|
||||||
|
|
||||||
|
placeholder_text = <span foreground="##cdd6f4">Password...</span>
|
||||||
|
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# Time
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "$(date +"%H:%M")"
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 120
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, 80
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# Date
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 24
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, -10
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# User label
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = Hi there, $USER
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 18
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, -80
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
# Screenshot script
|
# Screenshot script
|
||||||
home.file.".local/bin/screenshot" = {
|
home.file.".local/bin/screenshot" = {
|
||||||
source = ./scripts/screenshot.sh;
|
source = ./scripts/screenshot.sh;
|
||||||
@@ -242,6 +330,16 @@
|
|||||||
|
|
||||||
# Flatpaks are managed in system/flatpak.nix
|
# Flatpaks are managed in system/flatpak.nix
|
||||||
|
|
||||||
|
# Spicetify - Spotify customization with adblock
|
||||||
|
programs.spicetify = let
|
||||||
|
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
adblock
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Let Home Manager manage itself
|
# Let Home Manager manage itself
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
# "dunst" # Disabled - colorshell handles notifications
|
# "dunst" # Disabled - colorshell handles notifications
|
||||||
"nm-applet --indicator" # WiFi manager in system tray
|
"nm-applet --indicator" # WiFi manager in system tray
|
||||||
"vicinae server" # Start Vicinae server
|
"vicinae server" # Start Vicinae server
|
||||||
|
|
||||||
|
# Lock screen after a short delay (let Hyprland initialize first)
|
||||||
|
"sleep 2 && hyprlock"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Environment variables
|
# Environment variables
|
||||||
@@ -173,6 +176,9 @@
|
|||||||
"$mod, Print, exec, $HOME/.local/bin/screenshot full" # Full screen
|
"$mod, Print, exec, $HOME/.local/bin/screenshot full" # Full screen
|
||||||
"$mod SHIFT, Print, exec, $HOME/.local/bin/screenshot window" # Active window
|
"$mod SHIFT, Print, exec, $HOME/.local/bin/screenshot window" # Active window
|
||||||
|
|
||||||
|
# Lock screen
|
||||||
|
"$mod, L, exec, hyprlock"
|
||||||
|
|
||||||
# Scroll through workspaces
|
# Scroll through workspaces
|
||||||
"$mod, mouse_down, workspace, e+1"
|
"$mod, mouse_down, workspace, e+1"
|
||||||
"$mod, mouse_up, workspace, e-1"
|
"$mod, mouse_up, workspace, e-1"
|
||||||
|
|||||||
82
home/hyprlock.conf
Normal file
82
home/hyprlock.conf
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# Hyprlock configuration
|
||||||
|
# Documentation: https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
||||||
|
|
||||||
|
# General settings
|
||||||
|
general {
|
||||||
|
grace = 3 # Seconds before lock screen is shown
|
||||||
|
hide_cursor = true
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Background
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = screenshot # Use a blurred screenshot of current screen
|
||||||
|
blur_passes = 3
|
||||||
|
blur_size = 8
|
||||||
|
noise = 0.0117
|
||||||
|
contrast = 0.8916
|
||||||
|
brightness = 0.8172
|
||||||
|
vibrancy = 0.1696
|
||||||
|
vibrancy_darkness = 0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Input field
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 250, 50
|
||||||
|
outline_thickness = 3
|
||||||
|
dots_size = 0.33
|
||||||
|
dots_spacing = 0.15
|
||||||
|
dots_center = true
|
||||||
|
|
||||||
|
outer_color = rgba(4a7aa1ee) # Match your theme accent color
|
||||||
|
inner_color = rgba(050a0eff) # Match your theme background
|
||||||
|
font_color = rgb(cdd6f4)
|
||||||
|
fade_on_empty = true
|
||||||
|
|
||||||
|
placeholder_text = <span foreground="##cdd6f4">Password...</span>
|
||||||
|
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# Time
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "$(date +"%H:%M")"
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 120
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, 80
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# Date
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 24
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, -10
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# User label
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = Hi there, $USER
|
||||||
|
color = rgba(cdd6f4ff)
|
||||||
|
font_size = 18
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
|
||||||
|
position = 0, -80
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
@@ -11,18 +11,24 @@
|
|||||||
|
|
||||||
networking.hostName = "zeph-desktop";
|
networking.hostName = "zeph-desktop";
|
||||||
|
|
||||||
# Configure monitors for SDDM (display manager)
|
# Configure monitors for login screen (display manager)
|
||||||
# This ensures the login screen appears on the 1440p monitor
|
|
||||||
services.displayManager.sddm.settings = {
|
services.displayManager.sddm.settings = {
|
||||||
General = {
|
General = {
|
||||||
DisplayServer = "wayland";
|
DisplayServer = "wayland";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Wayland-specific settings
|
||||||
|
Wayland = {
|
||||||
|
SessionDir = "/run/current-system/sw/share/wayland-sessions";
|
||||||
|
CompositorCommand = "${pkgs.hyprland}/bin/Hyprland -c /etc/sddm/hyprland.conf";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create a Hyprland config for SDDM to set monitor order
|
# Create a Hyprland config for SDDM to set monitor order
|
||||||
|
# DP-2 (1440p 165Hz) is primary on the left, DP-1 (4K 60Hz) is secondary on the right
|
||||||
environment.etc."sddm/hyprland.conf".text = ''
|
environment.etc."sddm/hyprland.conf".text = ''
|
||||||
monitor=DP-2,2560x1440@165,0x0,1
|
monitor=DP-2,2560x1440@165,0x0,1
|
||||||
monitor=DP-1,3840x2160@60,2560x0,1
|
monitor=DP-1,3840x2160@60,2560x0,1.5
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Desktop-specific packages (gaming, streaming, etc.)
|
# Desktop-specific packages (gaming, streaming, etc.)
|
||||||
@@ -39,6 +45,6 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Gaming support (uncomment if needed)
|
# Gaming support (uncomment if needed)
|
||||||
# programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
# programs.gamemode.enable = true;
|
programs.gamemode.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,12 +31,23 @@
|
|||||||
# Exclude xterm (we use alacritty instead)
|
# Exclude xterm (we use alacritty instead)
|
||||||
services.xserver.excludePackages = [ pkgs.xterm ];
|
services.xserver.excludePackages = [ pkgs.xterm ];
|
||||||
|
|
||||||
# Display manager - SDDM with Wayland support
|
# PAM service for hyprlock (required for hyprlock to work)
|
||||||
services.displayManager.sddm = {
|
security.pam.services.hyprlock = {};
|
||||||
|
|
||||||
|
# Display manager - greetd with autologin to Hyprland
|
||||||
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland.enable = true;
|
settings.default_session = {
|
||||||
|
command = "Hyprland";
|
||||||
|
user = "zeph";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Environment for greeter
|
||||||
|
environment.etc."greetd/environments".text = ''
|
||||||
|
Hyprland
|
||||||
|
'';
|
||||||
|
|
||||||
# Fonts (shared across all machines)
|
# Fonts (shared across all machines)
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
@@ -104,7 +115,7 @@
|
|||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# System-wide packages
|
# System-wide packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
wget
|
wget
|
||||||
@@ -114,6 +125,8 @@
|
|||||||
neofetch
|
neofetch
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
# Steam (system-wide)
|
||||||
|
steam
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable flakes
|
# Enable flakes
|
||||||
|
|||||||
19
system/sddm/theme.conf
Normal file
19
system/sddm/theme.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[General]
|
||||||
|
# Background - use solid color since we don't have a specific wallpaper yet
|
||||||
|
background=#050a0e
|
||||||
|
backgroundMode=fill
|
||||||
|
|
||||||
|
# Colors matching your dark pale blue theme
|
||||||
|
primaryColor=#4a7aa1
|
||||||
|
accentColor=#2a5d82
|
||||||
|
backgroundColor=#050a0e
|
||||||
|
|
||||||
|
# Font
|
||||||
|
font=FiraCode Nerd Font
|
||||||
|
fontSize=12
|
||||||
|
|
||||||
|
# Layout
|
||||||
|
showUsersByDefault=true
|
||||||
|
|
||||||
|
# Blur effect
|
||||||
|
blurRadius=50
|
||||||
Reference in New Issue
Block a user