diff --git a/README.md b/README.md index 2fd032a..b7cd71f 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ My NixOS setup + +## options +I put my options under the `custom` key. + +For example: `custom.graphical.plasma.enable = true;` + +## pkgs +To build some of the custom pkgs you need a ssh key linked to github with access to my repos. diff --git a/home-manager/hyprland/hyprland-settings.nix b/home-manager/hyprland/hyprland-settings.nix index a2e8c31..41f5f19 100644 --- a/home-manager/hyprland/hyprland-settings.nix +++ b/home-manager/hyprland/hyprland-settings.nix @@ -1,9 +1,7 @@ { config, osConfig, pkgs, inputs, lib, ... }: with lib; -let - cfg = osConfig.custom.graphical.hyprland; -in -{ +let cfg = osConfig.custom.graphical.hyprland; +in { config = lib.mkIf cfg.enable { programs.swaylock.enable = true; wayland.windowManager.hyprland = { @@ -16,144 +14,141 @@ in # Please note not all available settings / options are set here. # For a full list, see the wiki # - + # See https://wiki.hyprland.org/Configuring/Monitors/ - monitor = if osConfig.networking.hostName == "kop-pc" then [ + monitor = if osConfig.networking.hostName == "kop-pc" then [ # PC "HDMI-A-1,1920x1080@60,0x0,1" "DP-1,2560x1440@165,1920x0,1" "Unknown-1,disable" - ] else if osConfig.networking.hostName == "nix-laptop" then [ + ] else if osConfig.networking.hostName == "nix-laptop" then [ # laptop "eDP-1,3840x2160@60,0x0,2" "DP-3,1920x1080@60,1920x0,1" - ] else [ - # Default - ",preferred,auto,auto" - ]; - + ] else + [ + # Default + ",preferred,auto,auto" + ]; + # See https://wiki.hyprland.org/Configuring/Keywords/ for more - + # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox - + # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf - + # Some default env vars. env = [ "XCURSOR_SIZE,24" "NIXOS_OZONE_WL,1" ]; - + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input = { - kb_layout = osConfig.mainUser.layout; - kb_variant = osConfig.mainUser.variant; - kb_model = ""; - kb_options = ""; - kb_rules = ""; - - follow_mouse = 1; - - touchpad = { - natural_scroll = true; - }; - - sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + kb_layout = osConfig.mainUser.layout; + kb_variant = osConfig.mainUser.variant; + kb_model = ""; + kb_options = ""; + kb_rules = ""; + + follow_mouse = 1; + + touchpad = { natural_scroll = true; }; + + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. }; - + general = { - # See https://wiki.hyprland.org/Configuring/Variables - - gaps_in = 5; - gaps_out = 5; - border_size = 2; - "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; - "col.inactive_border" = "rgba(595959aa)"; - - layout = "dwindle"; - #allow_tearing = true; + # See https://wiki.hyprland.org/Configuring/Variables + + gaps_in = 5; + gaps_out = 5; + border_size = 2; + "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; + + layout = "dwindle"; + #allow_tearing = true; }; - + decoration = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 10; - #blur = yes - #blur_size = 3 - #blur_passes = 1 - #blur_new_optimizations = on - - drop_shadow = true; - shadow_range = 4; - shadow_render_power = 3; - "col.shadow" = "rgba(1a1a1aee)"; + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10; + #blur = yes + #blur_size = 3 + #blur_passes = 1 + #blur_new_optimizations = on + + drop_shadow = true; + shadow_range = 4; + shadow_render_power = 3; + "col.shadow" = "rgba(1a1a1aee)"; }; - + animations = { - enabled = true; - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - #bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - #animation = windows, 1, 7, myBezier - #animation = windowsOut, 1, 7, default, popin 80% - #animation = border, 1, 10, default - #animation = borderangle, 1, 8, default - #animation = fade, 1, 7, default - animation = [ - "workspaces, 0" - ]; + enabled = true; + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + #bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + #animation = windows, 1, 7, myBezier + #animation = windowsOut, 1, 7, default, popin 80% + #animation = border, 1, 10, default + #animation = borderangle, 1, 8, default + #animation = fade, 1, 7, default + animation = [ "workspaces, 0" ]; }; - + dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true; # you probably want this + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = + true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # you probably want this }; - + master = { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = true; + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true; }; - - gestures = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = true; + + gestures = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = true; }; - + # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more #"device:epic-mouse-v1" = { # sensitivity = -0.5; #}; - + # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - - + # See https://wiki.hyprland.org/Configuring/Keywords/ for more "$mainMod" = "SUPER"; - + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = let - rofi = "${pkgs.rofi-wayland}/bin/rofi"; - kitty = "${pkgs.kitty}/bin/kitty"; - #dolphin = "${pkgs.dolphin}/bin/dolphin"; - thunar = "${pkgs.xfce.thunar}/bin/thunar"; - wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; - wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; - grim = "${pkgs.grim}/bin/grim"; - slurp = "${pkgs.slurp}/bin/slurp"; + rofi = "${pkgs.rofi-wayland}/bin/rofi"; + kitty = "${pkgs.kitty}/bin/kitty"; + #dolphin = "${pkgs.dolphin}/bin/dolphin"; + thunar = "${pkgs.xfce.thunar}/bin/thunar"; + wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; + wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; + grim = "${pkgs.grim}/bin/grim"; + slurp = "${pkgs.slurp}/bin/slurp"; swww = "${pkgs.swww}/bin/swww"; pdfgrep = "${pkgs.pdfgrep}/bin/pdfgrep"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; swaylock = "${pkgs.swaylock}/bin/swaylock"; playerctl = "${pkgs.playerctl}/bin/playerctl"; - in [ - "$mainMod, Q, exec, ${kitty}" + in [ + "$mainMod, Q, exec, ${kitty}" "$mainMod, C, killactive" "$mainMod, L, exec, ${swaylock} -f -c 000000" "$mainMod, M, exit," @@ -161,7 +156,8 @@ in "$mainMod, F, fullscreen" "$mainMod, V, togglefloating" "$mainMod, I, exec, ${rofi} -show drun -show-icons" - "$mainMod, S, exec, cat ~/songs | shuf -n 1 | sed \"s/^/b\.p /g\" | ${wl-copy}" + '' + $mainMod, S, exec, cat ~/songs | shuf -n 1 | sed "s/^/b.p /g" | ${wl-copy}'' "$mainMod, R, exec, ${swww} img $(ls -d /synced/default/dinge/Bg/* | shuf -n 1)" " , Print, exec, ${grim} -g \"$(${slurp} -d)\" - | ${wl-copy}" "ALT, SPACE, exec, ${rofi} -show combi" @@ -177,7 +173,7 @@ in "$mainMod, right, movefocus, r" "$mainMod, up, movefocus, u" "$mainMod, down, movefocus, d" - + # Switch workspaces with mainMod + [0-9] "$mainMod, 1, workspace, 1" "$mainMod, 2, workspace, 2" @@ -189,7 +185,7 @@ in "$mainMod, 8, workspace, 8" "$mainMod, 9, workspace, 9" "$mainMod, 0, workspace, 10" - + # Move active window to a workspace with mainMod + SHIFT + [0-9] "$mainMod SHIFT, 1, movetoworkspace, 1" "$mainMod SHIFT, 2, movetoworkspace, 2" @@ -201,20 +197,20 @@ in "$mainMod SHIFT, 8, movetoworkspace, 8" "$mainMod SHIFT, 9, movetoworkspace, 9" "$mainMod SHIFT, 0, movetoworkspace, 10" - + # Scroll through existing workspaces with mainMod + scroll "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" - + # "ALT, Tab, cyclenext," # "ALT, Tab, bringactivetotop," - ]; + ]; - bindm = [ + bindm = [ # Move/resize windows with mainMod + LMB/RMB and dragging "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" - ]; + ]; windowrulev2 = [ # -- Fix odd behaviors in IntelliJ IDEs -- @@ -224,7 +220,7 @@ in "center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" "nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" "noborder,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" - + #! Center popups/find windows "center,class:^(jetbrains-.*)$,title:^( )$,floating:1" "stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1" @@ -233,14 +229,13 @@ in "nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1" #"immediate, class:^(Risk.*)$" ]; - - - exec-once = [ + + exec-once = [ "${pkgs.swww}/bin/swww init; sleep 1;" "${pkgs.swww} img $(ls -d /synced/default/dinge/Bg/* | shuf -n 1)" - "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator &" - "${pkgs.waybar}/bin/waybar &" - #"${pkgs.dunst}/bin/dunst &" + "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator &" + "${pkgs.waybar}/bin/waybar &" + #"${pkgs.dunst}/bin/dunst &" ]; }; extraConfig = let @@ -284,16 +279,16 @@ in enable = true; settings = { global = { - width = "(0,1000)"; - height = "1000"; - offset = "0x0"; - origin = "bottom-center"; - transparency = -1; - frame_color = "#1a1c1b"; - font = "Monospace 8"; + width = "(0,1000)"; + height = "1000"; + offset = "0x0"; + origin = "bottom-center"; + transparency = -1; + frame_color = "#1a1c1b"; + font = "Monospace 8"; }; - urgency_normal = { + urgency_normal = { background = "#1a1c1b"; foreground = "#eceff1"; timeout = 10; diff --git a/home-manager/hyprland/waybar.nix b/home-manager/hyprland/waybar.nix index 8e863dc..e8d5101 100644 --- a/home-manager/hyprland/waybar.nix +++ b/home-manager/hyprland/waybar.nix @@ -1,9 +1,7 @@ { config, osConfig, pkgs, inputs, lib, ... }: with lib; -let - cfg = osConfig.custom.graphical.hyprland; -in -{ +let cfg = osConfig.custom.graphical.hyprland; +in { config = let # styles from https://github.com/khaneliman/khanelinix/blob/8375f8cfbe5bfd87565b4dc34c9d30630c17336d/modules/home/desktop/addons/waybar/default.nix theme = builtins.readFile ./styles/catppuccin.css; @@ -18,189 +16,171 @@ in #systemd.enable = true; #systemd.target = "sway-session.target"; settings.main = { - layer = "top"; - position = "top"; - #output = lib.mapAttrsToList (n: v: v.monitor) outputs; - height = 25; - spacing = 4; - modules-left = [ - "hyprland/workspaces" - #"hyprland/window" - ]; - modules-center = []; - modules-right = [ - "group/stats" - "group/other" - ]; - "cpu" = { - "format" = " {usage}%"; - "tooltip" = true; - }; - "disk" = { - "format" = " {percentage_used}%"; - }; - "memory" = { - "format" = "󰍛 {}%"; - }; + layer = "top"; + position = "top"; + #output = lib.mapAttrsToList (n: v: v.monitor) outputs; + height = 25; + spacing = 4; + modules-left = [ + "hyprland/workspaces" + #"hyprland/window" + ]; + modules-center = [ ]; + modules-right = [ "group/stats" "group/other" ]; + "cpu" = { + "format" = " {usage}%"; + "tooltip" = true; + }; + "disk" = { "format" = " {percentage_used}%"; }; + "memory" = { "format" = "󰍛 {}%"; }; - "idle_inhibitor" = { - "format" = "{icon} "; - "format-icons" = { - "activated" = ""; - "deactivated" = ""; - }; - }; + "idle_inhibitor" = { + "format" = "{icon} "; + "format-icons" = { + "activated" = ""; + "deactivated" = ""; + }; + }; - "keyboard-state" = { - "numlock" = true; - "capslock" = true; - "format" = "{icon} {name}"; - "format-icons" = { - "locked" = ""; - "unlocked" = ""; - }; - }; + "keyboard-state" = { + "numlock" = true; + "capslock" = true; + "format" = "{icon} {name}"; + "format-icons" = { + "locked" = ""; + "unlocked" = ""; + }; + }; - "network" = { - "interval" = 2; - "format-wifi" = " 󰜮 {bandwidthDownBytes} 󰜷 {bandwidthUpBytes}"; - "format-ethernet" = "󰈀 󰜮 {bandwidthDownBytes} 󰜷 {bandwidthUpBytes}"; - "tooltip-format" = " {ifname} via {gwaddr}"; - "format-linked" = "󰈁 {ifname} (No IP)"; - "format-disconnected" = " Disconnected"; - "format-alt" = "{ifname}: {ipaddr}/{cidr}"; - }; - "pulseaudio" = { - "format" = "{volume}% {icon}"; - "format-bluetooth" = "{volume}% {icon}"; - "format-muted" = "🚫"; - "format-icons" = { - "headphone" = ""; - "hands-free" = ""; - "headset" = ""; - "phone" = ""; - "portable" = ""; - "car" = ""; - "default" = [ - "" - "" - ]; - }; - "scroll-step" = 1; - "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; - "ignored-sinks" = [ "Easy Effects Sink" ]; - }; + "network" = { + "interval" = 2; + "format-wifi" = " 󰜮 {bandwidthDownBytes} 󰜷 {bandwidthUpBytes}"; + "format-ethernet" = "󰈀 󰜮 {bandwidthDownBytes} 󰜷 {bandwidthUpBytes}"; + "tooltip-format" = " {ifname} via {gwaddr}"; + "format-linked" = "󰈁 {ifname} (No IP)"; + "format-disconnected" = " Disconnected"; + "format-alt" = "{ifname}: {ipaddr}/{cidr}"; + }; + "pulseaudio" = { + "format" = "{volume}% {icon}"; + "format-bluetooth" = "{volume}% {icon}"; + "format-muted" = "🚫"; + "format-icons" = { + "headphone" = ""; + "hands-free" = ""; + "headset" = ""; + "phone" = ""; + "portable" = ""; + "car" = ""; + "default" = [ "" "" ]; + }; + "scroll-step" = 1; + "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; + "ignored-sinks" = [ "Easy Effects Sink" ]; + }; - "pulseaudio/slider" = { - "min" = 0; - "max" = 100; - "orientation" = "horizontal"; - }; - "temperature".critical-threshold = 80; - "temperature".format = "{temperatureC}°C "; - "temperature".interval = 5; - "temperature".hwmon-path = lib.mkIf (osConfig.networking.hostName == "nix-laptop") "/sys/class/hwmon/hwmon6/temp1_input"; - "backlight".format = "{percent}% {icon}"; - "backlight".states = [0 50]; - "backlight".format-icons = ["" ""]; - "battery".states.good = 95; - "battery".states.warning = 30; - "battery".states.critical = 15; - "battery".format = "{capacity}% / {power:.2}W {icon}"; - "battery".format-icons = ["" "" "" "" ""]; - "clock".format = "{:%F %H:%M}"; - "clock".tooltip-format = "{calendar}"; - "tray".icon-size = 21; - "tray".spacing = 10; + "pulseaudio/slider" = { + "min" = 0; + "max" = 100; + "orientation" = "horizontal"; + }; + "temperature".critical-threshold = 80; + "temperature".format = "{temperatureC}°C "; + "temperature".interval = 5; + "temperature".hwmon-path = + lib.mkIf (osConfig.networking.hostName == "nix-laptop") + "/sys/class/hwmon/hwmon6/temp1_input"; + "backlight".format = "{percent}% {icon}"; + "backlight".states = [ 0 50 ]; + "backlight".format-icons = [ "" "" ]; + "battery".states.good = 95; + "battery".states.warning = 30; + "battery".states.critical = 15; + "battery".format = "{capacity}% / {power:.2}W {icon}"; + "battery".format-icons = [ "" "" "" "" "" ]; + "clock".format = "{:%F %H:%M}"; + "clock".tooltip-format = "{calendar}"; + "tray".icon-size = 21; + "tray".spacing = 10; "group/stats" = { "orientation" = "horizontal"; - "modules" = [ - "network" - "cpu" - "memory" - "disk" - "temperature" - ]; + "modules" = [ "network" "cpu" "memory" "disk" "temperature" ]; }; "group/other" = { "orientation" = "horizontal"; - "modules" = [ - "tray" - "backlight" - "pulseaudio" - "battery" - "clock" - ]; + "modules" = [ "tray" "backlight" "pulseaudio" "battery" "clock" ]; + }; + "hyprland/window" = { + "format" = "{}"; + "separate-outputs" = true; }; - "hyprland/window" = { - "format" = "{}"; - "separate-outputs" = true; - }; - "hyprland/workspaces" = { + "hyprland/workspaces" = { "disable-scroll" = true; - "all-outputs" = true; - "active-only" = false; + "all-outputs" = true; + "active-only" = false; "on-click" = "activate"; - "format" = "{icon} {windows}"; - "format-icons" = { - "1" = "󰎤"; - "2" = "󰎧"; - "3" = "󰎪"; - "4" = "󰎭"; - "5" = "󰎱"; - "6" = "󰎳"; - "7" = "󰎶"; - "8" = "󰎹"; - "9" = "󰎼"; - "10" = "󰽽"; - "urgent" = "󱨇"; - "default" = ""; - "empty" = "󱓼"; - }; - # "format-window-separator" = "->"; - "window-rewrite-default" = ""; - "window-rewrite" = { - "class" = "󰢁"; - "class" = "󰈎"; - "class" = "󰊤"; - "class" = ""; - "class" = ""; - "class" = "󰒱"; - "class" = "󰨞"; - "code-url-handler" = "󰨞"; - "class" = "󰙯"; - "class" = ""; - "class" = ""; - "class" = ""; - "class title<.*github.*>" = ""; - "class title<.*twitch|youtube|plex|tntdrama|bally sports.*>" = ""; - "class" = ""; - "class" = ""; - "class" = "󱂷"; - "class" = "󰄄"; - "class" = ""; - "class<.pitivi-wrapped>" = "󱄢"; - "class" = ""; - "class" = ""; - "class" = "󰢹"; - "class" = "󰕼"; - "class" = "󰉋"; - "class" = "󰉋"; - "class" = ""; - "title" = ""; - "class" = "󰽉"; - "class" = ""; - "class" = "󱎏"; - "class" = "󱎐"; - "class" = "󰊻"; - "class" = "󰍳"; - "class" = "󰍳"; - "class" = "󰛮"; - }; - }; + "format" = "{icon} {windows}"; + "format-icons" = { + "1" = "󰎤"; + "2" = "󰎧"; + "3" = "󰎪"; + "4" = "󰎭"; + "5" = "󰎱"; + "6" = "󰎳"; + "7" = "󰎶"; + "8" = "󰎹"; + "9" = "󰎼"; + "10" = "󰽽"; + "urgent" = "󱨇"; + "default" = ""; + "empty" = "󱓼"; + }; + # "format-window-separator" = "->"; + "window-rewrite-default" = ""; + "window-rewrite" = { + "class" = "󰢁"; + "class" = "󰈎"; + "class" = "󰊤"; + "class" = ""; + "class" = ""; + "class" = "󰒱"; + "class" = "󰨞"; + "code-url-handler" = "󰨞"; + "class" = "󰙯"; + "class" = ""; + "class" = ""; + "class" = ""; + "class title<.*github.*>" = ""; + "class title<.*twitch|youtube|plex|tntdrama|bally sports.*>" = + ""; + "class" = ""; + "class" = ""; + "class" = "󱂷"; + "class" = "󰄄"; + "class" = ""; + "class<.pitivi-wrapped>" = "󱄢"; + "class" = ""; + "class" = ""; + "class" = "󰢹"; + "class" = "󰕼"; + "class" = "󰉋"; + "class" = "󰉋"; + "class" = ""; + "title" = ""; + "class" = "󰽉"; + "class" = ""; + "class" = "󱎏"; + "class" = "󱎐"; + "class" = "󰊻"; + "class" = "󰍳"; + "class" = "󰍳"; + "class" = "󰛮"; + }; + }; }; - style = "${theme}${style}${notificationsStyle}${powerStyle}${statsStyle}${workspacesStyle}"; + style = + "${theme}${style}${notificationsStyle}${powerStyle}${statsStyle}${workspacesStyle}"; }; }; } diff --git a/modules/graphical/hyprland.nix b/modules/graphical/hyprland.nix index c09fba6..248dcb0 100644 --- a/modules/graphical/hyprland.nix +++ b/modules/graphical/hyprland.nix @@ -1,85 +1,81 @@ -{config, pkgs, lib, inputs, ... }: +{ config, pkgs, lib, inputs, ... }: with lib; -let - cfg = config.custom.graphical.hyprland; -in -{ +let cfg = config.custom.graphical.hyprland; +in { options.custom.graphical.hyprland = { - enable = mkEnableOption "Enables hyprland"; + enable = mkEnableOption "Enables hyprland"; }; options.custom.graphical.hyprland.videobridge = { - enable = mkEnableOption "Enables xwaylandvideobridge for hyprland"; + enable = mkEnableOption "Enables xwaylandvideobridge for hyprland"; }; - - config = let - patchedWaybar = pkgs.unstable.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; }); - in mkIf cfg.enable { - services.xserver = { - xkb.layout = config.mainUser.layout; - xkb.variant = config.mainUser.variant; - enable = true; - displayManager = mkIf (!config.services.xserver.displayManager.sddm.enable) { + + config = mkIf cfg.enable { + services.xserver = { + xkb.layout = config.mainUser.layout; + xkb.variant = config.mainUser.variant; + enable = true; + displayManager = + mkIf (!config.services.xserver.displayManager.sddm.enable) { gdm.enable = true; }; + }; + + environment.sessionVariables = { + WLR_NO_HARDWARE_CURSORS = "1"; + #WLR_DRM_NO_ATOMIC="1"; + #WLR_DRM_DEVICES = "/dev/dri/card0"; + LIBVA_DRIVER_NAME = "nvidia"; + # black screen :( + #XDG_SESSION_TYPE = "wayland"; + GBM_BACKEND = "nvidia-drm"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + WLR_RENDERER_ALLOW_SOFTWARE = "1"; + }; + + hardware = { + # Opengl + opengl.enable = true; + + # Most wayland compositors need this + nvidia.modesetting.enable = true; + }; + + xdg.portal.enable = true; + xdg.portal.extraPortals = lib.mkDefault [ pkgs.xdg-desktop-portal-gtk ]; + + programs.hyprland = { + enable = true; + package = pkgs.unstable.hyprland; + }; + + security.pam.services = { + swaylock = { + fprintAuth = false; + text = '' + auth include login + ''; }; - - environment.sessionVariables = { - WLR_NO_HARDWARE_CURSORS="1"; - #WLR_DRM_NO_ATOMIC="1"; - #WLR_DRM_DEVICES = "/dev/dri/card0"; - LIBVA_DRIVER_NAME="nvidia"; - # black screen :( - #XDG_SESSION_TYPE = "wayland"; - GBM_BACKEND = "nvidia-drm"; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - WLR_RENDERER_ALLOW_SOFTWARE="1"; - }; - - hardware = { - # Opengl - opengl.enable = true; - - # Most wayland compositors need this - nvidia.modesetting.enable = true; - }; - - xdg.portal.enable = true; - xdg.portal.extraPortals = lib.mkDefault [ pkgs.xdg-desktop-portal-gtk ]; - - programs.hyprland = { - enable = true; - package = pkgs.unstable.hyprland; - }; - - security.pam.services = { - swaylock = { - fprintAuth = false; - text = '' - auth include login - ''; - }; - }; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - # hyprland stuff - patchedWaybar - dunst - swww - rofi-wayland - libnotify - networkmanagerapplet - wayland - wl-clipboard - #qt5.qtwayland - #qt6.qmake - #qt6.qtwayland - #waybar - #xdg-desktop-portal-hyprland - #xdg-desktop-portal-gtk - #xdg-utils - #xwayland - ]; + }; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # hyprland stuff + dunst + swww + rofi-wayland + libnotify + networkmanagerapplet + wayland + wl-clipboard + #qt5.qtwayland + #qt6.qmake + #qt6.qtwayland + #waybar + #xdg-desktop-portal-hyprland + #xdg-desktop-portal-gtk + #xdg-utils + #xwayland + ]; }; } diff --git a/modules/graphical/shared.nix b/modules/graphical/shared.nix index f947093..c5a2510 100644 --- a/modules/graphical/shared.nix +++ b/modules/graphical/shared.nix @@ -20,7 +20,7 @@ in fonts.packages = with pkgs; [ #uw-ttyp0 corefonts - (nerdfonts.override { fonts = ["Hack" "Noto"]; }) + nerdfonts #noto-fonts #noto-fonts-emoji noto-fonts-cjk diff --git a/modules/graphical/stylix.nix b/modules/graphical/stylix.nix index 8841301..8e72146 100644 --- a/modules/graphical/stylix.nix +++ b/modules/graphical/stylix.nix @@ -34,7 +34,7 @@ in { let nerdfonts = pkgs.nerdfonts.override { fonts = [ "Hack" "Noto" ]; }; in mkIf cfg.enable { stylix = { - autoEnable = true; + autoEnable = mkForce true; polarity = "dark"; image = cfg.image; override = cfg.override; diff --git a/overlays.nix b/overlays.nix index 99f666c..4d78340 100644 --- a/overlays.nix +++ b/overlays.nix @@ -7,6 +7,9 @@ # You can change versions, add patches, set compilation flags, anything really. # https://nixos.wiki/wiki/Overlays modifications = final: prev: { + discord = prev.discord.override { withVencord = true; }; + nerdfonts = prev.nerdfonts.override { fonts = ["Hack" "Noto"]; }; + waybar = prev.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; }); # example = prev.example.overrideAttrs (oldAttrs: rec { # ... # }); diff --git a/users/kopatz/default.nix b/users/kopatz/default.nix index ed8a99c..48540d8 100644 --- a/users/kopatz/default.nix +++ b/users/kopatz/default.nix @@ -24,7 +24,7 @@ shell = pkgs.zsh; extraGroups = [ "networkmanager" "wheel" "docker" ]; packages = with pkgs; [ - (discord.override { withVencord = true; }) + discord brave ]; openssh.authorizedKeys.keys = [ config.mainUser.sshKey ];