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; }