diff --git a/.gitmodules b/.gitmodules index 54af80db..dc80b891 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,11 +2,3 @@ path = nvim url = https://git.xenia.me.uk/xenia/nvim.git branch = main -[submodule "hyprland"] - path = hypr - url = https://git.xenia.me.uk/xenia/hyprland.git - branch = main -[submodule "waybar"] - path = waybar - url = https://git.xenia.me.uk/xenia/waybar.git - branch = main diff --git a/Makefile b/Makefile index 50a2b09a..30722d7a 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ $(eval HOSTNAME=$(shell hostname)) HOMEMANAGER_CONFIG := $(PWD)/home/$(HOSTNAME)/$(USER).nix CONFIG_DIR := $(if $(XDG_CONFIG_HOME), $(XDG_CONFIG_HOME), $(HOME)/.config) HOMEMANAGER_CONFIG_DIR := $(CONFIG_DIR)/home-manager -SUBMODULES := $(CONFIG_DIR)/nvim $(CONFIG_DIR)/hypr $(CONFIG_DIR)/waybar +SUBMODULES := $(CONFIG_DIR)/nvim .PHONY: default clean nixos home /etc/nixos/config diff --git a/home/H0615/hypr/hyprpaper.conf b/home/H0615/hypr/hyprpaper.conf index a4dbc267..872469f8 100644 --- a/home/H0615/hypr/hyprpaper.conf +++ b/home/H0615/hypr/hyprpaper.conf @@ -1,7 +1,2 @@ -preload = /etc/nixos/config/wallpaper/images_dark/1920x1080.png -preload = /etc/nixos/config/wallpaper/images_dark/1920x1200.png -preload = /etc/nixos/config/wallpaper/images_dark/1080x1920.png - -wallpaper = HDMI-A-1,/etc/nixos/config/wallpaper/images_dark/1920x1200.png -wallpaper = DP-1,/etc/nixos/config/wallpaper/images_dark/1080x1920.png -wallpaper = ,/etc/nixos/config/wallpaper/images_dark/1920x1080.png +preload = ~/nixos/wallpaper.jpg +wallpaper = ,~/nixos/wallpaper.jpg diff --git a/home/J0162/hypr/hyprpaper.conf b/home/J0162/hypr/hyprpaper.conf index b6bd2c7a..872469f8 100644 --- a/home/J0162/hypr/hyprpaper.conf +++ b/home/J0162/hypr/hyprpaper.conf @@ -1,2 +1,2 @@ -preload = /etc/nixos/config/wallpaper/images_dark/1920x1080.png -wallpaper = ,/etc/nixos/config/wallpaper/images_dark/1920x1080.png +preload = ~/nixos/wallpaper.jpg +wallpaper = ,~/nixos/wallpaper.jpg diff --git a/home/Vanguard/hypr/hyprpaper.conf b/home/Vanguard/hypr/hyprpaper.conf index 3eb041e4..872469f8 100644 --- a/home/Vanguard/hypr/hyprpaper.conf +++ b/home/Vanguard/hypr/hyprpaper.conf @@ -1,2 +1,2 @@ -preload = /mnt/secondary/syncthing/pictures/Wallpapers/Landscapes/IMG_9509.JPG -wallpaper = ,/mnt/secondary/syncthing/pictures/Wallpapers/Landscapes/IMG_9509.JPG +preload = ~/nixos/wallpaper.jpg +wallpaper = ,~/nixos/wallpaper.jpg diff --git a/home/desktop/config/hypr/common.conf b/home/desktop/config/hypr/common.conf new file mode 100644 index 00000000..51350924 --- /dev/null +++ b/home/desktop/config/hypr/common.conf @@ -0,0 +1,55 @@ +monitor=,preferred,auto,auto +exec-once = waybar & hyprpaper & dunst & eww daemon + +source = ./macchiato.conf +source = ./keybinds.conf +source = ./window-rules.conf + +env = XCURSOR_SIZE,24 + +input { + kb_layout = gb + follow_mouse = 1 + touchpad { + natural_scroll = no + } +} + +general { + gaps_in = 5 + gaps_out = 20 + border_size = 2 + col.active_border = $mauve + col.group_border_active = $mauve + col.inactive_border = $surface2 + col.group_border = $surface2 + layout = master +} + +decoration { + rounding = 10 + blur = yes + blur_size = 5 + blur_passes = 3 + blur_new_optimizations = on + blur_xray = off + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = $base +} + +animations { + enabled = yes + 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, 1, 6, default +} + +master { + new_is_master = false +} diff --git a/home/desktop/config/hypr/keybinds.conf b/home/desktop/config/hypr/keybinds.conf new file mode 100644 index 00000000..18344516 --- /dev/null +++ b/home/desktop/config/hypr/keybinds.conf @@ -0,0 +1,86 @@ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +bind = SUPER, Return, exec, wezterm +bind = SUPER SHIFT, Return, exec, foot +bind = SUPER, Q, killactive, +bind = SUPER, E, exec, power-profiles +bind = SUPER, P, exec, powermenu +bind = SUPER, V, togglefloating, +bind = SUPER, Space, exec, rofi -show drun +bind = SUPER, S, togglegroup +bind = SUPER SHIFT, S, changegroupactive +bind = SUPER, F1, exec, swaylock +bind = SUPER, W, exec, firefox +bind = SUPER, F, exec, thunar +bind = SUPER, M, fullscreen, 1 +bind = SUPER, A, bringactivetotop + +bind = , XF86AudioMute, exec, pamixer -t +bind = , XF86AudioRaiseVolume, exec, pamixer -i 2 +bind = , XF86AudioLowerVolume, exec, pamixer -d 2 + +# Move focus with mainMod + arrow keys +bind = SUPER, left, movefocus, l +bind = SUPER, H, movefocus, l +bind = SUPER, right, movefocus, r +bind = SUPER, L, movefocus, r +bind = SUPER, up, movefocus, u +bind = SUPER, K, movefocus, u +bind = SUPER, down, movefocus, d +bind = SUPER, J, movefocus, d + +bind = SUPER SHIFT, left, movewindow, l +bind = SUPER SHIFT, H, movewindow, l +bind = SUPER SHIFT, right, movewindow, r +bind = SUPER SHIFT, L, movewindow, r +bind = SUPER SHIFT, up, movewindow, u +bind = SUPER SHIFT, K, movewindow, u +bind = SUPER SHIFT, down, movewindow, d +bind = SUPER SHIFT, J, movewindow, d + +# Switch workspaces with mainMod + [0-9] +bind = SUPER, 1, workspace, 1 +bind = SUPER, 2, workspace, 2 +bind = SUPER, 3, workspace, 3 +bind = SUPER, 4, workspace, 4 +bind = SUPER, 5, workspace, 5 +bind = SUPER, 6, workspace, 6 +bind = SUPER, 7, workspace, 7 +bind = SUPER, 8, workspace, 8 +bind = SUPER, 9, workspace, 9 +bind = SUPER, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = SUPER SHIFT, 1, movetoworkspace, 1 +bind = SUPER SHIFT, 2, movetoworkspace, 2 +bind = SUPER SHIFT, 3, movetoworkspace, 3 +bind = SUPER SHIFT, 4, movetoworkspace, 4 +bind = SUPER SHIFT, 5, movetoworkspace, 5 +bind = SUPER SHIFT, 6, movetoworkspace, 6 +bind = SUPER SHIFT, 7, movetoworkspace, 7 +bind = SUPER SHIFT, 8, movetoworkspace, 8 +bind = SUPER SHIFT, 9, movetoworkspace, 9 + +bind = SUPER, period, workspace, m+1 +bind = SUPER, comma, workspace, m-1 + +bind = SUPER SHIFT, period, movetoworkspace, m+1 +bind = SUPER SHIFT, comma, movetoworkspace, m-1 + +bind = SUPER, bracketright, focusmonitor, +1 +bind = SUPER, bracketleft, focusmonitor, +1 + +bind = SUPER SHIFT, bracketright, movecurrentworkspacetomonitor, +1 +bind = SUPER SHIFT, bracketleft, movecurrentworkspacetomonitor, +1 + +bind = SUPER, N, workspace, empty +bind = SUPER SHIFT, N, movetoworkspace, empty + +bind = SUPER, C, togglespecialworkspace +bind = SUPER SHIFT, C, movetoworkspace, special + +bind = SUPER, tab, workspace, previous +bind = SUPER SHIFT, tab, movetoworkspace, previous + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = SUPER, mouse:272, movewindow +bindm = SUPER, mouse:273, resizewindow diff --git a/home/desktop/config/hypr/macchiato.conf b/home/desktop/config/hypr/macchiato.conf new file mode 100644 index 00000000..91a88a15 --- /dev/null +++ b/home/desktop/config/hypr/macchiato.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = f4dbd6 +$flamingoAlpha = f0c6c6 +$pinkAlpha = f5bde6 +$mauveAlpha = c6a0f6 +$redAlpha = ed8796 +$maroonAlpha = ee99a0 +$peachAlpha = f5a97f +$yellowAlpha = eed49f +$greenAlpha = a6da95 +$tealAlpha = 8bd5ca +$skyAlpha = 91d7e3 +$sapphireAlpha = 7dc4e4 +$blueAlpha = 8aadf4 +$lavenderAlpha = b7bdf8 + +$textAlpha = cad3f5 +$subtext1Alpha = b8c0e0 +$subtext0Alpha = a5adcb + +$overlay2Alpha = 939ab7 +$overlay1Alpha = 8087a2 +$overlay0Alpha = 6e738d + +$surface2Alpha = 5b6078 +$surface1Alpha = 494d64 +$surface0Alpha = 363a4f + +$baseAlpha = 24273a +$mantleAlpha = 1e2030 +$crustAlpha = 181926 + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/home/desktop/config/hypr/window-rules.conf b/home/desktop/config/hypr/window-rules.conf new file mode 100644 index 00000000..53084872 --- /dev/null +++ b/home/desktop/config/hypr/window-rules.conf @@ -0,0 +1,29 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +windowrule = float, ^(foot)$ +windowrule = float, ^(thunar)$ +windowrule = float, ^(pavucontrol)$ +windowrule = float, ^(.blueman-manager-wrapped)$ +windowrule = float, ^(otpclient)$ +windowrule = float, title:^([Zz]oom)(.*)$ + +windowrule = center, ^(foot)$ +windowrule = center, ^(thunar)$ +windowrule = center, ^(pavucontrol)$ +windowrule = center, ^(.blueman-manager-wrapped)$ +windowrule = move 2% 6%, ^(otpclient)$ +windowrule = center, title:^([Zz]oom)(.*)$ + +windowrule = workspace 1, ^(VSCodium)$ +windowrule = workspace 2, ^(firefox|librewolf)$ +windowrule = workspace 3 silent, ^(Element|Signal|discord|Microsoft Teams - Preview)$ +windowrule = workspace 3, title:^([Zz]oom)(.*)$ +windowrule = workspace 4 silent, ^(org.qbittorrent.qBittorrent)$ +windowrule = workspace 5 silent, ^(Steam|steamwebhelper)$ +windowrule = workspace 6, ^(Nxplayer.bin)$ + +windowrule = monitor 1, ^(VSCodium)$ +windowrule = monitor 1, ^(firefox|librewolf)$ +windowrule = monitor 1, ^(Microsoft Teams - Preview)$ +windowrule = monitor 1, title:^(Zoom)(.*)$ +windowrule = monitor 1, ^(Steam|steamwebhelper)$ +windowrule = monitor 1, ^(Nxplayer.bin)$ diff --git a/home/desktop/config/waybar/layout.json b/home/desktop/config/waybar/layout.json new file mode 100644 index 00000000..8e420901 --- /dev/null +++ b/home/desktop/config/waybar/layout.json @@ -0,0 +1,11 @@ +{ + "layer": "top", + "position": "top", + "spacing": 10, + "margin-top": 10, + "margin-left": 20, + "margin-right": 20, + "margin-bottom": 5, +} + +// vim: ft=json diff --git a/home/desktop/config/waybar/macchiato.css b/home/desktop/config/waybar/macchiato.css new file mode 100644 index 00000000..68804731 --- /dev/null +++ b/home/desktop/config/waybar/macchiato.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Macchiato palette +* Maintainer: rubyowo +* +*/ + +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; + +@define-color text #cad3f5; +@define-color subtext0 #a5adcb; +@define-color subtext1 #b8c0e0; + +@define-color surface0 #363a4f; +@define-color surface1 #494d64; +@define-color surface2 #5b6078; + +@define-color overlay0 #6e738d; +@define-color overlay1 #8087a2; +@define-color overlay2 #939ab7; + +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color sapphire #7dc4e4; +@define-color sky #91d7e3; +@define-color teal #8bd5ca; +@define-color green #a6da95; +@define-color yellow #eed49f; +@define-color peach #f5a97f; +@define-color maroon #ee99a0; +@define-color red #ed8796; +@define-color mauve #c6a0f6; +@define-color pink #f5bde6; +@define-color flamingo #f0c6c6; +@define-color rosewater #f4dbd6; diff --git a/home/desktop/config/waybar/modules.json b/home/desktop/config/waybar/modules.json new file mode 100644 index 00000000..d6447689 --- /dev/null +++ b/home/desktop/config/waybar/modules.json @@ -0,0 +1,190 @@ +{ + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "tray": { + "spacing": 10 + }, + "clock": { + "format": "{:󰃭 %A %Y-%m-%d | 󰅐 %R}", + "tooltip-format": "{calendar}", + "calendar": { + "mode": "year", + "mode-mon-col": 3, + "weeks-pos": "right", + "on-scroll": 1, + "on-click-right": "mode", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + "clock#compact": { + "format": "{:󰅐 %R}", + "tooltip-format": "{:󰃭 %A %Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% 󰻠", + "tooltip": false + }, + "memory": { + "format": "{}% 󰍛" + }, + "temperature": { + "critical-threshold": 80, + "format": "{temperatureC}°C {icon}", + "format-icons": [ + "󱃃", + "󰔏", + "󱃂" + ] + }, + "backlight": { + "format": "{percent}% {icon}", + "format-icons": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% 󰂄", + "format-plugged": "{capacity}% 󰚥", + "format-alt": "{time} {icon}", + "format-icons": [ + "󱃍", + "󰁺", + "󰁻", + "󰁼", + "󰁽", + "󰁾", + "󰁿", + "󰂀", + "󰂁", + "󰂂", + "󰁹" + ] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + "format-wifi": "{essid} ({signalStrength}%) 󰖩", + "format-ethernet": "Connected 󰈁", + "tooltip-format": "{ifname}", + "format-linked": "{ifname} (No IP) 󰈁", + "format-disconnected": "Disconnected 󰈂", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "bluetooth": { + "format": "󰂯 {status}", + "format-disabled": "󰂲 {status}", + "format-off": "󰂲 {status}", + "format-on": "󰂯 {status}", + "format-connected": "󰂱 {device_alias}", + "on-click": "blueman-manager" + }, + "pulseaudio": { + "scroll-step": 5, + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": "󰝟 {icon} {format_source}", + "format-muted": "󰝟 {format_source}", + "format-source": "{volume}% 󰍬", + "format-source-muted": "󰍭", + "format-icons": { + "headphone": "󰋋", + "hands-free": "󰥰", + "headset": "󰋎", + "phone": "󰏲", + "portable": "󰏳", + "car": "󰄍", + "default": [ + "󰕿", + "󰖀", + "󰕾" + ] + }, + "on-click": "pavucontrol" + }, + "custom/power": { + "format": "󰐥", + "on-click": "powermenu" + }, + "wlr/workspaces": { + "on-click": "activate", + "disable-scroll": true, + "all-outputs": false, + "sort-by-number": true, + "format": "{name}:{icon}", + "format-icons": { + "1": "󰅴", + "2": "󰈹", + "3": "󰻞", + "4": "󰒍", + "5": "󰓓", + "urgent": "", + "focused": "", + "default": "" + }, + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [] + } + }, + "sway/workspaces": { + "on-click": "activate", + "disable-scroll": true, + "all-outputs": false, + "sort-by-number": true, + "format": "{name}:{icon}", + "format-icons": { + "1": "󰅴", + "2": "󰈹", + "3": "󰻞", + "4": "󰒍", + "5": "󰓓", + "urgent": "", + "focused": "", + "default": "" + }, + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [] + } + } +} diff --git a/home/desktop/config/waybar/style.css b/home/desktop/config/waybar/style.css new file mode 100644 index 00000000..94323776 --- /dev/null +++ b/home/desktop/config/waybar/style.css @@ -0,0 +1,116 @@ +@import 'macchiato.css'; + +* { + border: none; + border-radius: 10px; + font-family: "FiraCode Nerd Font"; + font-size: 18px; +} + +window#waybar { + background: transparent; +} +window#waybar.hidden { + opacity: 0.2; +} +#window { + margin-top: 6px; + padding-left: 10px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: transparent; + background: transparent; +} + +#workspaces button { + transition: none; + color: @overlay0; + box-shadow: inset 0 -3px transparent; + border-radius: 2px; +} +#workspaces button.active, +#workspaces button.focused { + color: @base; +} +#workspaces button:hover { + transition: none; + box-shadow: inherit; + text-shadow: inherit; + color: @base; + border-color: #e8a2af; + color: @base; +} +#workspaces button.focused:hover { + color: @base; +} + +#workspaces, +#cpu, +#memory, +#temperature, +#pulseaudio, +#bluetooth, +#network, +#backlight, +#battery, +#clock, +#tray { + margin-top: 0px; + margin-bottom: 0px; + margin-left: 0px; + margin-right: 0px; + padding-left: 10px; + padding-right: 10px; + transition: none; + color: @crust; + background: @lavender; +} + +#clock { + background: @pink; +} +#cpu { + background: @mauve; +} +#memory { + background: @red; +} +#temperature { + background: @yellow; +} +#pulseaudio { + background: @green; +} +#bluetooth { + background: @teal; +} +#network { + background: @sky; +} +#backlight { + background: @sapphire; +} +#battery { + background: @blue; +} +#battery.charging, +#battery.plugged { + background-color: @blue; +} +#battery.critical:not(.charging) { + background-color: @blue; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} +@keyframes blink { + to { + color: @red; + } +} +#tray { + color: @base; +} diff --git a/home/desktop/hyprland.nix b/home/desktop/hyprland.nix index ce9849fe..4e02ae88 100644 --- a/home/desktop/hyprland.nix +++ b/home/desktop/hyprland.nix @@ -24,6 +24,10 @@ in { hyprpaper ]; programs.rofi.package = pkgs.rofi-wayland; + xdg.configFile."hypr" = { + source = ./config/hypr; + recursive = true; + }; wayland.windowManager.hyprland = { enable = true; xwayland = { diff --git a/home/desktop/waybar.nix b/home/desktop/waybar.nix index 0c0b8d95..735d8ba6 100644 --- a/home/desktop/waybar.nix +++ b/home/desktop/waybar.nix @@ -3,5 +3,9 @@ (nerdfonts.override {fonts = ["FiraCode"];}) bluez ]; + xdg.configFile."waybar" = { + source = ./config/waybar; + recursive = true; + }; programs.waybar.enable = true; } diff --git a/hypr b/hypr deleted file mode 160000 index 5e557df0..00000000 --- a/hypr +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5e557df0b5a3001eae40606ce93387cd1dbf5049 diff --git a/waybar b/waybar deleted file mode 160000 index 9af131ac..00000000 --- a/waybar +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9af131acfa9ea465c6f35fae85c15ba4a74224b9