Complete Overhaul of flake.nix

This commit is contained in:
DerGrumpf 2025-09-05 01:03:12 +02:00
parent 74bf1dc059
commit ebb83a7e8b
19 changed files with 757 additions and 670 deletions

View File

@ -577,7 +577,8 @@
"hyprland-plugins": "hyprland-plugins",
"nixcord": "nixcord",
"nixpkgs": "nixpkgs_4",
"spicetify-nix": "spicetify-nix"
"spicetify-nix": "spicetify-nix",
"unstable": "unstable"
}
},
"spicetify-nix": {
@ -629,6 +630,22 @@
"type": "github"
}
},
"unstable": {
"locked": {
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [

235
flake.nix
View File

@ -5,34 +5,35 @@
nixConfig = {
extra-substituters = [
"https://nix-community.cachix.org"
"https://hyprland.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
];
};
inputs = {
# Core
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Desktop ENV
hyprland.url = "github:hyprwm/Hyprland";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixcord.url = "github:kaylorben/nixcord";
/*
nixvim = {
url = "github:nix-community/nixvim/nixos-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
*/
catppuccin.url = "github:catppuccin/nix";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
# Customization
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixcord.url = "github:kaylorben/nixcord";
catppuccin.url = "github:catppuccin/nix";
# User Config
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
@ -43,113 +44,123 @@
catppuccin,
...
}:
{
packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
nixosConfigurations = {
iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
(
{ pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
environment.systemPackages = with pkgs; [
neovim
git
wget
curl
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
)
];
let
system = "x86_64-linux";
# Common Configuration
commonModules = [
(
{ config, ... }:
{
nix.settings = {
accept-flake-config = true;
experimental-features = [
"nix-command"
"flakes"
];
};
}
)
];
commonHomeManagerConfig =
{
username,
monitorSetup ? "single",
}:
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
extraSpecialArgs = {
inherit inputs;
inherit username monitorSetup;
};
users.${username} = import ./users/${username}/home.nix;
sharedModules = [
inputs.catppuccin.homeModules.catppuccin
inputs.nixcord.homeModules.nixcord
];
};
};
m920q =
let
username = "phil";
specialArgs = {
inherit inputs username;
};
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/m920q
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
home-manager.sharedModules = [
inputs.nixcord.homeModules.nixcord
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
];
# System Builder
mkSystem =
{
hostname,
username,
system ? "x86_64-linux",
monitorSetup ? "single",
extraModules ? [ ],
}:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username monitorSetup;
};
qemu =
let
username = "phil";
specialArgs = { inherit username; };
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/qemu
modules =
commonModules
++ [
./hosts/${hostname}
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
(commonHomeManagerConfig { inherit username monitorSetup; })
]
++ extraModules;
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
}
];
};
};
hp15-n028sg =
let
username = "phil";
specialArgs = { inherit username; };
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
# ISO configuration
isoConfig = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
(
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
neovim
git
wget
curl
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
)
];
};
modules = [
./hosts/hp15-n028sg
./users/${username}/nixos.nix
in
{
packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
nixosConfigurations = {
iso = isoConfig;
qemu = mkSystem {
hostname = "qemu";
username = "phil";
monitorSetup = "single";
};
m920q = mkSystem {
hostname = "m920q";
username = "phil";
monitorSetup = "dual";
};
hp15-n028sg = mkSystem {
hostname = "hp15-n028sg";
username = "phil";
monitorSetup = "dual";
};
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
}
];
};
};
};
}

40
home/hyprland/cava.nix Normal file
View File

@ -0,0 +1,40 @@
{ ... }:
{
programs.cava = {
enable = true;
settings = {
general = {
framerate = 120;
bars = 0;
bar_width = 2;
bar_spacing = 1;
#bar_height = 32;
sensitivity = 90;
autosens = 1;
};
input = {
method = "pipewire";
source = "auto";
sample_rate = 44100;
sample_bits = 16;
};
output = {
channels = "stereo";
mono_option = "average";
reverse = 0;
waveform = 0;
};
smoothing = {
monstercat = 1;
waves = 0;
noise_reduction = 0.77;
};
};
};
}

View File

@ -1,14 +1,29 @@
{ pkgs, ... }:
{ monitorSetup, ... }:
{
imports = [
./kitty.nix # Terminal
./alacritty.nix
./hyprland.nix
./hypridle.nix
./hyprlock.nix
./hyprpaper.nix
./rofi # App Launcher
./mako.nix # Notifyer
./cava.nix # Music Visualizer
];
programs.waybar =
if monitorSetup == "single" then
import ../../home/hyprland/waybar/single.nix
else if monitorSetup == "dual" then
import ../../home/hyprland/waybar/dual.nix
else
{ };
home.file.".config/waybar" = {
source = ./waybar/configs;
# copy the scripts directory recursively
recursive = true;
};
home.file.".config/hypr/hyprland.conf".enable = false;
}

View File

@ -7,7 +7,8 @@ let
theme = "-theme $HOME/.config/rofi/custom.rasi";
menu = "rofi -show drun ${theme}";
filebrowser = "rofi -show filebrowser ${theme}";
power = "rofi -show p -modi p:rofi-power-menu";
power = "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi";
apps = "rofi -show window ${theme}";
in
{
home.packages = with pkgs; [
@ -92,8 +93,8 @@ in
general = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 8;
gaps_out = 16;
gaps_in = 4;
gaps_out = 0;
border_size = 4;
"col.active_border" = "$green";
@ -106,10 +107,10 @@ in
};
decoration = {
rounding = 12;
rounding = 1;
shadow = {
enabled = true;
enabled = false;
range = 16;
render_power = 4;
ignore_window = true;
@ -182,27 +183,36 @@ in
"nofocus, class:^(xwaylandvideobridge)$"
];
# See further https://wiki.hypr.land/Configuring/Workspace-Rules/
exec-once = [
"waybar &"
"hyprpaper &"
"[workspace 8] obsidian"
"[workspace 1] floorp"
"[workspace 2] spotify"
"[workspace 2] kitty --class=cava-terminal -e cava"
"[workspace 3] thunderbird"
"[workspace 9] kitty"
];
# Keybindings
bind = [
# Application Bindings
"${super}, Q, exec, ${terminal}"
"${super}, C, killactive, "
"${super}, M, exit, "
"${super}, E, exec, ${fileManager}"
"${super}, V, togglefloating, "
"${super}, O, exec, obsidian"
"${super}, I, exec, floorp"
"${super}, G, exec, thunderbird"
# Lock Screen
"${super}, M, exit, "
# Rofi bindings
"${super}, f, exec, ${filebrowser}"
"${super}, A, exec, ${apps}"
"${super}, R, exec, ${menu}"
"${super}, S, exec, ${power}"
"${super}, F, exec, ${filebrowser}"
"${super}, P, pseudo, " # dwindle
"${super}, J, togglesplit, " # dwindle
"${super}, O, exec, obsidian"
"${super}, I, exec, firefox"
"${super}, G, exec, thunderbird"
# Move focus with mainMod + arrow keys
"${super}, left, movefocus, l"
@ -210,6 +220,12 @@ in
"${super}, up, movefocus, u"
"${super}, down, movefocus, d"
# Window Modifiers
"${super}, P, pseudo, " # dwindle
"${super}, J, togglesplit, " # dwindle
"${super}, V, togglefloating, " # dwindle
"${super}, C, killactive, "
# Switch workspaces with mainMod + [0-9]
"${super}, 1, workspace, 1"
"${super}, 2, workspace, 2"
@ -249,7 +265,7 @@ in
bindl = [
#", XF86AudioMute, exec, amixer set Master toggle
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioMute, exec, pamixer -t"
", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
@ -257,12 +273,10 @@ in
bindle = [
# Multi Media Control
", XF86AudioRaiseVolume, exec, vol --up"
", XF86AudioLowerVolume, exec, vol --down"
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
", XF86MonBrightnessUp, exec, bri --up"
", XF86MonBrightnessDown, exec, bri --down"
", XF86Search, exec, ${menu}"
];
bindm = [

View File

@ -52,9 +52,12 @@ window {
/* properties for all widgets */
enabled: true;
border-radius: 12px;
border-radius: 1px;
cursor: "default";
background-color: @base;
border: 4px;
border-color: @yellow;
}
/* Main Box */
@ -72,7 +75,7 @@ imagebox {
background-color: transparent;
background-image: url("~/.config/rofi/background.png", height);
orientation: vertical;
children: [ "inputbar", "dummy", "mode-switcher" ];
children: [ "inputbar", "weatherelement", "dummy", "mode-switcher" ];
}
listbox {
@ -83,6 +86,13 @@ listbox {
children: [ "message", "listview" ];
}
weatherelement {
border-radius: 20px;
background-color: transparent;
text-color: @peach;
str: "Hello This is text";
}
dummy {
background-color: transparent;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

View File

@ -0,0 +1,162 @@
* {
rosewater: #f5e0dc;
flamingo: #f2cdcd;
pink: #f5c2e7;
mauve: #cba6f7;
red: #f38ba8;
maroon: #eba0ac;
peach: #fab387;
yellow: #f9e2af;
green: #a6e3a1;
teal: #94e2d5;
sky: #89dceb;
sapphire: #74c7ec;
blue: #89b4fa;
lavender: #b4befe;
text: #cdd6f4;
subtext1: #bac2de;
subtext0: #a6adc8;
overlay2: #9399b2;
overlay1: #7f849c;
overlay0: #6c7086;
surface2: #585b70;
surface1: #45475a;
surface0: #313244;
base: #1e1e2e;
mantle: #181825;
crust: #11111b;
}
configuration {
font: "Icomoon-Feather 12";
show-icons: true;
}
/*
USE_BUTTONS=YES
*/
/*****----- Main Window -----*****/
window {
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 1000px;
x-offset: 0px;
y-offset: 0px;
padding: 0px;
border: 4px solid;
border-radius: 2px;
border-color: @blue;
cursor: "default";
background-color: @base;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 0px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @blue;
background-color: transparent;
children: [ "inputbar", "listview", "message" ];
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 20px;
padding: 100px 40px;
background-color: transparent;
background-image: url("~/.config/rofi/power.jpg", width);
children: [ "textbox-prompt-colon", "prompt"];
}
dummy {
background-color: transparent;
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: " System";
padding: 15px;
border: 0px 0px 0px 10px;
border-radius: 100% 100% 0px 100%;
border-color: @peach;
background-color: @crust;
text-color: @text;
}
prompt {
enabled: true;
padding: 15px;
border: 0px;
border-radius: 0px 100% 100% 100%;
border-color: @blue;
background-color: @crust;
text-color: @text;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 6;
lines: 1;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 30px;
margin: 30px;
background-color: transparent;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
padding: 35px 10px;
border-radius: 5%;
background-color: @crust;
text-color: @text;
cursor: pointer;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.5;
}
element selected.normal {
background-color: @crust;
text-color: @sapphire;
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 15px;
border-radius: 0px;
background-color: @crust;
text-color: @yellow;
}
textbox {
background-color: inherit;
text-color: inherit;
vertical-align: 0.5;
horizontal-align: 0.5;
}

View File

@ -1,201 +0,0 @@
{
pkgs,
config,
...
}:
{
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [ "DP-1" ];
modules-left = [
"hyprland/workspaces"
"mpris"
];
modules-center = [ ];
modules-right = [
"network"
"memory"
"cpu"
"clock"
];
# Widgets
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
max-length = 100;
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {
paused = "";
};
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "󰈀 ";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon}";
rotate = 270;
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
};
clock = {
format = "{:%I:%M %p}";
rotate = 0;
on-click = "/usr/local/bin/ags -t ActivityCenter";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
};
secondBar = {
layer = "top";
position = "top";
height = 30;
output = [
"HDMI-A-2"
];
modules-left = [
"hyprland/workspaces"
];
modules-center = [
];
modules-right = [
"network"
];
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
"custom/weather" = {
exec = "~/.config/waybar/weather.py waybar";
restart-interval = 900;
return-type = "json";
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "{bandwidthTotalBits} 󰈀 {bandwidthUpBits} 󰶣 {bandwidthDownBits} 󰶡 ";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
};
};
};
home.file.".config/waybar" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
}

View File

@ -0,0 +1,188 @@
{
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [ "DP-1" ];
modules-left = [
"hyprland/workspaces"
"mpris"
];
modules-center = [ ];
modules-right = [
"network"
"memory"
"cpu"
"clock"
];
# Widgets
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
max-length = 100;
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {
paused = "";
};
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "󰈀 ";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon}";
rotate = 270;
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
};
clock = {
format = "{:%I:%M %p}";
rotate = 0;
on-click = "/usr/local/bin/ags -t ActivityCenter";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
};
secondBar = {
layer = "top";
position = "top";
height = 30;
output = [
"HDMI-A-2"
];
modules-left = [
"hyprland/workspaces"
];
modules-center = [
];
modules-right = [
"network"
];
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
"custom/weather" = {
exec = "~/.config/waybar/weather.py waybar";
restart-interval = 900;
return-type = "json";
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "{bandwidthTotalBits} 󰈀 {bandwidthUpBits} 󰶣 {bandwidthDownBits} 󰶡 ";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
};
};
}

View File

@ -1,163 +0,0 @@
{
pkgs,
config,
...
}:
{
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [
"eDP-1"
"DP-1"
"HDMI-A-1"
"Virtual-1"
];
modules-left = [
"hyprland/workspaces"
"mpris"
];
modules-center = [
"custom/weather"
];
modules-right = [
"network"
"memory"
"cpu"
"clock"
];
# Widgets
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
max-length = 100;
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {
paused = "";
};
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "󰈀 ";
tooltip-format = "Network = <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon}";
rotate = 270;
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
};
clock = {
format = "{:%I:%M %p}";
rotate = 0;
on-click = "/usr/local/bin/ags -t ActivityCenter";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
# Custom Widgets
"custom/weather" = {
exec = "python3 ~/.config/waybar/weather.py waybar";
restart-interval = 900;
return-type = "json";
};
};
};
};
home.file.".config/waybar" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
}

View File

@ -0,0 +1,150 @@
{
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [
"eDP-1"
"DP-1"
"HDMI-A-1"
"Virtual-1"
];
modules-left = [
"hyprland/workspaces"
"mpris"
];
modules-center = [
"custom/weather"
];
modules-right = [
"network"
"memory"
"cpu"
"clock"
];
# Widgets
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
max-length = 100;
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {
paused = "";
};
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
network = {
tooltip = true;
format-wifi = "{icon}";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
format-ethernet = "󰈀 ";
tooltip-format = "Network = <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon}";
rotate = 270;
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
};
clock = {
format = "{:%I:%M %p}";
rotate = 0;
on-click = "/usr/local/bin/ags -t ActivityCenter";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
# Custom Widgets
"custom/weather" = {
exec = "python3 ~/.config/waybar/weather.py waybar";
restart-interval = 900;
return-type = "json";
};
};
};
}

View File

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ config, lib, ... }:
{
imports = [

View File

@ -3,9 +3,7 @@
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
lib,
...
}:

View File

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ lib, ... }:
{
imports = [

View File

@ -6,6 +6,7 @@
material-icons
material-black-colors
material-design-icons
icomoon-feather
# normal fonts
noto-fonts

View File

@ -8,11 +8,17 @@
geoclue2.enable = true;
xserver.enable = true;
udev.packages = with pkgs; [ pkgs.gnome-settings-daemon ];
udev.packages = with pkgs; [ gnome-settings-daemon ];
# Enable CUPS to print documents.
printing.enable = true;
power-profiles-daemon.enable = true;
logind.extraConfig = ''
HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
'';
};
}

View File

@ -1,4 +1,7 @@
{ pkgs, catppuccin, ... }:
{
catppuccin,
...
}:
{
##################################################################################################################
#
@ -11,8 +14,6 @@
../../home/xdg.nix # Bindings
../../home/hyprland # Window Manager
# ../../home/themes/dark
../../home/hyprland/waybar/double-monitor.nix
../../home/programs/dev # Dev Tools
@ -27,8 +28,6 @@
../../home/programs/productivity/obsidian.nix
../../home/programs/social/element.nix
# ../../home/programs/social/webcord.nix
# ../../home/programs/social/nixcord.nix
../../home/programs/social/zapzap.nix
../../home/programs/social/teamspeak.nix
@ -38,12 +37,10 @@
# Games
../../home/programs/games/itch.nix
# ../../home/programs/games/steam.nix
../../home/programs/games/lutris.nix
../../home/programs/games/opensource.nix
../../home/programs/games/airshipper.nix
catppuccin.homeModules.catppuccin
];
catppuccin = {
@ -56,6 +53,4 @@
userEmail = "p.keier@beyerstedt-it.de";
};
home.file.".config/hypr/hyprland.conf".enable = false;
}

156
wl-copy
View File

@ -1,156 +0,0 @@
{
description = "NixOS configuration of DerGrumpf";
# the nixConfig here only affects the flake itself, not the system configuration!
nixConfig = {
extra-substituters = [
"https://nix-community.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
hyprland.url = "github:hyprwm/Hyprland";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixcord.url = "github:kaylorben/nixcord";
/*
nixvim = {
url = "github:nix-community/nixvim/nixos-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
*/
catppuccin.url = "github:catppuccin/nix";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
};
outputs =
inputs@{
self,
nixpkgs,
home-manager,
catppuccin,
...
}:
{
packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
nixosConfigurations = {
iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
(
{ pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
environment.systemPackages = with pkgs; [
neovim
git
wget
curl
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
)
];
};
m920q =
let
username = "phil";
specialArgs = {
inherit username;
inherit inputs;
};
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/m920q
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
home-manager.sharedModules = [
inputs.nixcord.homeModules.nixcord
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
];
};
qemu =
let
username = "phil";
specialArgs = { inherit username; };
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/qemu
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
}
];
};
hp15-n028sg =
let
username = "phil";
specialArgs = { inherit username; };
in
nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/hp15-n028sg
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = inputs // specialArgs;
home-manager.users.${username} = import ./users/${username}/home.nix;
}
];
};
};
};
}