added hypridle, hyprlock, and sddm + sddm-theme-corners

This commit is contained in:
Emile Clark-Boman 2024-11-08 14:26:30 +10:00
parent aca0bcc993
commit 97b344eb03
11 changed files with 445 additions and 196 deletions

8
INSPIRATION Normal file
View file

@ -0,0 +1,8 @@
Godlike
https://github.com/end-4/dots-hyprland
Gorgeous
https://github.com/prasanthrangan/hyprdots
Very nice
https://github.com/linuxmobile/hyprland-dots

View file

@ -81,3 +81,5 @@ Really great starter config for learning how parts interact and how to generally
Wiki page explaining how to install fonts and nerd fonts on NixOS
4. https://github.com/adi1090x/rofi
For the Rofi theme
5. https://github.com/zDyanTB/HyprNova
For the really cool hyprlock theme

28
TODO
View file

@ -17,6 +17,12 @@ Get hyprcursor working with Bibata-Modern-Ice
Get waybar (or another bar) working
Get a GRUB theme working
Get SDDM and a theme working
Overtime just install more programs that I need regularly: ie
- btop/htop/etc
@ -24,12 +30,6 @@ Overtime just install more programs that I need regularly: ie
Get a QT theme
Get waybar (or another bar) working
Get a GRUB theme working
Get SDDM and a theme working
Fix pipewire audio is so incredibly low (happens on laptop and PC)
@ -48,28 +48,32 @@ Get GTK Bibata Cursors to be the same size as my system cursor
Fix: your 131072x1 screen size is bogus. expect trouble
Are there plugins for helix?
Search for all "TODO" items in my nix dotfiles
Push nixdots to github
Check out the Ekala Project (I joined their discord server)
Create a program that enables/disables passwordless sudo access
(add to github too)
Have helix editor look differently depending on language
(specifically don't show indent indicators when editing nix files
Learn to package my own home-manager modules
Ideal Features:
1. AI assistant
2. searching can also be used to calculate stuff (like I do on my iPad)
Fork nixcord and fix documentation (the installation is confusing)
But firstly the first code snippet is wrong...

1
deploy
View file

@ -1,2 +1,3 @@
#!/usr/bin/env bash
sudo nixos-rebuild switch --flake .
#nixos-rebuild build --flake .# --cores 8 -j 1

View file

@ -72,12 +72,233 @@
# TODO: this lowkey doesnt work... (maybe the name "Dracula" is wrong?)
qt = {
enable = true;
style = {
name = "Dracula";
package = pkgs.dracula-qt5-theme;
platformTheme.name = "gtk2";
style.name = "gtk2";
};
services.hypridle = {
enable = true;
settings = {
general = {
ignore_dbus_inhibit = false;
lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
};
listener = [
{
timeout = 600;
on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
}
{
timeout = 660;
on-timeout = "systemctl suspend";
}
];
};
};
programs.hyprlock = {
enable = true;
settings = {
background = {
monitor = "";
path = "$HOME/downloads/1.png"; # only png supported for now
# color = $color1
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 4;
blur_passes = 3; # 0 disables blurring
noise = 0.0117;
contrast = 1.3000; # Vibrant!!!
brightness = 0.8000;
vibrancy = 0.2100;
vibrancy_darkness = 0.0;
};
label = [
{
# Hours
monitor = "";
text = ''cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 112;
font_family = "Geist Mono 10";
shadow_passes = 3;
shadow_size = 4;
position = "0, 240";
halign = "center";
valign = "center";
}
{
# Minutes
monitor = "";
text = ''cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 112;
font_family = "Geist Mono 10";
shadow_passes = 3;
shadow_size = 4;
position = "0, 120";
halign = "center";
valign = "center";
}
# Today
{
monitor = "";
text = ''cmd[update:18000000] echo "<b><big> "$(date +'%A')" </big></b>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 22;
font_family = "JetBrainsMono Nerd Font 10";
position = "0, 30";
halign = "center";
valign = "center";
}
# Week
{
monitor = "";
text = ''cmd[update:18000000] echo "<b> "$(date +'%d %b')" </b>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 18;
font_family = "JetBrainsMono Nerd Font 10";
position = "0, 6";
halign = "center";
valign = "center";
}
{
# Degrees
monitor = "";
# get temperature in Brisbane
text = ''cmd[update:18000000] echo "<b>Feels like<big> $(curl -s 'wttr.in/bne?format=%t' | tr -d '+') </big></b>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 18;
font_family = "Geist Mono 10";
position = "0, 40";
halign = "center";
valign = "bottom";
}
];
input-field = {
monitor = "";
size = "300, 50";
outline_thickness = 3;
dots_size = 0.26; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true;
dots_rouding = -1;
rounding = 22;
outer_color = "rgb(255, 0, 0, 1)";
inner_color = "rgb(0, 255, 0, 1)";
font_color = "rgb(0, 0, 255, 1)";
fade_on_empty = true;
placeholder_text = "!!Super Secret!!"; # Text rendered in the input box when it's empty.
position = "0, 120";
halign = "center";
valign = "bottom";
};
};
};
/*
programs.hyprlock = {
enable = true;
settings = {
general = {
grace = 5;
no_fade_in = false;
disable_loading_bar = false;
};
# BACKGROUND
background = {
monitor = "";
path = "../../../downloads/1.png";
blur_passes = 0;
contrast = 0.8916;
brightness = 0.7172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
};
label = [
{
# Day-Month-Date
monitor = "";
text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"'';
color = "rgb(255, 255, 255, 1)";
font_size = 28;
font_family = "JetBrainsMono Nerd Font Bold";
position = "0, 490";
halign = "center";
valign = "center";
}
# Time
{
monitor = "";
text = ''cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"'';
color = "rgb(255, 255, 255, 1)";
font_size = 160;
font_family = "steelfish outline regular";
position = "0, 370";
halign = "center";
valign = "center";
}
# USER
{
monitor = "";
text = " $USER";
color = "rgb(255, 255, 255, 1)";
outline_thickness = 2;
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true;
font_size = 18;
font_family = "JetBrainsMono Nerd Font Bold";
position = "0, -180";
halign = "center";
valign = "center";
}
];
# INPUT FIELD
input-field = [
{
monitor = "";
size = "300, 60";
outline_thickness = 2;
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true;
outer_color = "rgba(255, 255, 255, 0)";
inner_color = "rgba(255, 255, 255, 0.1)";
font_color = "rgb(255, 255, 255, 1)";
fade_on_empty = false;
font_family = "JetBrainsMono Nerd Font Bold";
placeholder_text = "<i>🔒 Enter Password</i>";
hide_input = false;
position = "0, -250";
halign = "center";
valign = "center";
}
];
};
};
*/
programs = {
# these are both required for home-manager to work
home-manager.enable = true;
@ -138,6 +359,7 @@
completion-replace = true; # completions replace entire word
indent-heuristic = "tree-sitter"; # how indentation is computed
# TODO: make this configurable (enabled on myputer, disabled on lolcathost)
middle-click-paste = true;
insert-final-newline = true; # append newline to file on write
@ -361,7 +583,7 @@
# Run when the `OpenConfigEditor` keybinding is triggered
editor = {
program = "nvim";
program = "hx"; # helix
args = [];
};

View file

@ -66,18 +66,17 @@ in {
# ----- SERVICES -----
services = {
# Set display manager (login screen)
#displayManager = {
# sddm = {
# enable = true;
# #theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
# wayland.enable = true; # enable experimental sddm support for wayland
# };
# defaultSession = "hyprland";
#};
displayManager = {
sddm = {
enable = true;
wayland.enable = true; # enable experimental sddm support for wayland
theme = "${import ./sddm-theme-corners.nix {inherit pkgs;}}";
};
defaultSession = "hyprland";
};
# Enable sound
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
#hardware.pulseaudio.enable = false;
pipewire = {
enable = true;
@ -95,6 +94,7 @@ in {
tumbler.enable = true; # Thunar image thumbnail support
gvfs.enable = true; # Thunar mount, trash, and other functionality
};
security.rtkit.enable = true;
# allow wheel group to use passwordless sudo
users = {
@ -174,6 +174,7 @@ in {
zoxide
doggo
tldr
btop
# Pretty necessary
git
@ -235,6 +236,7 @@ in {
# ];
# })
nerdfonts
geist-font # for my hyprlock theme
# texlive maintains a noto-emoji flake
texlivePackages.noto-emoji

View file

@ -1,11 +1,15 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "sd_mod"];
@ -13,19 +17,19 @@
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4bf649ce-047b-472d-b392-4c2c326362d9";
fileSystems."/" = {
device = "/dev/disk/by-uuid/4bf649ce-047b-472d-b392-4c2c326362d9";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/D97A-5260";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D97A-5260";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/bfa29193-4f83-46c3-bcb7-0d2b8323b6e0"; }
swapDevices = [
{device = "/dev/disk/by-uuid/bfa29193-4f83-46c3-bcb7-0d2b8323b6e0";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -0,0 +1,17 @@
{pkgs}: {
sddm-theme-corners = pkgs.stdenv.mkDerivation rec {
pname = "sddm-theme-corners";
#version = "1.0";
#dontBuild = true;
installPhase = ''
mkdir -p $out/share/sddm/themes
cp -ar $src/corners $out/share/sddm/themes/
'';
src = pkgs.fetchFromGitHub {
owner = "aczw";
repo = "sddm-theme-corners";
rev = "6ff0ff455261badcae36cd7d151a34479f157a3c";
sha256 = "0iiasrbl7ciyhq3z02la636as915zk9ph063ac7vm5iwny8vgwh8";
};
};
}

View file

@ -2,26 +2,21 @@
pkgs,
inputs,
...
}:
let
}: let
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
sha256 = "0kg9iaixqygpncw7avgh1grwyjgnfc9i7k9pk8hc4xrvr8jv2l3c";
};
in
{
in {
imports = [
./hardware-configuration.nix
(import "${home-manager}/nixos")
inputs.spicetify-nix.nixosModules.default
];
programs.spicetify =
let
programs.spicetify = let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
in {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
@ -32,8 +27,6 @@ in
#colorScheme = "mocha";
};
# Use the systemd-boot EFI boot loader.
# TODO: use GRUB2 instead
#boot.loader.systemd-boot.enable = true;
@ -61,7 +54,6 @@ in
#useXkbConfig = true; # use xkb.options in tty.
};
# ----- NETWORKING SECTION -----
networking.hostName = "myputer";
# Pick only one of the below networking options.
@ -74,7 +66,6 @@ in
# Or disable the firewall altogether.
networking.firewall.enable = true;
# ----- SERVICES -----
services = {
# Set display manager (login screen)
@ -191,7 +182,6 @@ in
#systemd.enable = true;
};
zsh.enable = true;
fish.enable = true;
@ -223,20 +213,22 @@ in
};
};
# ----- FONTS -----
fonts = {
enableDefaultPackages = true; # no clue what this line does tbh
packages = with pkgs; [
(nerdfonts.override { fonts = [ "Cousine" # its already i guess
(nerdfonts.override {
fonts = [
"Cousine" # its already i guess
"Iosevka" # nah nah
"IosevkaTerm" # big nah
"CascadiaCode" # potential
"FiraCode" # potential
"JetBrainsMono" # for my rofi theme
"Hasklig"
"Hack"]; })
"Hack"
];
})
# texlive maintains a noto-emoji flake
texlivePackages.noto-emoji
@ -252,7 +244,6 @@ in
};
};
# ----- STYLIX -----
#stylix = {
@ -268,8 +259,6 @@ in
# #image = "/home/me/nixdots/wallpapers/ghibli-esque-valley.png";
#};
# Enable the new CLI commands and the flakes as experimental features
nix.settings.experimental-features = [
"nix-command"
@ -287,16 +276,11 @@ in
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable OpenGL
hardware = {
graphics.enable = true;
};
# DO NOT MODIFY
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -1,11 +1,15 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
@ -13,20 +17,22 @@
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/ff19e1b0-cacc-4270-a94b-7922f7224ae2";
fileSystems."/" = {
device = "/dev/disk/by-uuid/ff19e1b0-cacc-4270-a94b-7922f7224ae2";
fsType = "ext4";
};
#fileSystems."/boot" = # BIOS
fileSystems."/boot" = # UEFI
{ device = "/dev/disk/by-uuid/7046-177A";
fileSystems."/boot" =
# UEFI
{
device = "/dev/disk/by-uuid/7046-177A";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/7f7e9d69-78e0-49f1-b792-6be26ed8e040"; }
swapDevices = [
{device = "/dev/disk/by-uuid/7f7e9d69-78e0-49f1-b792-6be26ed8e040";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1 +0,0 @@
nixos-rebuild build --flake .# --cores 8 -j 1