mirror of
https://github.com/zephrynis/nix-flake.git
synced 2026-02-18 12:11:54 +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": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
@@ -447,6 +447,22 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1759036355,
|
||||
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
||||
@@ -492,9 +508,29 @@
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
@@ -525,10 +561,25 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761603305,
|
||||
|
||||
@@ -25,11 +25,14 @@
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
ags.inputs.astal.follows = "astal";
|
||||
|
||||
# Spicetify - Spotify customization
|
||||
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||
|
||||
# Optional: Other useful inputs
|
||||
# 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)
|
||||
nixosConfigurations = {
|
||||
# Desktop PC configuration
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./ags.nix
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
];
|
||||
|
||||
# Home Manager configuration for user-level dotfiles and applications
|
||||
@@ -67,6 +68,8 @@
|
||||
wofi # App launcher
|
||||
rofi-bluetooth # Bluetooth menu
|
||||
networkmanagerapplet # WiFi manager applet for system tray
|
||||
hyprlock # Screen locker for Hyprland
|
||||
hypridle # Idle daemon for Hyprland (auto-lock)
|
||||
# rofi-wayland # Alternative launcher
|
||||
|
||||
# Wayland utilities
|
||||
@@ -228,6 +231,91 @@
|
||||
home.file.".config/waybar/config".source = ./waybar-config.json;
|
||||
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
|
||||
home.file.".local/bin/screenshot" = {
|
||||
source = ./scripts/screenshot.sh;
|
||||
@@ -242,6 +330,16 @@
|
||||
|
||||
# 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
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
# "dunst" # Disabled - colorshell handles notifications
|
||||
"nm-applet --indicator" # WiFi manager in system tray
|
||||
"vicinae server" # Start Vicinae server
|
||||
|
||||
# Lock screen after a short delay (let Hyprland initialize first)
|
||||
"sleep 2 && hyprlock"
|
||||
];
|
||||
|
||||
# Environment variables
|
||||
@@ -173,6 +176,9 @@
|
||||
"$mod, Print, exec, $HOME/.local/bin/screenshot full" # Full screen
|
||||
"$mod SHIFT, Print, exec, $HOME/.local/bin/screenshot window" # Active window
|
||||
|
||||
# Lock screen
|
||||
"$mod, L, exec, hyprlock"
|
||||
|
||||
# Scroll through workspaces
|
||||
"$mod, mouse_down, 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";
|
||||
|
||||
# Configure monitors for SDDM (display manager)
|
||||
# This ensures the login screen appears on the 1440p monitor
|
||||
# Configure monitors for login screen (display manager)
|
||||
services.displayManager.sddm.settings = {
|
||||
General = {
|
||||
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
|
||||
# DP-2 (1440p 165Hz) is primary on the left, DP-1 (4K 60Hz) is secondary on the right
|
||||
environment.etc."sddm/hyprland.conf".text = ''
|
||||
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.)
|
||||
@@ -39,6 +45,6 @@
|
||||
];
|
||||
|
||||
# Gaming support (uncomment if needed)
|
||||
# programs.steam.enable = true;
|
||||
# programs.gamemode.enable = true;
|
||||
programs.steam.enable = true;
|
||||
programs.gamemode.enable = true;
|
||||
}
|
||||
|
||||
@@ -31,11 +31,22 @@
|
||||
# Exclude xterm (we use alacritty instead)
|
||||
services.xserver.excludePackages = [ pkgs.xterm ];
|
||||
|
||||
# Display manager - SDDM with Wayland support
|
||||
services.displayManager.sddm = {
|
||||
# PAM service for hyprlock (required for hyprlock to work)
|
||||
security.pam.services.hyprlock = {};
|
||||
|
||||
# Display manager - greetd with autologin to Hyprland
|
||||
services.greetd = {
|
||||
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.packages = with pkgs; [
|
||||
@@ -104,7 +115,7 @@
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
# System-wide packages
|
||||
# System-wide packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
wget
|
||||
@@ -114,6 +125,8 @@
|
||||
neofetch
|
||||
unzip
|
||||
zip
|
||||
# Steam (system-wide)
|
||||
steam
|
||||
];
|
||||
|
||||
# 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