diff --git a/flake.lock b/flake.lock
index 6bbd5e5..b629885 100644
--- a/flake.lock
+++ b/flake.lock
@@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
- "lastModified": 1749223974,
- "narHash": "sha256-/GAQYRW1duU81KG//2wI9ax8EkHVG/e1UOD97NdwLOY=",
+ "lastModified": 1751880463,
+ "narHash": "sha256-aSQllMKqsTYAUp4yhpspZn0Hj5yIj7Mh4UD5iyk5iMM=",
"owner": "catppuccin",
"repo": "nix",
- "rev": "3a42cd79c647360ee8742659e42aeec0947dd3b4",
+ "rev": "9474347c69e93e392f194dda7a57c641ba4b998e",
"type": "github"
},
"original": {
@@ -25,11 +25,11 @@
]
},
"locked": {
- "lastModified": 1749154018,
- "narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
+ "lastModified": 1751810233,
+ "narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
+ "rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
"type": "github"
},
"original": {
@@ -41,11 +41,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1749794982,
- "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
+ "lastModified": 1750776420,
+ "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
+ "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
"type": "github"
},
"original": {
@@ -57,11 +57,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1749727998,
- "narHash": "sha256-mHv/yeUbmL91/TvV95p+mBVahm9mdQMJoqaTVTALaFw=",
+ "lastModified": 1751741127,
+ "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "fd487183437963a59ba763c0cc4f27e3447dd6dd",
+ "rev": "29e290002bfff26af1db6f64d070698019460302",
"type": "github"
},
"original": {
diff --git a/home/lukas/blueman.nix b/home/lukas/blueman.nix
new file mode 100644
index 0000000..2dfd66d
--- /dev/null
+++ b/home/lukas/blueman.nix
@@ -0,0 +1,3 @@
+{
+ services.blueman.enable = true;
+}
diff --git a/home/lukas/catppuccin.nix b/home/lukas/catppuccin.nix
index c43a5b9..1cafe2d 100644
--- a/home/lukas/catppuccin.nix
+++ b/home/lukas/catppuccin.nix
@@ -9,6 +9,8 @@
bat.enable = true; # <- installs Catppuccin-Mocha.tmTheme
delta.enable = true; # <- colours delta with your mauve accent
+ waybar.enable = false;
+ rofi.enable = false;
};
gtk = {
diff --git a/home/lukas/default.nix b/home/lukas/default.nix
index 58f7c59..9e7aa14 100644
--- a/home/lukas/default.nix
+++ b/home/lukas/default.nix
@@ -11,6 +11,7 @@
./tmux.nix
./xgd.nix
./hyprland.nix
+ ./waybar.nix
./rofi.nix
./libreoffice.nix
];
diff --git a/home/lukas/git.nix b/home/lukas/git.nix
index 0fb8ae1..40a022b 100644
--- a/home/lukas/git.nix
+++ b/home/lukas/git.nix
@@ -1,4 +1,3 @@
-{ config, lib, pkgs, ... }:
let
userPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII1DsMfyMUK0snbTeVWMmdzLP9NIvPoQ4tjqyREUMHwZ mail@lukas.contact";
in {
@@ -15,6 +14,7 @@ in {
user.signingkey = "~/.ssh/id_ed25519.pub";
pull.rebase = false;
init.defaultBranch = "master";
+ core.sshCommand = "ssh -4";
};
};
}
diff --git a/home/lukas/hyprland.nix b/home/lukas/hyprland.nix
index f7cfdf4..fde0e93 100644
--- a/home/lukas/hyprland.nix
+++ b/home/lukas/hyprland.nix
@@ -11,6 +11,14 @@
"nm-applet"
"blueman-applet"
"swww-daemon"
+ "swayidle -w \
+ timeout 300 'hyprlock' \
+ timeout 360 'hyprctl dispatch dpms off' \
+ resume 'hyprctl dispatch dpms on' \
+ before-sleep 'hyprlock'
+ "
+ "swww img $HOME/Bilder/Wallpapers/mountain.jpg"
+
];
env = [
@@ -47,14 +55,13 @@
"$mod, e, exec, emacs"
# Rofi launcher
- "$mod, SPACE, exec, rofi -show drun -theme ~/.config/rofi/theme.rasi"
+ "$mod, SPACE, exec, rofi -show drun"
# Toggle fullscreen
"$mod, M, fullscreen, 2"
# cycle windows
"$mod, N, cyclenext"
-
# cycle workspaces
"$mod, Tab, workspace, r+1"
"$mod Shift, Tab, workspace, r-1"
@@ -124,4 +131,6 @@
};
};
};
+
+ services.udiskie.enable = true;
}
diff --git a/home/lukas/packages.nix b/home/lukas/packages.nix
index 8e01c7f..6e837b3 100644
--- a/home/lukas/packages.nix
+++ b/home/lukas/packages.nix
@@ -29,9 +29,18 @@
pkgs.nil
+ pkgs.zotero
+
(pkgs.aspellWithDicts
(dicts: with dicts; [ de en en-computers ]))
+ # stuff for the waybar
+ pkgs.nerd-fonts.jetbrains-mono
+ pkgs.brightnessctl
+ pkgs.bluez
+ pkgs.bluetui
+ pkgs.jq
+ pkgs.lm_sensors
];
}
diff --git a/home/lukas/rofi.nix b/home/lukas/rofi.nix
index c4e30ee..f736376 100644
--- a/home/lukas/rofi.nix
+++ b/home/lukas/rofi.nix
@@ -1,3 +1,5 @@
+{config, ...}:
+
let
fullTheme = ''
* {
@@ -109,7 +111,11 @@ let
}
'';
in {
- programs.rofi.enable = true;
-
home.file.".config/rofi/theme.rasi".text = fullTheme;
+
+
+ programs.rofi = {
+ enable = true;
+ theme = "${config.xdg.configHome}/rofi/theme.rasi";
+ };
}
diff --git a/home/lukas/waybar.nix b/home/lukas/waybar.nix
index d695aaa..0d3edb9 100644
--- a/home/lukas/waybar.nix
+++ b/home/lukas/waybar.nix
@@ -1,44 +1,240 @@
-{ pkgs, ... }:
+let
+ fullStyle = ''
+ * {
+ min-height: 0;
+ min-width: 0;
+ font-family: FiraCode;
+ font-size: 16px;
+ font-weight: 600;
+ }
+ window#waybar {
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ /* background-color: #1e1e2e; */
+ /* background-color: #181825; */
+ background-color: #11111b;
+ /* background-color: rgba(24, 24, 37, 0.6); */
+ }
+
+ #workspaces button {
+ padding: 0.3rem 0.6rem;
+ margin: 0.4rem 0.25rem;
+ border-radius: 6px;
+ /* background-color: #181825; */
+ background-color: #1e1e2e;
+ color: #cdd6f4;
+ }
+
+ #workspaces button:hover {
+ color: #1e1e2e;
+ background-color: #cdd6f4;
+ }
+
+ #workspaces button.active {
+ background-color: #1e1e2e;
+ color: #89b4fa;
+ }
+
+ #workspaces button.urgent {
+ background-color: #1e1e2e;
+ color: #f38ba8;
+ }
+
+ #clock,
+ #pulseaudio,
+ #custom-logo,
+ #custom-power,
+ #custom-spotify,
+ #custom-notification,
+ #cpu,
+ #tray,
+ #memory,
+ #window,
+ #mpris {
+ padding: 0.3rem 0.6rem;
+ margin: 0.4rem 0.25rem;
+ border-radius: 6px;
+ /* background-color: #181825; */
+ background-color: #1e1e2e;
+ }
+
+ #mpris.playing {
+ color: #a6e3a1;
+ }
+
+ #mpris.paused {
+ color: #9399b2;
+ }
+
+ #custom-sep {
+ padding: 0px;
+ color: #585b70;
+ }
+
+ window#waybar.empty #window {
+ background-color: transparent;
+ }
+
+ #cpu {
+ color: #94e2d5;
+ }
+
+ #memory {
+ color: #cba6f7;
+ }
+
+ #clock {
+ color: #74c7ec;
+ }
+
+ #clock.simpleclock {
+ color: #89b4fa;
+ }
+
+ #window {
+ color: #cdd6f4;
+ }
+
+ #pulseaudio {
+ color: #b4befe;
+ }
+
+ #pulseaudio.muted {
+ color: #a6adc8;
+ }
+
+ #custom-logo {
+ color: #89b4fa;
+ }
+
+ #custom-power {
+ color: #f38ba8;
+ }
+
+ tooltip {
+ background-color: #181825;
+ border: 2px solid #89b4fa;
+ }
+ '';
+
+ fullConfig = ''
{
- home.packages = with pkgs; [
- waybar networkmanagerapplet
- ];
- programs.waybar = {
- catppuccin.enable = true;
- enable = true;
- systemd.enable = true; # auto-restart on crashes
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 32;
- modules-left = [ "hyprland/workspaces" ];
- modules-center = [ "clock" ];
- modules-right = [
- "network"
- "pulseaudio"
- "battery"
- "tray"
- ];
-
- # `network` module shows SSID + signal; no need for nm-applet text
- "network" = {
- format-wifi = "{ssid} {signalStrength}%";
- format-disconnected = "";
- };
- };
- };
- };
-
- # Start nm-applet once; Waybar's SNI tray picks it up.
- systemd.user.services."nm-applet" = {
- Unit.Description = "NetworkManager Applet";
- Service = {
- ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator";
- Restart = "on-failure";
- };
- Install.WantedBy = [ "graphical-session.target" ];
- };
+ "layer": "top",
+ "position": "top",
+ "height": 32,
+ "spacing": 0,
+ "modules-left": [
+ "hyprland/workspaces",
+ ],
+ "modules-right": [
+ "pulseaudio",
+ "backlight",
+ "bluetooth",
+ "network",
+ "battery",
+ "clock",
+ "tray",
+ "custom/reboot",
+ "custom/power"
+ ],
+ "hyprland/workspaces": {
+ "disable-scroll": false,
+ "all-outputs": true,
+ "format": "{icon}",
+ "on-click": "activate",
+ "persistent-workspaces": {
+ "*":[1,2,3,4]
+ },
+ "format-icons": {
+ "1": "",
+ "2": "",
+ "3": "",
+ "4": "",
+ "default": ""
+ }
+ },
+ "custom/reboot": {
+ "format": " ",
+ "on-click": "systemctl reboot",
+ "tooltip": true,
+ },
+ "custom/power": {
+ "format": " ",
+ "on-click": "systemctl poweroff",
+ "tooltip": true,
+ },
+ "network": {
+ "format-wifi": " {essid} ",
+ "format-ethernet": " Wired ",
+ "tooltip-format": " {bandwidthUpBytes} {bandwidthDownBytes}",
+ "format-linked": " {ifname} (No IP) ",
+ "format-disconnected": " Disconnected ",
+ "format-alt": " {signalStrength}% ",
+ "interval": 1
+ },
+ "battery": {
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": " {icon} {capacity}% ",
+ "format-charging": " {capacity}%",
+ "interval": 1,
+ "format-icons": ["", "", "", "", ""],
+ "tooltip": true
+ },
+ "pulseaudio": {
+ "format": "{icon}{volume}% ",
+ "format-muted": " 0% ",
+ "format-icons": {
+ "headphone": " ",
+ "hands-free": " ",
+ "headset": " ",
+ "phone": " ",
+ "portable": " ",
+ "car": " ",
+ "default": [
+ " ",
+ " ",
+ " "
+ ]
+ },
+ "on-click-right": "pavucontrol -t 3",
+ "on-click": "pactl -- set-sink-mute 0 toggle",
+ },
+ "clock": {
+ "interval": 1,
+ "timezone": "Europe/Berlin",
+ "format": " {:%H:%M} ",
+ },
+ "tray": {
+ "icon-size": 17,
+ "spacing": 6
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "format": "{icon}{percent}% ",
+ "tooltip": true,
+ "format-icons": [
+ " ",
+ " ",
+ " ",
+ " "
+ ]
+ },
+ "bluetooth": {
+ "format": " {status} ",
+ "format-connected": " {device_alias} ",
+ "format-connected-battery": " {device_alias}{device_battery_percentage}% ",
+ "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
+ "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
+ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
+ }
+}
+ '';
+in {
+ home.file.".config/waybar/style.css".text = fullStyle;
+ home.file.".config/waybar/config.jsonc".text = fullConfig;
}
-
diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix
index 385ba86..8bbd0e4 100644
--- a/modules/desktop/hyprland.nix
+++ b/modules/desktop/hyprland.nix
@@ -11,9 +11,7 @@
NIXOS_OZONE_WL = "1";
};
- hardware = {
- opengl.enable = true;
- };
+ hardware.graphics.enable = true;
environment.systemPackages = [
(pkgs.waybar.overrideAttrs (oldAttrs: {
@@ -25,6 +23,8 @@
pkgs.rofi-wayland
pkgs.hyprlock
pkgs.hyprshot
+ pkgs.swayidle
+ pkgs.udiskie
pkgs.brightnessctl # adjust backlight via keybindings
pkgs.scrot # simple screenshot
@@ -37,6 +37,9 @@
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ services.udisks2.enable = true;
+
+
services.greetd = {
enable = true;
settings = {
diff --git a/modules/networking/networkmanager.nix b/modules/networking/networkmanager.nix
index 0c9dcb7..9a0255b 100644
--- a/modules/networking/networkmanager.nix
+++ b/modules/networking/networkmanager.nix
@@ -1,4 +1,3 @@
-{ config, pkgs, ... }:
{
networking.networkmanager.enable = true;
}