diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 2d93072..7a63b92 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -132,7 +132,6 @@ kdenlive system-config-printer libreoffice - helvum killall nix-output-monitor eza @@ -258,134 +257,134 @@ security.polkit.enable = true; #programs.thunar = { - # enable = true; - # plugins = with pkgs.xfce; [ - # thunar-archive-plugin - # thunar-volman - # ]; - # }; - #programs.xfconf.enable = true; # so thunar can save config - #services.gvfs.enable = true; # Mount, trash, and other functionalities - #services.tumbler.enable = true; # Thumbnail support for images + # enable = true; + # plugins = with pkgs.xfce; [ + # thunar-archive-plugin + # thunar-volman + # ]; + # }; + #programs.xfconf.enable = true; # so thunar can save config + #services.gvfs.enable = true; # Mount, trash, and other functionalities + #services.tumbler.enable = true; # Thumbnail support for images - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit pkgs; - inherit hwconfig; - inherit first-nixos-install; - inherit inputs; - }; - }; - stylix = { - enable = true; - image = "${./modules/hyprland/wallpaper.jpg}"; - autoEnable = true; - opacity = { - desktop = 0.5; - }; - targets = { - gtk.enable = true; - plymouth = { + security.rtkit.enable = true; + services.pipewire = { enable = true; - #logo = ./fastfetch/nixos.png; - logoAnimated = false; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; }; - }; - fonts = { - sizes = { - applications = 14; - desktop = 12; - popups = 12; - terminal = 16; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit pkgs; + inherit hwconfig; + inherit first-nixos-install; + inherit inputs; + }; + }; + stylix = { + enable = true; + image = "${./modules/hyprland/wallpaper.jpg}"; + autoEnable = true; + opacity = { + desktop = 0.5; + }; + targets = { + gtk.enable = true; + plymouth = { + enable = true; + #logo = ./fastfetch/nixos.png; + logoAnimated = false; + }; + }; + fonts = { + sizes = { + applications = 14; + desktop = 12; + popups = 12; + terminal = 16; + }; + }; + polarity = "dark"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; }; - }; - polarity = "dark"; - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; - }; - programs.bash = { - shellAliases = { - ls = "${pkgs.eza}/bin/eza --icons=always"; - }; - }; + programs.bash = { + shellAliases = { + ls = "${pkgs.eza}/bin/eza --icons=always"; + }; + }; - #printing - services.printing.enable = true; - services.avahi = { - enable = true; - nssmdns4 = true; - openFirewall = true; - }; + #printing + services.printing.enable = true; + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; - #services.flatpak.enable = true; - #services.flatpak.packages = [ - # "flathub:app/org.kde.dolphin//stable" - # ]; + #services.flatpak.enable = true; + #services.flatpak.packages = [ + # "flathub:app/org.kde.dolphin//stable" + # ]; - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; - kk.steam.enable = hwconfig.system == "x86_64-linux"; + kk.steam.enable = hwconfig.system == "x86_64-linux"; - # List services that you want to enable: + # List services that you want to enable: - # Enable the OpenSSH daemon. - services.openssh = { - enable = true; - # require public key authentication for better security - settings.PasswordAuthentication = false; - settings.KbdInteractiveAuthentication = false; - settings.PermitRootLogin = "no"; - extraConfig = "HostKey ${config.sops.secrets."ssh_keys/${hwconfig.hostname}".path}"; - }; + # Enable the OpenSSH daemon. + services.openssh = { + enable = true; + # require public key authentication for better security + settings.PasswordAuthentication = false; + settings.KbdInteractiveAuthentication = false; + settings.PermitRootLogin = "no"; + extraConfig = "HostKey ${config.sops.secrets."ssh_keys/${hwconfig.hostname}".path}"; + }; - # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 22 ]; - networking.firewall.allowedUDPPorts = [ 22 ]; - # Or disable the firewall altogether. - #networking.firewall.enable = false; + # Open ports in the firewall. + networking.firewall.allowedTCPPorts = [ 22 ]; + networking.firewall.allowedUDPPorts = [ 22 ]; + # Or disable the firewall altogether. + #networking.firewall.enable = false; - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "24.05"; # Did you read the comment? + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.05"; # Did you read the comment? - nix = { - settings = { - experimental-features = [ - "nix-command" - "flakes" - ]; - auto-optimise-store = true; - substituters = [ - "https://hyprland.cachix.org" - "https://nix-gaming.cachix.org" - "https://nix-community.cachix.org" - ]; - trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - ]; - }; - }; + nix = { + settings = { + experimental-features = [ + "nix-command" + "flakes" + ]; + auto-optimise-store = true; + substituters = [ + "https://hyprland.cachix.org" + "https://nix-gaming.cachix.org" + "https://nix-community.cachix.org" + ]; + trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; + }; + }; } diff --git a/nixos/modules/hyprland/default.nix b/nixos/modules/hyprland/default.nix index 8d258cd..533b798 100644 --- a/nixos/modules/hyprland/default.nix +++ b/nixos/modules/hyprland/default.nix @@ -16,13 +16,13 @@ swaynotificationcenter libnotify swww - #wofi hyprpicker networkmanagerapplet hyprlock wlogout hypridle - pavucontrol + qpwgraph + pwvucontrol brightnessctl satty grim diff --git a/nixos/modules/hyprland/waybar.nix b/nixos/modules/hyprland/waybar.nix index bd2fa41..efff28c 100644 --- a/nixos/modules/hyprland/waybar.nix +++ b/nixos/modules/hyprland/waybar.nix @@ -1,180 +1,180 @@ { pkgs, lib, hwconfig, ... }: let - battery = (import ./battery-status.nix {inherit pkgs; inherit hwconfig;}); +battery = (import ./battery-status.nix {inherit pkgs; inherit hwconfig;}); in { programs.waybar = { enable = true; #systemd.enable = true; - #window#waybar { - # background: transparent; - #border-bottom: none; + #window#waybar { + # background: transparent; + #border-bottom: none; #} #${builtins.readFile "${pkgs.waybar}/etc/xdg/waybar/style.css"} - style = '' - ${builtins.readFile ./waybarstyle.css} - - * { + style = '' + ${builtins.readFile ./waybarstyle.css} + + * { font-size: 15px; - } - ''; - settings = [{ - height = 36; - layer = "top"; - position = "top"; - tray = { spacing = 3; }; - modules-center = [ - #"hyprland/window" - "clock" - ]; - modules-left = [ - "hyprland/workspaces" -# "hyprland/window" - ]; - modules-right = [ - "pulseaudio" - #"network" - #"cpu" - #"memory" - #"temperature" - "hyprland/language" - ] ++ lib.optional battery.available "custom/battery" - ++ [ - "tray" - "custom/notification" - #"custom/disablehypridle" - "custom/power" - ]; - battery = { - format = " {time} {icon} "; - format-alt = " {capacity}% {icon} "; - format-charging = " {capacity}%  "; - format-icons = [ "" "" "" "" "" ]; - format-plugged = " {capacity}%  "; - states = { - critical = 10; - warning = 20; - }; - }; - "custom/battery" = { - exec ="${pkgs.writeShellScriptBin "battery-widget" '' - ${battery.labelAdaptive} - ${battery.labelPercent} - ''}/bin/battery-widget"; - interval = 20; - tooltip = true; - }; - clock = { - format-alt = "{:%d-%m-%Y}"; - tooltip-format = "{:%d-%m-%Y | %H:%M}"; - }; - cpu = { - format = "{usage}% "; - tooltip = false; - }; - "hyprland/language" = { - format = " {}"; - }; - memory = { format = "{}% "; }; - network = { - interval = 1; - format-alt = "{ifname}: {ipaddr}/{cidr}"; - format-disconnected = "Disconnected ⚠"; - format-ethernet = "{ifname}: {ipaddr}/{cidr}  up: {bandwidthUpBits} down: {bandwidthDownBits}"; - format-linked = "{ifname} (No IP) "; - #format-wifi = "{signalStrength}% "; - format-wifi = "{signalStrength}%  "; - tooltip-format = "{essid} ({signalStrength}%) "; - }; - pulseaudio = { - format = "{volume}% {icon} {format_source}"; - format-bluetooth = "{volume}% {icon}  {format_source}"; - format-bluetooth-muted = " {icon}  {format_source}"; - format-icons = { - car = ""; - default = [ "" "" "" ]; - handsfree = ""; - headphones = ""; - headset = ""; - phone = ""; - portable = ""; - }; - format-muted = " {format_source}"; - format-source = "{volume}% "; - format-source-muted = ""; - on-click = "pavucontrol"; - }; - "hyprland/submap" = { format = ''{}''; }; - temperature = { - critical-threshold = 80; - format = "{temperatureC}°C {icon}"; - format-icons = [ "" "" "" ]; - }; - - "hyprland/workspaces" = { - disable-scroll = true; - all-outputs = true; - warp-on-scroll = true; - format = "{name}{icon}"; - format-icons = { - urgent = ""; - active = ""; - default = ""; - }; - #persistent-workspaces = { - # "*" = 3; - #}; - }; - - "custom/power" = { - format = "⏻ "; - tooltip = false; - #menu = "on-click"; - #menu-file = ./power_menu.xml; - #menu-actions = { - # shutdown = "shutdown -h now"; - # reboot = "reboot"; - # suspend = "systemctl suspend"; - # hibernate = "systemctl hibernate"; - #}; - on-click = "wlogout"; - }; - - "custom/notification" = { - tooltip = false; - format = "{icon}"; - format-icons = { - notification = " "; - none = " "; - dnd-notification = " "; - dnd-none = "  "; - }; - return-type = "json"; - exec-if = "which swaync-client"; - exec = "swaync-client -swb"; - on-click = "sleep 0.1 && swaync-client -t -sw"; - on-click-right = "sleep 0.1 && swaync-client -d -sw"; - escape = true; - }; - - "custom/disablehypridle" = { - exec = '' - if pgrep -x "hypridle" > /dev/null; then - echo "{\"text\": \"  \", \"tooltip\": \"Hypridle is running\", \"class\": \"active\"}"; - else - echo "{\"text\": \"  \", \"tooltip\": \"Hypridle is not running\", \"class\": \"inactive\"}"; - fi + } ''; - return-type = "json"; - on-click = '' - if pgrep -x "hypridle" > /dev/null; then - pkill hypridle - else - hypridle & - fi - ''; - }; - }]; + settings = [{ + height = 36; + layer = "top"; + position = "top"; + tray = { spacing = 3; }; + modules-center = [ + #"hyprland/window" + "clock" + ]; + modules-left = [ + "hyprland/workspaces" + # "hyprland/window" + ]; + modules-right = [ + "pulseaudio" + #"network" + #"cpu" + #"memory" + #"temperature" + "hyprland/language" + ] ++ lib.optional battery.available "custom/battery" + ++ [ + "tray" + "custom/notification" + #"custom/disablehypridle" + "custom/power" + ]; + battery = { + format = " {time} {icon} "; + format-alt = " {capacity}% {icon} "; + format-charging = " {capacity}%  "; + format-icons = [ "" "" "" "" "" ]; + format-plugged = " {capacity}%  "; + states = { + critical = 10; + warning = 20; + }; + }; + "custom/battery" = { + exec ="${pkgs.writeShellScriptBin "battery-widget" '' + ${battery.labelAdaptive} + ${battery.labelPercent} + ''}/bin/battery-widget"; + interval = 20; + tooltip = true; + }; + clock = { + format-alt = "{:%d-%m-%Y}"; + tooltip-format = "{:%d-%m-%Y | %H:%M}"; + }; + cpu = { + format = "{usage}% "; + tooltip = false; + }; + "hyprland/language" = { + format = " {}"; + }; + memory = { format = "{}% "; }; + network = { + interval = 1; + format-alt = "{ifname}: {ipaddr}/{cidr}"; + format-disconnected = "Disconnected ⚠"; + format-ethernet = "{ifname}: {ipaddr}/{cidr}  up: {bandwidthUpBits} down: {bandwidthDownBits}"; + format-linked = "{ifname} (No IP) "; + #format-wifi = "{signalStrength}% "; + format-wifi = "{signalStrength}%  "; + tooltip-format = "{essid} ({signalStrength}%) "; + }; + pulseaudio = { + format = "{volume}% {icon} {format_source}"; + format-bluetooth = "{volume}% {icon}  {format_source}"; + format-bluetooth-muted = " {icon}  {format_source}"; + format-icons = { + car = ""; + default = [ "" "" "" ]; + handsfree = ""; + headphones = ""; + headset = ""; + phone = ""; + portable = ""; + }; + format-muted = " {format_source}"; + format-source = "{volume}% "; + format-source-muted = ""; + on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol"; + }; + "hyprland/submap" = { format = ''{}''; }; + temperature = { + critical-threshold = 80; + format = "{temperatureC}°C {icon}"; + format-icons = [ "" "" "" ]; + }; + + "hyprland/workspaces" = { + disable-scroll = true; + all-outputs = false; + warp-on-scroll = true; + format = "{name}{icon} "; + format-icons = { + urgent = ""; + active = ""; + default = ""; + }; + #persistent-workspaces = { + # "*" = 3; + #}; + }; + + "custom/power" = { + format = "⏻ "; + tooltip = false; + #menu = "on-click"; + #menu-file = ./power_menu.xml; + #menu-actions = { + # shutdown = "shutdown -h now"; + # reboot = "reboot"; + # suspend = "systemctl suspend"; + # hibernate = "systemctl hibernate"; + #}; + on-click = "wlogout"; + }; + + "custom/notification" = { + tooltip = false; + format = "{icon}"; + format-icons = { + notification = " "; + none = " "; + dnd-notification = " "; + dnd-none = "  "; + }; + return-type = "json"; + exec-if = "which swaync-client"; + exec = "swaync-client -swb"; + on-click = "sleep 0.1 && swaync-client -t -sw"; + on-click-right = "sleep 0.1 && swaync-client -d -sw"; + escape = true; + }; + + "custom/disablehypridle" = { + exec = '' + if pgrep -x "hypridle" > /dev/null; then + echo "{\"text\": \"  \", \"tooltip\": \"Hypridle is running\", \"class\": \"active\"}"; + else + echo "{\"text\": \"  \", \"tooltip\": \"Hypridle is not running\", \"class\": \"inactive\"}"; + fi + ''; + return-type = "json"; + on-click = '' + if pgrep -x "hypridle" > /dev/null; then + pkill hypridle + else + hypridle & + fi + ''; + }; + }]; }; }