diff --git a/flake.lock b/flake.lock index cb35af3..29c24a6 100644 --- a/flake.lock +++ b/flake.lock @@ -4,7 +4,9 @@ "inputs": { "flake-utils": "flake-utils", "lexical": "lexical", - "nixpkgs": "nixpkgs" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1699311919, @@ -52,7 +54,9 @@ }, "disko": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1696266752, @@ -158,7 +162,9 @@ "inputs": { "crane": "crane", "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_3", + "nixpkgs": [ + "nixpkgs" + ], "rust-overlay": "rust-overlay" }, "locked": { @@ -178,7 +184,9 @@ }, "home-manager": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1696145345, @@ -198,17 +206,19 @@ "hyprland": { "inputs": { "hyprland-protocols": "hyprland-protocols", - "nixpkgs": "nixpkgs_5", + "nixpkgs": [ + "nixpkgs" + ], "systems": "systems_4", "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1696261738, - "narHash": "sha256-ujhtnd7vCZHJosOxTi4lgIyHA6iblYwXhx+ZS678fxw=", + "lastModified": 1699391198, + "narHash": "sha256-HrnlCdZBqqE37gFORapfSGEGcqhCyhX2aSMRnDEmR0k=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "b784931e678f907b1f1e41d04485fefd8a1faaf8", + "rev": "751d2851cc270c3322ffe2eb83c156e4298a0c0e", "type": "github" }, "original": { @@ -265,102 +275,6 @@ } }, "nixpkgs": { - "locked": { - "lastModified": 1699186365, - "narHash": "sha256-Pxrw5U8mBsL3NlrJ6q1KK1crzvSUcdfwb9083sKDrcU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a0b3b06b7a82c965ae0bb1d59f6e386fe755001d", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1694908564, - "narHash": "sha256-ducA98AuWWJu5oUElIzN24Q22WlO8bOfixGzBgzYdVc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "596611941a74be176b98aeba9328aa9d01b8b322", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1696125185, - "narHash": "sha256-zJTpVLKg5YhbNJdILfBzYGz9zhM4Cjs5ySaD3eVWcTA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0396d3b0fb7f62ddc79a506ad3e6124f01d2ed0a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1690272529, - "narHash": "sha256-MakzcKXEdv/I4qJUtq/k/eG+rVmyOZLnYNC2w1mB59Y=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ef99fa5c5ed624460217c31ac4271cfb5cb2502c", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1694767346, - "narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ace5093e36ab1e95cb9463863491bee90d5a4183", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -376,38 +290,6 @@ "type": "github" } }, - "nixpkgs_7": { - "locked": { - "lastModified": 1694760568, - "narHash": "sha256-3G07BiXrp2YQKxdcdms22MUx6spc6A++MSePtatCYuI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "46688f8eb5cd6f1298d873d4d2b9cf245e09e88e", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1692447944, - "narHash": "sha256-fkJGNjEmTPvqBs215EQU4r9ivecV5Qge5cF/QDLVn3U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d680ded26da5cf104dd2735a51e88d2d8f487b4d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "api-lyte-dev": "api-lyte-dev", @@ -416,7 +298,7 @@ "helix": "helix", "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs", "sops-nix": "sops-nix", "ssbm": "ssbm" } @@ -464,8 +346,12 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_7", - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1695284550, @@ -483,7 +369,9 @@ }, "ssbm": { "inputs": { - "nixpkgs": "nixpkgs_8", + "nixpkgs": [ + "nixpkgs" + ], "slippi-desktop": "slippi-desktop" }, "locked": { @@ -565,18 +453,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1696255886, - "narHash": "sha256-0KZfiqqREousitBgG1mkzKmmNX4tjOIWdbBm6MvRCjQ=", + "lastModified": 1697909146, + "narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=", "owner": "wlroots", "repo": "wlroots", - "rev": "5ef42e8e8adece098848fac53c721b6eb3818fc2", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "5ef42e8e8adece098848fac53c721b6eb3818fc2", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", "type": "gitlab" } }, @@ -596,11 +484,11 @@ ] }, "locked": { - "lastModified": 1694628480, - "narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=", + "lastModified": 1697981233, + "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2", + "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 11cb171..b59632b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,31 @@ { inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager/master"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + helix.url = "github:helix-editor/helix/23.10"; + helix.inputs.nixpkgs.follows = "nixpkgs"; + disko.url = "github:nix-community/disko/master"; + disko.inputs.nixpkgs.follows = "nixpkgs"; + sops-nix.url = "github:Mic92/sops-nix"; + sops-nix.inputs.nixpkgs.follows = "nixpkgs"; + sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs"; + hardware.url = "github:nixos/nixos-hardware"; + # hardware.inputs.nixpkgs.follows = "nixpkgs"; + hyprland.url = "github:hyprwm/Hyprland"; + hyprland.inputs.nixpkgs.follows = "nixpkgs"; api-lyte-dev.url = "git+ssh://gitea@git.lyte.dev/lytedev/api.lyte.dev.git"; + api-lyte-dev.inputs.nixpkgs.follows = "nixpkgs"; ssbm.url = "github:lytedev/ssbm-nix/my-nixpkgs"; + ssbm.inputs.nixpkgs.follows = "nixpkgs"; # doesn't support the forge mod loader yet # nix-minecraft.url = "github:Infinidoge/nix-minecraft"; @@ -100,6 +115,7 @@ in { dragon = mkNixosSystem "x86_64-linux" [./nixos/dragon] (with outputs.homeManagerModules; [ dragon + hyprland ]); thinker = mkNixosSystem "x86_64-linux" [./nixos/thinker] (with outputs.homeManagerModules; [ thinker diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index c0358d4..cc66eae 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -24,6 +24,8 @@ desktop = import ./desktop.nix; linux-desktop = import ./linux-desktop.nix; sway = import ./sway.nix; + hyprland = import ./hyprland.nix; + ewwbar = import ./ewwbar.nix; sway-laptop = import ./sway-laptop.nix; tmux = import ./tmux.nix; diff --git a/modules/home-manager/dragon.nix b/modules/home-manager/dragon.nix index 98cc459..8fe498a 100644 --- a/modules/home-manager/dragon.nix +++ b/modules/home-manager/dragon.nix @@ -9,6 +9,15 @@ sway ]; + wayland.windowManager.hyprland = { + settings = { + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + monitor = [ + "DP-3,3840x2160@120,0x0,1" + ]; + }; + }; + wayland.windowManager.sway = { config = { output = { diff --git a/modules/home-manager/eww/eww.scss b/modules/home-manager/eww/eww.scss new file mode 100644 index 0000000..1be5c50 --- /dev/null +++ b/modules/home-manager/eww/eww.scss @@ -0,0 +1,80 @@ +$base: #1e1e2e; +$mantle: #181825; +$crust: #11111b; +$text: #cdd6f4; +$subtext0: #a6adc8; +$subtext1: #bac2de; +$surface0: #313244; +$surface1: #45475a; +$surface2: #585b70; +$overlay0: #6c7086; +$overlay1: #7f849c; +$overlay2: #9399b2; +$blue: #89b4fa; +$lavender: #b4befe; +$sapphire: #74c7ec; +$sky: #89dceb; +$teal: #94e2d5; +$green: #a6e3a1; +$yellow: #f9e2af; +$peach: #fab387; +$maroon: #eba0ac; +$red: #f38ba8; +$mauve: #cba6f7; +$pink: #f5c2e7; +$flamingo: #f2cdcd; +$rosewater: #f5e0dc; + +* { + all: unset; +} + +.bar { + background-color: $base; + color: $text; + font-family: IosevkaLyteTerm; + font-size: 12.0pt; +} + +.sidestuff slider { + color: #ffd5cd; +} + +.metric {} + +.metric label { + padding-right: 5px; +} + +.metric scale { + /*background-color: #ff00ff;*/ +} + +.metric scale trough { + background-color: $surface1; + color: $mantle; + border-radius: 50px; + min-height: 5px; + min-width: 50px; +} + +.metric scale trough highlight { + background-color: $flamingo; + color: $base; + border-radius: 10px; +} + +.bar>* { + padding-left: 10px; + padding-right: 10px; +} + +.vol .muted, +.mic .live { + color: #f38ba8; +} + +.vol .live, +.mic .muted { + color: #74c7ec; +} diff --git a/modules/home-manager/eww/eww.yuck b/modules/home-manager/eww/eww.yuck new file mode 100644 index 0000000..6f47fa7 --- /dev/null +++ b/modules/home-manager/eww/eww.yuck @@ -0,0 +1,68 @@ +(defwidget bar [] + (centerbox :orientation "h" + (sidestuff) + (box) + (music))) + +(defwindow bar + :monitor 1 + :stacking "fg" + :exclusive true + :geometry + (geometry + :x "0%" + :y "0%" + :width "100%" + :height "31px" + :anchor "bottom center") + (bar)) + +(defwidget sidestuff [] + (box :class "sidestuff" :orientation "h" :space-evenly false :halign "start" :spacing 20 + time + ; TODO: idle inhibitor? + ; TODO: get these to align properly? + (box :class "mic" ( + box :class {micMuted == "false" ? "live" : "muted"} {micMuted == "false" ? " " : " "} + ) {micVolume + "%"} + ) + (box :class "vol" ( + box :class {muted == "false" ? "live" : "muted"} {muted == "false" ? "󰕾 " : "󰖁 "} + ) {volume + "%"} + ) + {" " + round(EWW_CPU["avg"], 0) + "%"} + {" " + round(EWW_RAM["used_mem_perc"], 0) + "%"} + {isDesktop == "true" ? "" : " " + brightness + "%"} + {isDesktop == "true" ? "" : "󱊣 " + EWW_BATTERY["BAT0"]["capacity"] + "%/" + EWW_BATTERY["BAT1"]["capacity"] + "%"} + )) + +(defwidget music [] + (box :class "music" + :orientation "h" + :halign "end" + :space-evenly false + {music != "" ? "${music}" : ""})) + +(deflisten music :initial "" + "playerctl --follow metadata --format '{{ title }} by {{ artist }}' || true") + +(deflisten volume :initial "0" + "pamixer --get-volume; pactl subscribe | grep sink --line-buffered | while read i; do pamixer --get-volume; done") + +(deflisten muted :initial "false" + "pamixer --get-mute; pactl subscribe | grep sink --line-buffered | while read i; do pamixer --get-mute; done") + +(deflisten micVolume :initial "0" + "pamixer --default-source --get-volume; pactl subscribe | grep source --line-buffered | while read i; do pamixer --default-source --get-volume; done") + +(deflisten micMuted :initial "false" + "pamixer --default-source --get-mute; pactl subscribe | grep source --line-buffered | while read i; do pamixer --default-source --get-mute; done") + +(defpoll time :interval "1s" + "date '+%a %b %d %H:%M:%S'") + +(defpoll isDesktop :interval "24h" + "if [ -d \"$HOME/.config/lytedev-env/host-desktop\" ]; then echo true; else echo false; fi") + +(defpoll brightness :interval "10s" + "echo $(((100 * $(brightnessctl get)) / $(brightnessctl max)))") diff --git a/modules/home-manager/ewwbar.nix b/modules/home-manager/ewwbar.nix new file mode 100644 index 0000000..29612f4 --- /dev/null +++ b/modules/home-manager/ewwbar.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + programs.eww = { + enable = true; + package = pkgs.eww-wayland; + configDir = ./eww; + }; +} diff --git a/modules/home-manager/hyprland.nix b/modules/home-manager/hyprland.nix index 4f9928d..13e9962 100644 --- a/modules/home-manager/hyprland.nix +++ b/modules/home-manager/hyprland.nix @@ -1,104 +1,200 @@ { - # colors, + outputs, + colors, + config, # font, ... }: { + imports = [outputs.homeManagerModules.ewwbar]; + + home.file."${config.xdg.configHome}/hypr/hyprpaper.conf" = { + enable = true; + text = '' + preload = ~/.wallpaper + wallpaper = ,~/.wallpaper + ''; + }; + wayland.windowManager.hyprland = { enable = true; - extraConfig = '' - # See https://wiki.hyprland.org/Configuring/Monitors/ - monitor=,preferred,auto,auto - monitor=desc:LG Display 0x0521,preferred,auto,1 - + settings = { # See https://wiki.hyprland.org/Configuring/Keywords/ for more + monitor = [ + # See https://wiki.hyprland.org/Configuring/Monitors/ + ",preferred,auto,auto" + "desc:LG Display 0x0521,3840x2160@120,0x0,1" + "desc:Dell Inc. DELL U2720Q D3TM623,3840x2160@60,3840x0,1.5,transform,3" + ]; - # Execute your favorite apps at launch - exec-once = firefox & kitty --single-instance & hyprpaper & mako & /usr/lib/polkit-kde-authentication-agent-1 - exec-once = swayidle -w timeout 600 'notify-send "Locking in 30 seconds..."' timeout 630 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on && maybe-good-morning' before-sleep 'swaylock -f' - exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + exec-once = [ + "firefox & kitty --single-instance & hyprpaper & mako & /usr/lib/polkit-kde-authentication-agent-1" + ''swayidle -w timeout 600 'notify-send "Locking in 30 seconds..."' timeout 630 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on && maybe-good-morning' before-sleep 'swaylock -f'"'' + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + ]; - env = XCURSOR_SIZE,24 + env = [ + "XCURSOR_SIZE,24" + ]; - input { - kb_layout = us - kb_options = ctrl:nocaps - touchpad { - natural_scroll = yes - } + input = { + kb_layout = "us"; + kb_options = "ctrl:nocaps"; # kb_variant = # kb_model = # kb_rules = - follow_mouse = 2 + follow_mouse = 2; - repeat_delay = 200 - repeat_rate = 60 + repeat_delay = 200; + repeat_rate = 60; - touchpad { - natural_scroll = yes - tap-to-click = true - middle_button_emulation = true - } + touchpad = { + natural_scroll = "yes"; + tap-to-click = true; + middle_button_emulation = true; + }; - force_no_accel = true - sensitivity = 1 # -1.0 - 1.0, 0 means no modification. - } + force_no_accel = true; + sensitivity = 1; # -1.0 - 1.0, 0 means no modification. + }; - misc { - disable_hyprland_logo = true - disable_splash_rendering = true - } + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + }; - binds { - allow_workspace_cycles = true - } + binds = { + allow_workspace_cycles = true; + }; - general { + general = { # See https://wiki.hyprland.org/Configuring/Variables/ for more + "col.active_border" = "0xff${colors.primary} 0xff${colors.green} 45deg"; + "col.inactive_border" = "0xff${colors.fgdim}"; - gaps_in = 3 - gaps_out = 6 - border_size = 1 - no_cursor_warps = true - resize_on_border = true + gaps_in = 3; + gaps_out = 6; + border_size = 2; + no_cursor_warps = true; + resize_on_border = true; - col.active_border = rgba(74c7ecff) 45deg - col.inactive_border = rgba(59595988) + layout = "dwindle"; + }; - layout = dwindle - } - - decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 3 - # blur = yes + decoration = { + rounding = 3; + blur = "no"; # blur_size = 3 # blur_passes = 1 # blur_new_optimizations = on - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) + drop_shadow = "yes"; + shadow_range = 4; + shadow_render_power = 3; + "col.shadow" = "rgba(1a1a1aee)"; - dim_inactive = 0.5 - } + dim_inactive = false; + }; + "$mainMod" = "SUPER"; + bind = [ + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mainMod, return, exec, kitty --single-instance" + "$mainMod SHIFT, return, exec, kitty" + "$mainMod, U, exec, firefox" + "$mainMod, space, exec, wofi --show drun" + "$mainMod, C, killactive," + "$mainMod, M, exit," + "$mainMod, E, exec, dolphin" + "$mainMod, F, togglefloating," + "$mainMod SHIFT, F, fullscreen," + "$mainMod, R, exec, anyrun" + "$mainMod, S, pseudo, # dwindle" + "$mainMod, P, togglesplit, # dwindle" + + # Move focus with mainMod + arrow keys + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + "$mainMod, h, movefocus, l" + "$mainMod, l, movefocus, r" + "$mainMod, k, movefocus, u" + "$mainMod, j, movefocus, d" + "$mainMod SHIFT, H, swapwindow, l" + "$mainMod SHIFT, L, swapwindow, r" + "$mainMod SHIFT, K, swapwindow, u" + "$mainMod SHIFT, J, swapwindow, d" + "$mainMod SHIFT, V, exec, pamixer --default-source --toggle-mute" + ", XF86AudioMicMute, exec, pamixer --default-source --toggle-mute" + ", XF86AudioMute, exec, pamixer --toggle-mute" + ", XF86AudioRaiseVolume, exec, pamixer --increase 5" + ", XF86AudioLowerVolume, exec, pamixer --decrease 5" + "CTRL, XF86AudioRaiseVolume, exec, pamixer --increase 1" + "CTRL, XF86AudioLowerVolume, exec, pamixer --decrease 1" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPrev, exec, playerctl previous" + "$mainMod, tab, workspace, previous" + + # Switch workspaces with mainMod + [0-9] + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$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" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + ", XF86MonBrightnessDown, exec, brightnessctl set 10%-" + ", XF86MonBrightnessUp, exec, brightnessctl set +10%" + "SHIFT, XF86MonBrightnessDown, exec, brightnessctl set 1%" + "SHIFT, XF86MonBrightnessUp, exec, brightnessctl set 100%" + "CTRL, XF86MonBrightnessDown, exec, brightnessctl set 1%-" + "CTRL, XF86MonBrightnessUp, exec, brightnessctl set +1%" + "$mainMod SHIFT, S, exec, clipshot" + + # Scroll through existing workspaces with mainMod + scroll + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + "CTRL SHIFT $mainMod, L, exec, swaylock" + "$mainMod CTRL, space, exec, makoctl dismiss" + "$mainMod SHIFT CTRL, space, exec, makoctl restore" + "$mainMod SHIFT, space, exec, makoctl invoke" + "$mainMod, E, exec, thunar" + ]; + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = ["$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow"]; + }; + + extraConfig = '' animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - bezier=overshot,0.05,0.9,0.1,1.1 + bezier = overshot, 0.05, 0.9, 0.1, 1.1 - animation = windows, 1, 2, default - animation = windowsOut, 1, 2, default, popin 80% - animation = border, 1, 2, default - animation = borderangle, 1, 2, default - animation = fade, 1, 2, default - animation = workspaces, 1, 2, default + # name, onoff, speed, curve, style + animation = global, 1, 2, default + animation = fadeDim, 1, 2, default + animation = windowsOut, 1, 2, default, popin 80% } dwindle { @@ -130,101 +226,6 @@ # Example windowrule v2 # windowrulev2 = 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 = $mainMod, return, exec, kitty --single-instance - bind = $mainMod SHIFT, return, exec, kitty - bind = $mainMod, U, exec, firefox - bind = $mainMod, space, exec, wofi --show drun - bind = $mainMod, C, killactive, - bind = $mainMod, M, exit, - bind = $mainMod, E, exec, dolphin - bind = $mainMod, F, togglefloating, - bind = $mainMod SHIFT, F, fullscreen, - bind = $mainMod, R, exec, anyrun - bind = $mainMod, S, pseudo, # dwindle - bind = $mainMod, P, togglesplit, # dwindle - - # Move focus with mainMod + arrow keys - bind = $mainMod, left, movefocus, l - bind = $mainMod, right, movefocus, r - bind = $mainMod, up, movefocus, u - bind = $mainMod, down, movefocus, d - bind = $mainMod, h, movefocus, l - bind = $mainMod, l, movefocus, r - bind = $mainMod, k, movefocus, u - bind = $mainMod, j, movefocus, d - - bind = $mainMod SHIFT, H, swapwindow, l - bind = $mainMod SHIFT, L, swapwindow, r - bind = $mainMod SHIFT, K, swapwindow, u - bind = $mainMod SHIFT, J, swapwindow, d - - bind = $mainMod SHIFT, V, exec, pamixer --default-source --toggle-mute - bind = , XF86AudioMicMute, exec, pamixer --default-source --toggle-mute - bind = , XF86AudioMute, exec, pamixer --toggle-mute - bind = , XF86AudioRaiseVolume, exec, pamixer --increase 5 - bind = , XF86AudioLowerVolume, exec, pamixer --decrease 5 - bind = CTRL, XF86AudioRaiseVolume, exec, pamixer --increase 1 - bind = CTRL, XF86AudioLowerVolume, exec, pamixer --decrease 1 - - bind = , XF86AudioPlay, exec, playerctl play-pause - bind = , XF86AudioNext, exec, playerctl next - bind = , XF86AudioPrev, exec, playerctl previous - - bind = $mainMod, tab, workspace, previous - - # Switch workspaces with mainMod + [0-9] - bind = $mainMod, 1, workspace, 1 - bind = $mainMod, 2, workspace, 2 - bind = $mainMod, 3, workspace, 3 - bind = $mainMod, 4, workspace, 4 - bind = $mainMod, 5, workspace, 5 - bind = $mainMod, 6, workspace, 6 - bind = $mainMod, 7, workspace, 7 - bind = $mainMod, 8, workspace, 8 - bind = $mainMod, 9, workspace, 9 - bind = $mainMod, 0, workspace, 10 - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - bind = $mainMod SHIFT, 1, movetoworkspace, 1 - bind = $mainMod SHIFT, 2, movetoworkspace, 2 - bind = $mainMod SHIFT, 3, movetoworkspace, 3 - bind = $mainMod SHIFT, 4, movetoworkspace, 4 - bind = $mainMod SHIFT, 5, movetoworkspace, 5 - bind = $mainMod SHIFT, 6, movetoworkspace, 6 - bind = $mainMod SHIFT, 7, movetoworkspace, 7 - bind = $mainMod SHIFT, 8, movetoworkspace, 8 - bind = $mainMod SHIFT, 9, movetoworkspace, 9 - bind = $mainMod SHIFT, 0, movetoworkspace, 10 - - bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%- - bind = , XF86MonBrightnessUp, exec, brightnessctl set +10% - bind = SHIFT, XF86MonBrightnessDown, exec, brightnessctl set 1% - bind = SHIFT, XF86MonBrightnessUp, exec, brightnessctl set 100% - bind = CTRL, XF86MonBrightnessDown, exec, brightnessctl set 1%- - bind = CTRL, XF86MonBrightnessUp, exec, brightnessctl set +1% - - bind = $mainMod SHIFT, S, exec, clipshot - - # Scroll through existing workspaces with mainMod + scroll - bind = $mainMod, mouse_down, workspace, e+1 - bind = $mainMod, mouse_up, workspace, e-1 - - bind = CTRL SHIFT $mainMod, L, exec, swaylock - - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = $mainMod, mouse:272, movewindow - bindm = $mainMod, mouse:273, resizewindow - - bind = $mainMod CTRL, space, exec, makoctl dismiss - bind = $mainMod SHIFT CTRL, space, exec, makoctl restore - bind = $mainMod SHIFT, space, exec, makoctl invoke - - bind = $mainMod, E, exec, thunar ''; }; } diff --git a/modules/nixos/common.nix b/modules/nixos/common.nix index ab534f5..b36f95b 100644 --- a/modules/nixos/common.nix +++ b/modules/nixos/common.nix @@ -224,6 +224,7 @@ git = { enable = true; + package = pkgs.gitFull; lfs = { enable = true; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 8c6b8ef..4d7468e 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -3,6 +3,7 @@ { common = import ./common.nix; melee = import ./melee.nix; + ewwbar = import ./ewwbar.nix; desktop-usage = import ./desktop-usage.nix; intel = import ./intel.nix; pipewire = import ./pipewire.nix; @@ -10,6 +11,7 @@ podman = import ./podman.nix; postgres = import ./postgres.nix; sway = import ./sway.nix; + hyprland = import ./hyprland.nix; user-installed-applications = import ./user-installed-applications.nix; wifi = import ./wifi.nix; kde-connect = import ./kde-connect.nix; diff --git a/modules/nixos/ewwbar.nix b/modules/nixos/ewwbar.nix new file mode 100644 index 0000000..7f044f8 --- /dev/null +++ b/modules/nixos/ewwbar.nix @@ -0,0 +1,3 @@ +{pkgs, ...}: { + environment.systemPackages = with pkgs; [eww-wayland]; +} diff --git a/modules/nixos/hyprland.nix b/modules/nixos/hyprland.nix index b245c58..272bacf 100644 --- a/modules/nixos/hyprland.nix +++ b/modules/nixos/hyprland.nix @@ -1,3 +1,9 @@ -{...}: { - # TODO: programs.hyprland.enable = true; +{ + outputs, + pkgs, + ... +}: { + imports = [outputs.nixosModules.ewwbar]; + programs.hyprland.enable = true; + environment.systemPackages = with pkgs; [hyprpaper]; } diff --git a/nixos/beefcake/default.nix b/nixos/beefcake/default.nix index 5e763d3..219019e 100644 --- a/nixos/beefcake/default.nix +++ b/nixos/beefcake/default.nix @@ -703,15 +703,15 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 GID = toString config.users.groups.jland.gid; STOP_SERVER_ANNOUNCE_DELAY = "20"; TZ = "America/Chicago"; - VERSION = "1.19.2"; + VERSION = "1.20.1"; MEMORY = "8G"; MAX_MEMORY = "16G"; TYPE = "FORGE"; - FORGE_VERSION = "43.3.2"; + FORGE_VERSION = "47.1.3"; ALLOW_FLIGHT = "true"; ENABLE_QUERY = "true"; - MODPACK = "/data/origination-files/Monumental+Experience-2.2.53.zip"; + MODPACK = "/data/origination-files/Server-Files-0.2.14.zip"; # TYPE = "AUTO_CURSEFORGE"; # CF_SLUG = "monumental-experience"; diff --git a/nixos/dragon/default.nix b/nixos/dragon/default.nix index f24846c..367ee8e 100644 --- a/nixos/dragon/default.nix +++ b/nixos/dragon/default.nix @@ -25,6 +25,8 @@ podman postgres wifi + hyprland + ewwbar ]) ++ [ # Or modules from other flakes (such as nixos-hardware):