diff --git a/flake.lock b/flake.lock
index 968701a..8b03f84 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": [
diff --git a/flake.nix b/flake.nix
index 4128493..df8a921 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
- }
- ];
- };
};
};
}
diff --git a/home/hyprland/cava.nix b/home/hyprland/cava.nix
new file mode 100644
index 0000000..11e3c7d
--- /dev/null
+++ b/home/hyprland/cava.nix
@@ -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;
+ };
+
+ };
+ };
+}
diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix
index 5de8bf9..ceb8505 100644
--- a/home/hyprland/default.nix
+++ b/home/hyprland/default.nix
@@ -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;
}
diff --git a/home/hyprland/hyprland.nix b/home/hyprland/hyprland.nix
index 75b7399..6b1bfa2 100644
--- a/home/hyprland/hyprland.nix
+++ b/home/hyprland/hyprland.nix
@@ -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 = [
diff --git a/home/hyprland/rofi/configs/custom.rasi b/home/hyprland/rofi/configs/custom.rasi
index d8c7b09..b9910ff 100644
--- a/home/hyprland/rofi/configs/custom.rasi
+++ b/home/hyprland/rofi/configs/custom.rasi
@@ -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;
}
diff --git a/home/hyprland/rofi/configs/power.jpg b/home/hyprland/rofi/configs/power.jpg
new file mode 100644
index 0000000..57fcb46
Binary files /dev/null and b/home/hyprland/rofi/configs/power.jpg differ
diff --git a/home/hyprland/rofi/configs/power.rasi b/home/hyprland/rofi/configs/power.rasi
new file mode 100644
index 0000000..05d6bb6
--- /dev/null
+++ b/home/hyprland/rofi/configs/power.rasi
@@ -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;
+}
+
+
diff --git a/home/hyprland/waybar/double-monitor.nix b/home/hyprland/waybar/double-monitor.nix
deleted file mode 100644
index fd9e6f0..0000000
--- a/home/hyprland/waybar/double-monitor.nix
+++ /dev/null
@@ -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 = "{status_icon} {dynamic}";
- 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: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- 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 = "{calendar}";
-
- calendar = {
- mode = "month";
- mode-mon-col = 3;
- on-scroll = 1;
- on-click-right = "mode";
- format = {
- months = "{}";
- weekdays = "{}";
- today = "{}";
- };
- };
-
- 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: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- 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;
- };
-}
diff --git a/home/hyprland/waybar/dual.nix b/home/hyprland/waybar/dual.nix
new file mode 100644
index 0000000..5dc8858
--- /dev/null
+++ b/home/hyprland/waybar/dual.nix
@@ -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 = "{status_icon} {dynamic}";
+ 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: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ 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 = "{calendar}";
+
+ calendar = {
+ mode = "month";
+ mode-mon-col = 3;
+ on-scroll = 1;
+ on-click-right = "mode";
+ format = {
+ months = "{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ };
+
+ 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: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ format-linked = " {ifname} (No IP)";
+ format-disconnected = " ";
+ tooltip-format-disconnected = "Disconnected";
+ on-click = "/usr/local/bin/ags -t ControlPanel";
+ interval = 2;
+ };
+ };
+ };
+
+}
diff --git a/home/hyprland/waybar/single-monitor.nix b/home/hyprland/waybar/single-monitor.nix
deleted file mode 100644
index 8babc4d..0000000
--- a/home/hyprland/waybar/single-monitor.nix
+++ /dev/null
@@ -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 = "{status_icon} {dynamic}";
- 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 = {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- 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 = "{calendar}";
-
- calendar = {
- mode = "month";
- mode-mon-col = 3;
- on-scroll = 1;
- on-click-right = "mode";
- format = {
- months = "{}";
- weekdays = "{}";
- today = "{}";
- };
- };
-
- 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;
- };
-}
diff --git a/home/hyprland/waybar/single.nix b/home/hyprland/waybar/single.nix
new file mode 100644
index 0000000..d1c27ac
--- /dev/null
+++ b/home/hyprland/waybar/single.nix
@@ -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 = "{status_icon} {dynamic}";
+ 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 = {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ 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 = "{calendar}";
+
+ calendar = {
+ mode = "month";
+ mode-mon-col = 3;
+ on-scroll = 1;
+ on-click-right = "mode";
+ format = {
+ months = "{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ };
+
+ 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";
+ };
+
+ };
+ };
+
+}
diff --git a/hosts/hp15-n028sg/default.nix b/hosts/hp15-n028sg/default.nix
index cfab2c5..b1cd274 100644
--- a/hosts/hp15-n028sg/default.nix
+++ b/hosts/hp15-n028sg/default.nix
@@ -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 = [
diff --git a/hosts/m920q/default.nix b/hosts/m920q/default.nix
index edb0857..cf66dba 100644
--- a/hosts/m920q/default.nix
+++ b/hosts/m920q/default.nix
@@ -3,9 +3,7 @@
# and in the NixOS manual (accessible by running ‘nixos-help’).
{
- config,
pkgs,
- lib,
...
}:
diff --git a/hosts/qemu/default.nix b/hosts/qemu/default.nix
index 2b0821f..29a9358 100644
--- a/hosts/qemu/default.nix
+++ b/hosts/qemu/default.nix
@@ -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 = [
diff --git a/modules/fonts.nix b/modules/fonts.nix
index b97f63e..d398617 100644
--- a/modules/fonts.nix
+++ b/modules/fonts.nix
@@ -6,6 +6,7 @@
material-icons
material-black-colors
material-design-icons
+ icomoon-feather
# normal fonts
noto-fonts
diff --git a/modules/services.nix b/modules/services.nix
index 1862395..f006a95 100644
--- a/modules/services.nix
+++ b/modules/services.nix
@@ -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
+ '';
+
};
}
diff --git a/users/phil/home.nix b/users/phil/home.nix
index 2ea3d1f..57563e6 100644
--- a/users/phil/home.nix
+++ b/users/phil/home.nix
@@ -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;
-
}
diff --git a/wl-copy b/wl-copy
deleted file mode 100644
index 2893822..0000000
--- a/wl-copy
+++ /dev/null
@@ -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;
- }
- ];
- };
- };
- };
-}