Get Hyprland and stuff all set up on desktop
This commit is contained in:
parent
96739c5979
commit
44c5a27387
15 changed files with 668 additions and 13 deletions
|
@ -15,17 +15,11 @@ in
|
||||||
extraPackages = lib.mkOverride 0 [];
|
extraPackages = lib.mkOverride 0 [];
|
||||||
};
|
};
|
||||||
displayManager = {
|
displayManager = {
|
||||||
lightdm = {
|
sddm.enable = true;
|
||||||
enable = true;
|
|
||||||
greeters.gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = theme.gtkTheme pkgs;
|
|
||||||
};
|
|
||||||
background = theme.wallpaper;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
displayManager = {
|
displayManager = {
|
||||||
|
enable = true;
|
||||||
defaultSession = "none+i3";
|
defaultSession = "none+i3";
|
||||||
};
|
};
|
||||||
udev.packages = [ pkgs.yubikey-personalization ];
|
udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
|
@ -34,16 +28,18 @@ in
|
||||||
gvfs.enable = true; # For Trash
|
gvfs.enable = true; # For Trash
|
||||||
};
|
};
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
programs.sway.enable = true;
|
|
||||||
|
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ yubioath-flutter ];
|
# Needed mesa for whatever reason to get Discord to work on Wayland on my desktop
|
||||||
|
environment.systemPackages = with pkgs; [ yubioath-flutter mesa ];
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
# GTK Theme won't display with GTK4 (e.g. nautilus) otherwise
|
# GTK Theme won't display with GTK4 (e.g. nautilus) otherwise
|
||||||
# Doesn't work in some scenarios, such as open containing folder in Firefox, when declared in home.sessionVariables
|
# Doesn't work in some scenarios, such as open containing folder in Firefox, when declared in home.sessionVariables
|
||||||
GTK_THEME = (theme.gtkTheme pkgs).name;
|
GTK_THEME = (theme.gtkTheme pkgs).name;
|
||||||
|
# something something required for Electron apps on Wayland
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable OpenTabletDriver, GUI configurator is otd-gui
|
# Enable OpenTabletDriver, GUI configurator is otd-gui
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
imports = [ (import ./hardware-configuration.nix) ];
|
imports = [ (import ./hardware-configuration.nix) ];
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
videoDrivers = [ "nvidia" ];
|
videoDrivers = [ "nvidia-dkms" ];
|
||||||
# nvidiaXineramaInfoOrder sets primary display
|
# nvidiaXineramaInfoOrder sets primary display
|
||||||
# DFP-0 is default and would set left monitor, DVI-D-0, to be primary
|
# DFP-0 is default and would set left monitor, DVI-D-0, to be primary
|
||||||
screenSection = ''
|
screenSection = ''
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.nvidia.open = true;
|
hardware.nvidia.open = true;
|
||||||
|
hardware.graphics.extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
|
@ -22,7 +23,7 @@
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-label/boot";
|
device = "/dev/sda5";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
# Prevent SCARLETT from auto-mounting
|
# Prevent SCARLETT from auto-mounting
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
imports = [
|
imports = [
|
||||||
(import ./apps.nix)
|
(import ./apps.nix)
|
||||||
(import ./i3)
|
(import ./i3)
|
||||||
|
(import ./hypr)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
7
hosts/desktop/hypr/default.nix
Normal file
7
hosts/desktop/hypr/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
".config/hypr/monitors.conf".source = ./monitors.conf;
|
||||||
|
};
|
||||||
|
}
|
39
hosts/desktop/hypr/monitors.conf
Normal file
39
hosts/desktop/hypr/monitors.conf
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor=HDMI-A-1, 1920x1080@100.05, 1080x420, 1
|
||||||
|
monitor=DVI-D-1, 1920x1080@60.00, 0x0, 1, transform, 1
|
||||||
|
monitor=DP-1, 1920x1080@60.04Hz, 1080x1500, 1
|
||||||
|
|
||||||
|
workspace = name:1, monitor:HDMI-A-1
|
||||||
|
workspace = name:2, monitor:DVI-D-1
|
||||||
|
workspace = name:3, monitor:DP-1
|
||||||
|
|
||||||
|
# See https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/nvidia.conf
|
||||||
|
|
||||||
|
# █▄░█ █░█ █ █▀▄ █ ▄▀█
|
||||||
|
# █░▀█ ▀▄▀ █ █▄▀ █ █▀█
|
||||||
|
|
||||||
|
# Hyprland Nvidia Configuration
|
||||||
|
# See https://wiki.hyprland.org/Nvidia/
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia # Disable this if you have issues with screensharing
|
||||||
|
|
||||||
|
# If you want to try hardware cursors,
|
||||||
|
# you can enable them by setting `cursor:no_hardware_cursors = false` ,
|
||||||
|
# but it will require also enabling `cursor:allow_dumb_copy`
|
||||||
|
# which may cause small to major hitches whenever the cursor shape changes.
|
||||||
|
# If this is a problem on your system, keep hardware cursors disabled.
|
||||||
|
cursor:no_hardware_cursors = true # Set to true to avoid hitches
|
||||||
|
# cursor:allow_dumb_copy = true
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Nvidia/#va-api-hardware-video-acceleration
|
||||||
|
# Hardware video acceleration on Nvidia and Wayland is
|
||||||
|
# possible with the nvidia-vaapi-driver.
|
||||||
|
# This may solve specific issues in Electron apps.
|
||||||
|
env = NVD_BACKEND,direct # Requires 'libva-nvidia-driver' package
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Nvidia/#regarding-environment-variables
|
||||||
|
# If you encounter crashes in Firefox, remove this line
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
|
||||||
|
# If you have a multi-GPU setup and you are facing lag in external monitor.
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Multi-GPU/
|
|
@ -10,6 +10,7 @@ in
|
||||||
#../modules/emacs
|
#../modules/emacs
|
||||||
../modules/fcitx5
|
../modules/fcitx5
|
||||||
../modules/firefox
|
../modules/firefox
|
||||||
|
../modules/hypr
|
||||||
../modules/i3
|
../modules/i3
|
||||||
../modules/neovim
|
../modules/neovim
|
||||||
../modules/picom
|
../modules/picom
|
||||||
|
@ -19,7 +20,6 @@ in
|
||||||
../modules/startpage
|
../modules/startpage
|
||||||
../modules/terminal
|
../modules/terminal
|
||||||
../modules/todo-txt
|
../modules/todo-txt
|
||||||
|
|
||||||
#../modules/fantasia-archive
|
#../modules/fantasia-archive
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
(import ./apps.nix)
|
(import ./apps.nix)
|
||||||
(import ./i3)
|
(import ./i3)
|
||||||
|
(import ./hypr)
|
||||||
(import ../thinkpads/i3.nix)
|
(import ../thinkpads/i3.nix)
|
||||||
(import ../thinkpads/polybar.nix)
|
(import ../thinkpads/polybar.nix)
|
||||||
];
|
];
|
||||||
|
|
7
hosts/pang13/hypr/default.nix
Normal file
7
hosts/pang13/hypr/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
".config/hypr/monitors.conf".source = ./monitors.conf;
|
||||||
|
};
|
||||||
|
}
|
4
hosts/pang13/hypr/monitors.conf
Normal file
4
hosts/pang13/hypr/monitors.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor=eDP-1, 1920x1080@144, 1920x0, 1
|
||||||
|
monitor=HDMI-A-1, 1920x1080@74.97, 0x0, 1
|
||||||
|
monitor=DP-1, 1920x1080@60.04, 0x1080, 1
|
16
modules/hypr/default.nix
Normal file
16
modules/hypr/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# hyprland itself enabled in desktop.nix
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
hyprpaper
|
||||||
|
waybar
|
||||||
|
grimblast # screenshots
|
||||||
|
];
|
||||||
|
home.file = {
|
||||||
|
".config/hypr/hyprland.conf".source = ./hypr/hyprland.conf;
|
||||||
|
".config/hypr/hyprpaper.conf".source = ./hypr/hyprpaper.conf;
|
||||||
|
".config/waybar/config.jsonc".source = ./waybar/config.jsonc;
|
||||||
|
".config/waybar/style.css".source = ./waybar/style.css;
|
||||||
|
};
|
||||||
|
}
|
235
modules/hypr/hypr/hyprland.conf
Normal file
235
modules/hypr/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
|
||||||
|
########################################################################################
|
||||||
|
# AUTOGENERATED HYPR CONFIG.
|
||||||
|
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
||||||
|
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||||
|
########################################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Please note not all available settings / options are set here.
|
||||||
|
# For a full list, see the wiki
|
||||||
|
#
|
||||||
|
|
||||||
|
#autogenerated = 1 # remove this line to remove the warning
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
source = monitors.conf
|
||||||
|
|
||||||
|
# Prevent X apps from being pixelated
|
||||||
|
xwayland {
|
||||||
|
force_zero_scaling = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
|
|
||||||
|
# Execute your favorite apps at launch
|
||||||
|
# exec-once = waybar & hyprpaper & firefox
|
||||||
|
exec-once = waybar
|
||||||
|
exec-once = hyprpaper
|
||||||
|
exec-once = nm-applet
|
||||||
|
exec-once = systemctl --user enable opentabletdriver.service --now
|
||||||
|
|
||||||
|
# Source a file (multi-file configs)
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
# Some default env vars.
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
|
||||||
|
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
# kb_options = caps:swapescape
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = no
|
||||||
|
}
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
}
|
||||||
|
|
||||||
|
general {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
|
gaps_in = 6
|
||||||
|
gaps_out = 12
|
||||||
|
border_size = 2
|
||||||
|
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
|
col.active_border = rgb(a7c080)
|
||||||
|
col.inactive_border = rgba(a7c08000)
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false
|
||||||
|
}
|
||||||
|
|
||||||
|
group {
|
||||||
|
col.border_active = rgb(a7c080)
|
||||||
|
col.border_inactive = rgba(a7c08000)
|
||||||
|
|
||||||
|
groupbar {
|
||||||
|
col.active = rgb(a7c080)
|
||||||
|
col.inactive = rgb(2e383c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
|
rounding = 10
|
||||||
|
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = yes # you probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
workspace = w[tv1], gapsout:0, gapsin:0, border:0, rounding:0
|
||||||
|
workspace = f[1], gapsout:0, gapsin:0
|
||||||
|
windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||||
|
windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||||
|
windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||||
|
windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||||
|
|
||||||
|
master {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
gestures {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
workspace_swipe = off
|
||||||
|
}
|
||||||
|
|
||||||
|
misc {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Example windowrule v1
|
||||||
|
# windowrule = float, ^(kitty)$
|
||||||
|
# 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
|
||||||
|
bind = $mainMod SHIFT, Q, killactive,
|
||||||
|
bind = $mainMod SHIFT, E, exit, <D-v>
|
||||||
|
#bind = $mainMod, E, exec, dolphin
|
||||||
|
bind = $mainMod SHIFT, SPACE, togglefloating,
|
||||||
|
bindr = SUPER, SUPER_L, exec, rofi -show drun -theme
|
||||||
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle
|
||||||
|
|
||||||
|
# Modified from https://github.com/hyprwm/Hyprland/discussions/2617
|
||||||
|
bind = , Print, exec, mkdir -p $HOME"/screenshots/full" && grimblast copysave output $HOME"/screenshots/full/"$(date +'%F-%T.png')
|
||||||
|
bind = $mainMod, Print, exec, mkdir -p $HOME"/screenshots/area" && grimblast copysave area $HOME"/screenshots/area/"$(date +'%F-%T.png')
|
||||||
|
bind = ALT, Print, exec, mkdir -p $HOME"/screenshots/active" && grimblast copysave active $HOME"/screenshots/active/"$(date +'%F-%T.png')
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Example special workspace (scratchpad)
|
||||||
|
bind = $mainMod, MINUS, togglespecialworkspace, magic
|
||||||
|
bind = $mainMod SHIFT, MINUS, movetoworkspace, special:magic
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Move/windows with keyboard
|
||||||
|
bind = $mainMod SHIFT, LEFT, movewindow, l
|
||||||
|
bind = $mainMod SHIFT, RIGHT, movewindow, r
|
||||||
|
bind = $mainMod SHIFT, UP, movewindow, u
|
||||||
|
bind = $mainMod SHIFT, DOWN, movewindow, d
|
||||||
|
bind = $mainMod SHIFT CTRL, LEFT, movewindoworgroup, l
|
||||||
|
bind = $mainMod SHIFT CTRL, RIGHT, movewindoworgroup, r
|
||||||
|
bind = $mainMod SHIFT CTRL, UP, movewindoworgroup, u
|
||||||
|
bind = $mainMod SHIFT CTRL, DOWN, movewindoworgroup, d
|
||||||
|
|
||||||
|
# Tabbing
|
||||||
|
bind = $mainMod, w, togglegroup
|
||||||
|
bind = $mainMod CTRL, UP, changegroupactive, f
|
||||||
|
bind = $mainMod CTRL, RIGHT, changegroupactive, f
|
||||||
|
bind = $mainMod CTRL, DOWN, changegroupactive, b
|
||||||
|
bind = $mainMod CTRL, LEFT, changegroupactive, b
|
||||||
|
|
||||||
|
bind = $mainMod, F, fullscreen
|
||||||
|
|
||||||
|
windowrulev2 = stayfocused,class:(wofi)
|
||||||
|
windowrulev2 = noborder,class:(wofi)
|
||||||
|
|
||||||
|
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
# Requires playerctl
|
||||||
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
bindl = , XF86AudioNext, exec, playerctl next
|
2
modules/hypr/hypr/hyprpaper.conf
Normal file
2
modules/hypr/hypr/hyprpaper.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
preload = ~/.background-image
|
||||||
|
wallpaper = , ~/.background-image
|
179
modules/hypr/waybar/config.jsonc
Normal file
179
modules/hypr/waybar/config.jsonc
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"height": 30,
|
||||||
|
"spacing": 1,
|
||||||
|
"margin": 0,
|
||||||
|
"modules-left": ["hyprland/workspaces", "hyprland/window"],
|
||||||
|
"modules-center": [],
|
||||||
|
"modules-right": ["custom/weather", "disk", "memory", "cpu", "temperature", "battery", "pulseaudio", "clock", "tray"],
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": false,
|
||||||
|
"warp-on-scroll": false,
|
||||||
|
"format": "{name}"
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/playerctl": {
|
||||||
|
"format": " {}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"exec": "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{artist}} - {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F",
|
||||||
|
"on-click": "playerctl play-pause",
|
||||||
|
"on-click-right": "playerctl next",
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/weather": {
|
||||||
|
"exec": "curl 'https://wttr.in/?format=1&m'",
|
||||||
|
"interval": 600,
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/updates": {
|
||||||
|
"format": " {}",
|
||||||
|
"exec": "checkupdates | wc -l",
|
||||||
|
"interval": 3600,
|
||||||
|
"on-click": "kitty -e sudo pacman -Syu",
|
||||||
|
"signal": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/uptime": {
|
||||||
|
"format": " {}",
|
||||||
|
"exec": "uptime -p | sed 's/up //; s/ days/d/; s/ hours/h/; s/ minutes/m/'",
|
||||||
|
"interval": 60
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
},
|
||||||
|
"tooltip": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"format-alt": "{:%Y-%m-%d}",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode" : "month",
|
||||||
|
"mode-mon-col" : 3,
|
||||||
|
"weeks-pos" : "right",
|
||||||
|
"on-scroll" : 1,
|
||||||
|
"on-click-right": "mode",
|
||||||
|
"format": {
|
||||||
|
"months": "<span color='#d3c6aa'><b>{}</b></span>",
|
||||||
|
"days": "<span color='#e67e80'>{}</span>",
|
||||||
|
"weeks": "<span color='#a7c080'><b>W{}</b></span>",
|
||||||
|
"weekdays": "<span color='#7fbbb3'><b>{}</b></span>",
|
||||||
|
"today": "<span color='#dbbc7f'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"cpu": {
|
||||||
|
"format": "<span color=\"#a7c080\">CPU</span> {usage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"interval": 1,
|
||||||
|
"on-click": "kitty -e htop"
|
||||||
|
},
|
||||||
|
|
||||||
|
"memory": {
|
||||||
|
"format": "<span color=\"#a7c080\">RAM</span> {}%",
|
||||||
|
"interval": 1,
|
||||||
|
"on-click": "kitty -e htop"
|
||||||
|
},
|
||||||
|
|
||||||
|
"temperature": {
|
||||||
|
"critical-threshold": 80,
|
||||||
|
"format": "{temperatureC}°C",
|
||||||
|
"format-icons": ["", "", ""],
|
||||||
|
},
|
||||||
|
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-charging": "<span color=\"#a7c080\"></span> {capacity}%",
|
||||||
|
"format-plugged": "<span color=\"#a7c080\"></span> {capacity}%",
|
||||||
|
"format-alt": "{icon} {time}",
|
||||||
|
"format-icons": [
|
||||||
|
"<span color=\"#e67e80\"></span>",
|
||||||
|
"<span color=\"#e67e80\"></span>",
|
||||||
|
"<span color=\"#e69875\"></span>",
|
||||||
|
"<span color=\"#e69875\"></span>",
|
||||||
|
"<span color=\"#dbbc7f\"></span>",
|
||||||
|
"<span color=\"#dbbc7f\"></span>",
|
||||||
|
"<span color=\"#a7c080\"></span>",
|
||||||
|
"<span color=\"#a7c080\"></span>",
|
||||||
|
"<span color=\"#a7c080\"></span>",
|
||||||
|
"<span color=\"#a7c080\"></span>",
|
||||||
|
"<span color=\"#a7c080\"></span>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
"network": {
|
||||||
|
"format-wifi": " {essid} ({signalStrength}%)",
|
||||||
|
"format-ethernet": " {ifname}",
|
||||||
|
"format-linked": " {ifname} (No IP)",
|
||||||
|
"format-disconnected": " Disconnected",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||||
|
"tooltip-format": "{ifname}: {ipaddr}",
|
||||||
|
"on-click": "kitty -e nmtui"
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "<span color=\"#a7c080\">{icon}</span> {volume}%",
|
||||||
|
"format-bluetooth": "<span color=\"#a7c080\"></span> {volume}%",
|
||||||
|
"format-bluetooth-muted": "<span color=\"#a7c080\"></span> {icon}",
|
||||||
|
"format-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol",
|
||||||
|
"on-click-right": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||||
|
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
||||||
|
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -2%"
|
||||||
|
},
|
||||||
|
|
||||||
|
"backlight": {
|
||||||
|
"format": "{icon} {percent}%",
|
||||||
|
"format-icons": ["", "", ""],
|
||||||
|
"on-scroll-up": "brightnessctl set +5%",
|
||||||
|
"on-scroll-down": "brightnessctl set 5%-"
|
||||||
|
},
|
||||||
|
|
||||||
|
"disk": {
|
||||||
|
"interval": 30,
|
||||||
|
"format": "<span color=\"#a7c080\">{path}</span> {percentage_used}%",
|
||||||
|
"path": "/",
|
||||||
|
"on-click": "kitty -e gdu /"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 18,
|
||||||
|
"spacing": 5
|
||||||
|
}
|
||||||
|
}
|
167
modules/hypr/waybar/style.css
Normal file
167
modules/hypr/waybar/style.css
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
/*Colorschemes, there are Gruvbox, Tokyo Night, and Everforest by default. The way it works is whichever colorscheme section is defined last will be used. Here everforest is last, but put any one you want to use as the last one. ssdsssssssss*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Gruvbox Dark Colors */
|
||||||
|
@define-color background #282828;
|
||||||
|
@define-color background-light #3c3836;
|
||||||
|
@define-color foreground #ebdbb2;
|
||||||
|
@define-color black #32302f;
|
||||||
|
@define-color red #cc241d;
|
||||||
|
@define-color green #98971a;
|
||||||
|
@define-color yellow #d79921;
|
||||||
|
@define-color blue #458588;
|
||||||
|
@define-color magenta #b16286;
|
||||||
|
@define-color cyan #689d6a;
|
||||||
|
@define-color white #ebdbb2;
|
||||||
|
@define-color orange #d65d0e;
|
||||||
|
|
||||||
|
/* Tokyo Night */
|
||||||
|
@define-color background #1a1b26;
|
||||||
|
@define-color background-light #24283b;
|
||||||
|
@define-color foreground #c0caf5;
|
||||||
|
@define-color black #15161e;
|
||||||
|
@define-color red #f7768e;
|
||||||
|
@define-color green #9ece6a;
|
||||||
|
@define-color yellow #e0af68;
|
||||||
|
@define-color blue #7aa2f7;
|
||||||
|
@define-color magenta #bb9af7;
|
||||||
|
@define-color cyan #7dcfff;
|
||||||
|
@define-color white #a9b1d6;
|
||||||
|
@define-color orange #ff9e64;
|
||||||
|
|
||||||
|
|
||||||
|
/* Everforest Dark Colors */
|
||||||
|
@define-color background #2b3339;
|
||||||
|
@define-color background-light #323c41;
|
||||||
|
@define-color foreground #d3c6aa;
|
||||||
|
@define-color black #3c474d;
|
||||||
|
@define-color red #e67e80;
|
||||||
|
@define-color green #a7c080;
|
||||||
|
@define-color yellow #dbbc7f;
|
||||||
|
@define-color blue #7fbbb3;
|
||||||
|
@define-color magenta #d699b6;
|
||||||
|
@define-color cyan #83c092;
|
||||||
|
@define-color white #d3c6aa;
|
||||||
|
@define-color orange #e69875;
|
||||||
|
|
||||||
|
@define-color background #2b3339;
|
||||||
|
@define-color background rgba(43, 51, 57, 0.75);
|
||||||
|
|
||||||
|
/* Pastel TTY Colors */
|
||||||
|
/*
|
||||||
|
@define-color background #212121;
|
||||||
|
@define-color background-light #3a3a3a;
|
||||||
|
@define-color foreground #e0e0e0;
|
||||||
|
@define-color black #5a5a5a;
|
||||||
|
@define-color red #ff9a9e;
|
||||||
|
@define-color green #b5e8a9;
|
||||||
|
@define-color yellow #ffe6a7;
|
||||||
|
@define-color blue #63a4ff;
|
||||||
|
@define-color magenta #dda0dd;
|
||||||
|
@define-color cyan #a3e8e8;
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color orange #ff8952;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Module-specific colors */
|
||||||
|
@define-color workspaces-color @foreground;
|
||||||
|
@define-color workspaces-focused-bg @green;
|
||||||
|
@define-color workspaces-focused-fg @cyan;
|
||||||
|
@define-color workspaces-urgent-bg @red;
|
||||||
|
@define-color workspaces-urgent-fg @black;
|
||||||
|
|
||||||
|
/* Text and border colors for modules */
|
||||||
|
@define-color mode-color @orange;
|
||||||
|
@define-color mpd-color @magenta;
|
||||||
|
@define-color weather-color @magenta;
|
||||||
|
@define-color playerctl-color @magenta;
|
||||||
|
@define-color clock-color @blue;
|
||||||
|
@define-color cpu-color @green;
|
||||||
|
@define-color memory-color @magenta;
|
||||||
|
@define-color temperature-color @yellow;
|
||||||
|
@define-color temperature-critical-color @red;
|
||||||
|
@define-color battery-color @cyan;
|
||||||
|
@define-color battery-charging-color @green;
|
||||||
|
@define-color battery-warning-color @yellow;
|
||||||
|
@define-color battery-critical-color @red;
|
||||||
|
@define-color network-color @blue;
|
||||||
|
@define-color network-disconnected-color @red;
|
||||||
|
@define-color pulseaudio-color @orange;
|
||||||
|
@define-color pulseaudio-muted-color @red;
|
||||||
|
@define-color backlight-color @yellow;
|
||||||
|
@define-color disk-color @cyan;
|
||||||
|
@define-color uptime-color @green;
|
||||||
|
@define-color updates-color @orange;
|
||||||
|
@define-color quote-color @green;
|
||||||
|
@define-color idle-inhibitor-color @foreground;
|
||||||
|
@define-color idle-inhibitor-active-color @red;
|
||||||
|
|
||||||
|
* {
|
||||||
|
/* Base styling for all modules */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family: "Fira Code Nerd Font";
|
||||||
|
font-size: 16px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: transparent;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Common module styling with border-bottom */
|
||||||
|
#mode, #mpd, #custom-weather, #custom-playerctl, #clock, #cpu,
|
||||||
|
#memory, #temperature, #battery, #network, #pulseaudio,
|
||||||
|
#backlight, #disk, #custom-uptime, #custom-updates, #custom-quote,
|
||||||
|
#idle_inhibitor, #tray, #workspaces, #window {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
background-color: @background;
|
||||||
|
border-radius: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Workspaces styling */
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: @workspaces-color;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: @background-light;
|
||||||
|
box-shadow: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
box-shadow: inset 0 -2px @workspaces-focused-fg;
|
||||||
|
color: @workspaces-focused-fg;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: @workspaces-urgent-bg;
|
||||||
|
color: @workspaces-urgent-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Module-specific styling */
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
color: @red;
|
||||||
|
border-bottom-color: @red;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue