diff --git a/hyprland-work/.config/dunst/dunstrc b/hyprland-work/.config/dunst/dunstrc new file mode 100644 index 00000000..02f8b39e --- /dev/null +++ b/hyprland-work/.config/dunst/dunstrc @@ -0,0 +1,68 @@ +# vim: set ft=cfg: +[global] + ## BEHAVIOR + follow = mouse # Notifications follow the monitor with the mouse + format = "%s (%a)\n%b" + hide_duplicate_count = false # Hide count of stacked notifs + ignore_newline = false # Ignore \n (for some reason) + indicate_hidden = true # Show how many messages are currently hidden + idle_threshold = 120 # Time in seconds before user is considered idle + markup = full # Whether to disable markup features (see manpage) + show_age_threshold = 60 # Shows age if message is older than this (in sec) + show_indicators = true # Show hints for interactable notifs + sort = true # Sort messages by urgency. + stack_duplicates = true + timeout = 10 # Time in seconds before the thing fades + + ## MISC CONFIGURATION + always_run_script = true # Runs scripts for rules even if they're hidden + browser = xdg-open + dmenu = /usr/bin/wofi --dmenu -p dunst: + + ## WINDOW CONFIGURATION + title = Dunst + class = Dunst + + ## HISTORY + sticky_history = yes # Notifs pulled from history stay onscreen + history_length = 20 # Buffer size + + ## LOOKS + # COLORS + # Note that rules defined later on can and will override these + # All colors must be quoted so as to not misinterpret as comments + background= "#fbf1c7cc" # Background of the notification + frame_color = "#f2e5bccc" + separator_color = frame + foreground = "#3c3836" # Font color, for body and title + highlight = "#b8bb26" # Progress bars + # SIZE AND POSITIONING + width = 400 + height = 300 + offset = 8x8 # This takes into account any bars + corner_radius = 8 + transparency = 0 + # PROGRESS BAR + progress_bar = true + progress_bar_corner_radius = 8 + progress_bar_horizontal_alignment = left + progress_bar_frame_width = 2 + progress_bar_height = 8 + # INTERIOR FORMATTING + frame_width = 6 # Defines width in pixels of frame + horizontal_padding = 12 # Horizontal padding. + padding = 12 # Padding between text and separator. + separator_height = 4 + # TEXT + alignment = left + font = IBM Plex Sans 10 + line_height = 0 + word_wrap = yes + # ICONS + icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps + icon_position = right + icon_corner_radius = 8 + max_icon_size = 48 + +[urgency_critical] + foreground = "#fb4934" diff --git a/hyprland-work/.config/dunst/dunstrc-light b/hyprland-work/.config/dunst/dunstrc-light new file mode 100644 index 00000000..365be6b2 --- /dev/null +++ b/hyprland-work/.config/dunst/dunstrc-light @@ -0,0 +1,321 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + geometry = "500x8-6+50" + corner_radius = 0 + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 0 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 4 + + # Padding between text and separator. + padding = 12 + + # Horizontal padding. + horizontal_padding = 12 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 4 + + # Defines color of the frame around the notification window. + frame_color = "#32302f" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + idle_threshold = 120 + + ### Text ### + + #font = Monospace 8 + font = Roboto 10 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # Markup is allowed + format = "%s (%a)\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Merge multiple notifications with the same content + stack_duplicates = true + + # Hide the count of merged notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = right + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 48 + + # Paths to default icons. + icon_path = /usr/share/icons/Papirus-Dark/48x48/status/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/apps + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/rofi -dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = xdg-open + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = mod1+shift+space + + # Close all notifications. + close_all = mod1+shift+enter + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = mod1+shift+d + + # Context menu. + context = mod1+shift+o + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#282828" + foreground = "#ebdbb2" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "#282828" + foreground = "#ebdbb2" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_critical] + background = "#282828" + foreground = "#fabd2f" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# Messages can be matched by "appname", "summary", "body", "icon", "category", +# "msg_urgency" and you can override the "timeout", "urgency", "foreground", +# "background", "new_icon" and "format". +# Shell-like globbing will get expanded. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +# vim: ft=cfg diff --git a/hyprland-work/.config/hypr/config.d/00-basic.conf b/hyprland-work/.config/hypr/config.d/00-basic.conf new file mode 100644 index 00000000..ad5c2519 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/00-basic.conf @@ -0,0 +1,74 @@ +# vim: set ft=config: + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that + +general { + # https://wiki.hyprland.org/Configuring/Variables/ + gaps_in = 8 + gaps_out = 16 + border_size = 4 + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.active_border = rgba(458588ff) + col.inactive_border = rgba(ebdbb2cc) + layout = dwindle + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + rounding = 6 + blur { + enabled = false + size = 3 + passes = 1 + } + drop_shadow = no + shadow_range = 8 + shadow_render_power = 3 + col.shadow = rgba(282828ee) +} + +animations { + # https://wiki.hyprland.org/Configuring/Animations/ + enabled = yes + bezier = snappy, 0.05, 0.9, 0.1, 1.05 + animation = windows, 1, 2, snappy + animation = windowsIn, 1, 1, default + animation = windowsOut, 1, 2, default, popin 80% + animation = layers, 1, 1, default + animation = border, 1, 3, default + animation = borderangle, 1, 8, default + animation = fade, 1, 3, default + animation = workspaces, 1, 1.5, snappy +} + +dwindle { + # https://wiki.hyprland.org/Configuring/Dwindle-Layout/ + pseudotile = yes # Enables pseudotile functionality + preserve_split = yes # Remember splits + force_split = 2 # Force splits to put the child on the right/down +} + +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 = true + workspace_swipe_invert = true +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_splash_rendering = true +} + +xwayland { + force_zero_scaling = true +} diff --git a/hyprland-work/.config/hypr/config.d/03-keybinds.conf b/hyprland-work/.config/hypr/config.d/03-keybinds.conf new file mode 100644 index 00000000..df7fda53 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/03-keybinds.conf @@ -0,0 +1,83 @@ +# vim: set ft=config: +# https://wiki.hyprland.org/Configuring/Binds/ +$mainMod = ALT + +# Program opening and closing +bind = $mainMod, Return, exec, kitty --single-instance --wait-for-single-instance-window-close +bind = $mainMod, Q, killactive +bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun +#bind = $mainMod, M, exit, +bind = $mainMod, T, pseudo, # dwindle +bind = $mainMod, F, togglefloating, +bind = $mainMod Shift, F, fullscreen +bind = $mainMod, R, togglesplit, # dwindle + +# Dunst management +bind = $mainMod Shift, Space, exec, dunstctl close +bind = $mainMod Shift, Return, exec, dunstctl close-all +bind = $mainMod Shift, D, exec, dunstctl history-pop +bind = $mainMod Shift, O, exec, dunstctl context + +# Pulse controls +bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5% +bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5% + +# Screenshots +bind = $mainMod, O, exec, grim -g "$(slurp -d)" - | wl-copy + +# pavucontrol controls +bind = $mainMod, P, exec, pgrep pavucontrol || pavucontrol +bind = $mainMod Shift, P, exec, pkill pavucontrol + +# Miscellaneous non-movement hotkeys +bind = CTRL ALT, L, exec, loginctl lock-session + +# Change focus +bind = $mainMod, h, movefocus, l +bind = $mainMod, j, movefocus, d +bind = $mainMod, k, movefocus, u +bind = $mainMod, l, movefocus, r + +# Move the focused window around +bind = $mainMod Shift, h, movewindow, l +bind = $mainMod Shift, j, movewindow, d +bind = $mainMod Shift, k, movewindow, u +bind = $mainMod Shift, l, movewindow, r + +# 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 +bind = $mainMod, MINUS, workspace, 11 + +# 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 = $mainMod SHIFT, MINUS, movetoworkspace, 11 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, Period, workspace, e+1 +bind = $mainMod, Comma, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow diff --git a/hyprland-work/.config/hypr/config.d/04-inputs.conf b/hyprland-work/.config/hypr/config.d/04-inputs.conf new file mode 100644 index 00000000..99e0b4b4 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/04-inputs.conf @@ -0,0 +1,13 @@ +# vim: set ft=config: +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + accel_profile = flat + follow_mouse = 1 + numlock_by_default = true + touchpad { + # Also sometimes called "Australian Scrolling" + natural_scroll = no + } + sensitivity = 0 # -1.0 to 1.0, 0 means no modification. +} diff --git a/hyprland-work/.config/hypr/config.d/50-window-rules.conf b/hyprland-work/.config/hypr/config.d/50-window-rules.conf new file mode 100644 index 00000000..cff4f355 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/50-window-rules.conf @@ -0,0 +1,18 @@ +# vim: set ft=config: +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# Force all windows to be unable to maximize themselves +# Default rule that ships with hypr +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. + +# Force pavucontrol to be the center of attention +windowrulev2 = float, center 1, pin, class:^(.*pavucontrol.*)$ + +# Assign specific windows to specific workspaces on launch +windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$ +windowrulev2 = workspace 8 silent, class:^(org.mozilla.Thunderbird)$ +windowrulev2 = workspace 8 silent, class:^(Slack)$ +windowrulev2 = workspace 9 silent, class:^(.*vesktop.*)$ +windowrulev2 = workspace 10 silent, class:^(.*spotube.*)$ +windowrulev2 = workspace 10 silent, class:^(.*potify.*)$ +windowrulev2 = workspace 10 silent, class:^(im.riot.Riot)$ diff --git a/hyprland-work/.config/hypr/config.d/60-monitors.conf b/hyprland-work/.config/hypr/config.d/60-monitors.conf new file mode 100644 index 00000000..9fb74ac2 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/60-monitors.conf @@ -0,0 +1,4 @@ +# vim: set ft=config: +# See https://wiki.hyprland.org/Configuring/Monitors/ +# Fall-through rule that sets sane defaults when possible +monitor=,preferred,auto,auto diff --git a/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf b/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf new file mode 100644 index 00000000..3c341936 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf @@ -0,0 +1,15 @@ +# vim: set ft=config: +# Run this at first to fix up some systemd stuff +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +# Polkit +exec-once = /usr/libexec/xfce-polkit +# Not technically a daemon but required for wallet +exec-once = /usr/libexec/pam_kwallet_init + +# Daemons and stuff +exec-once = nm-applet +exec-once = flatpak run com.nextcloud.desktopclient.nextcloud --background +#exec-once = flatpak run io.kopia.KopiaUI +exec-once = waybar +exec-once = wlsunset -T 5300 -t 3500 -g 1 diff --git a/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf b/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf new file mode 100644 index 00000000..945a1b5d --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf @@ -0,0 +1,3 @@ +# vim: set ft=config: +# Configuration for hypridle is in ~/.config/hypr/hypridle.conf +exec-once = hypridle diff --git a/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf b/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf new file mode 100644 index 00000000..33c84580 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf @@ -0,0 +1,2 @@ +# vim: set ft=config: +exec-once = pgrep swww-daemon || { rm /run/user/$UID/swww.socket; swww-daemon --format xrgb; } diff --git a/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf b/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf new file mode 100644 index 00000000..150edd66 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf @@ -0,0 +1,8 @@ +# vim: set ft=config: +# Workspace-specific applications +exec-once = [workspace 8 silent] flatpak run org.keepassxc.KeePassXC +#exec-once = [workspace 8 silent] flatpak run org.mozilla.Thunderbird +#exec-once = [workspace 9 silent] flatpak run dev.vencord.Vesktop +exec-once = [workspace 8 silent] flatpak run com.slack.Slack +#exec-once = [workspace 10 silent] flatpak run im.riot.Riot +exec-once = [workspace 10 silent] flatpak run com.spotify.Client diff --git a/hyprland-work/.config/hypr/config.d/90-post.conf b/hyprland-work/.config/hypr/config.d/90-post.conf new file mode 100644 index 00000000..cb25a079 --- /dev/null +++ b/hyprland-work/.config/hypr/config.d/90-post.conf @@ -0,0 +1,2 @@ +# vim: set ft=config: +exec-once = test -x "$HOME/.config/hypr/post.sh" && "$HOME/.config/hypr/post.sh" diff --git a/hyprland-work/.config/hypr/contrib/000-debug.conf b/hyprland-work/.config/hypr/contrib/000-debug.conf new file mode 100644 index 00000000..be278ad1 --- /dev/null +++ b/hyprland-work/.config/hypr/contrib/000-debug.conf @@ -0,0 +1,5 @@ +# vim: set ft=config: +debug { + # This enables debug logging for troubleshooting + disable_logs = false +} diff --git a/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf b/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf new file mode 100644 index 00000000..37a789f3 --- /dev/null +++ b/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf @@ -0,0 +1,18 @@ +# vim: set ft=config: +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=eDP-1,preferred,auto,1.3333 +monitor = DP-1,preferred,1440x937,1 +monitor = DP-2,preferred,0x0,1,transform,1 + +workspace = 1, monitor:DP-1 +workspace = 2, monitor:DP-1 +workspace = 3, monitor:DP-1 +workspace = 4, monitor:DP-1 +workspace = 5, monitor:DP-1 +workspace = 6, monitor:DP-1 +workspace = 7, monitor:DP-1 + +workspace = 8, monitor:DP-2 +workspace = 9, monitor:DP-2 +workspace = 10, monitor:DP-2 +workspace = 11, monitor:DP-2 diff --git a/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf b/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf new file mode 100644 index 00000000..db5957c8 --- /dev/null +++ b/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf @@ -0,0 +1,3 @@ +# vim: set ft=config: +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=eDP-1,preferred,auto,1.3333 diff --git a/hyprland-work/.config/hypr/contrib/README.md b/hyprland-work/.config/hypr/contrib/README.md new file mode 100644 index 00000000..7b5fec16 --- /dev/null +++ b/hyprland-work/.config/hypr/contrib/README.md @@ -0,0 +1,8 @@ +# Contrib + +Scripts and config files that don't necessarily belong in the defaults. + +## Usage + +Link to any of these files from within config.d to load them up. Use them +to store machine-specific configs or optional scripts. diff --git a/hyprland-work/.config/hypr/hypridle.conf b/hyprland-work/.config/hypr/hypridle.conf new file mode 100644 index 00000000..67c0abb1 --- /dev/null +++ b/hyprland-work/.config/hypr/hypridle.conf @@ -0,0 +1,11 @@ +# vim: set ft=config: +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hypridle +general { + lock_cmd = pgrep -u "$USER" hyprlock || hyprlock + unlock_cmd = pkill -xu "$USER" -SIGUSR1 hyprlock +} + +listener { + timeout = 900 + on-timeout = loginctl lock-session +} diff --git a/hyprland-work/.config/hypr/hyprland.conf b/hyprland-work/.config/hypr/hyprland.conf new file mode 100644 index 00000000..c3cdcb86 --- /dev/null +++ b/hyprland-work/.config/hypr/hyprland.conf @@ -0,0 +1,3 @@ +# vim: set ft=config: +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +source = ~/.config/hypr/config.d/*.conf diff --git a/hyprland-work/.config/hypr/hyprlock.conf b/hyprland-work/.config/hypr/hyprlock.conf new file mode 100644 index 00000000..48c9331c --- /dev/null +++ b/hyprland-work/.config/hypr/hyprlock.conf @@ -0,0 +1,68 @@ +# vim: set ft=config: +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock + +# General settings +general { + grace = 5 + hide_cursor = true +} + +# The password input field +input-field { + monitor = + fade_on_empty = true + rounding = 8 + outer_color = rgba(50,48,47,0.8) + inner_color = rgba(50,48,47,0.8) + font_color = rgb(235,219,178) + check_color = rgb(250,189,47) + fail_color = rgb(251,73,52) + size = 400, 50 + position = 0, -200 +} + +# The background of the login box +shape { + color = rgba(40,40,40,0.8) + size = 600, 800 + position = 0, 0 + rounding = 8 +} + +# A label showing the current time +label { + text = cmd[update:30] echo ""$(date +"%I:%M %p")"" + font_size = 48 + color = rgb(235,219,178) + position = 0, 250 + halign = center + valign = center +} +# A label showing the current date +label { + text = cmd[update:30] echo ""$(date +'%A, %-d %B %Y')"" + color = rgb(235,219,178) + position = 0, 150 + halign = center + valign = center +} +# The background of the lock screen, behind the box +background { + color = rgba(0,0,0,0.9) +} +# The current user's face +image { + path = ~/.face + border_color = rgba(50,48,47,0.8) + size = 150 + position = 0, 0 +} +# Name of the current user +label { + text = $USER + color = rgba(235,219,178,0.5) + font_size = 14 + position = 0, -100 + halign = center + valign = center +} diff --git a/hyprland-work/.config/kitty/gruvbox.conf b/hyprland-work/.config/kitty/gruvbox.conf new file mode 100644 index 00000000..9d938d2f --- /dev/null +++ b/hyprland-work/.config/kitty/gruvbox.conf @@ -0,0 +1,55 @@ +# Based on https://github.com/morhetz/gruvbox by morhetz +# Adapted to kitty by wdomitrz + +cursor #928374 +cursor_text_color background + +url_color #83a598 + +visual_bell_color #8ec07c +bell_border_color #8ec07c + +active_border_color #d3869b +inactive_border_color #665c54 + +foreground #ebdbb2 +background #282828 +selection_foreground #928374 +selection_background #ebdbb2 + +active_tab_foreground #fbf1c7 +active_tab_background #665c54 +inactive_tab_foreground #a89984 +inactive_tab_background #3c3836 + +# black (bg3/bg4) +color0 #665c54 +color8 #7c6f64 + +# red +color1 #cc241d +color9 #fb4934 + +#: green +color2 #98971a +color10 #b8bb26 + +# yellow +color3 #d79921 +color11 #fabd2f + +# blue +color4 #458588 +color12 #83a598 + +# purple +color5 #b16286 +color13 #d3869b + +# aqua +color6 #689d6a +color14 #8ec07c + +# white (fg4/fg3) +color7 #a89984 +color15 #bdae93 diff --git a/hyprland-work/.config/kitty/kitty.conf b/hyprland-work/.config/kitty/kitty.conf new file mode 100644 index 00000000..2349b81d --- /dev/null +++ b/hyprland-work/.config/kitty/kitty.conf @@ -0,0 +1,40 @@ +# vim:fileencoding=utf-8:foldmethod=marker +font_family IBM Plex Mono +font_size 9.0 +# url_color #0087bd +# url_style curly +# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh +# detect_urls yes +# underline_hyperlinks hover +enable_audio_bell no +confirm_os_window_close 0 +background_opacity 0.8 +include ~/.config/kitty/gruvbox.conf +# Why the fuck does my terminal need to do this? +update_check_interval 0 + + +# shell_integration enabled + +#: Enable shell integration on supported shells. This enables features +#: such as jumping to previous prompts, browsing the output of the +#: previous command in a pager, etc. on supported shells. Set to +#: disabled to turn off shell integration, completely. It is also +#: possible to disable individual features, set to a space separated +#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- +#: prompt-mark, no-complete, no-sudo. See Shell integration +#: for details. + +# term xterm-kitty +term xterm-256color + +#: The value of the TERM environment variable to set. Changing this +#: can break many terminal programs, only change it if you know what +#: you are doing, not because you read some advice on "Stack Overflow" +#: to change it. The TERM variable is used by various programs to get +#: information about the capabilities and behavior of the terminal. If +#: you change it, depending on what programs you run, and how +#: different the terminal you are changing it to is, various things +#: from key-presses, to colors, to various advanced features may not +#: work. Changing this option by reloading the config will only affect +#: newly created windows. diff --git a/hyprland-work/.config/rofi/config.rasi b/hyprland-work/.config/rofi/config.rasi new file mode 100644 index 00000000..4410d978 --- /dev/null +++ b/hyprland-work/.config/rofi/config.rasi @@ -0,0 +1,129 @@ +/* + * config.rasi + * Copyright (C) 2020 Vintage Salt + * + * Distributed under terms of the MIT License + * + * See rofi-theme(5) for documentation + */ + +configuration { + matching: "normal"; + show-icons: true; + icon-theme: "Papirus-Gruvbox-Dark"; + modi: "drun,ssh,window"; +} + +* { + background: #282828; + background-alt: #32302f; + foreground: #ebdbb2; + foreground-alt: #fb4934; + yellow: #fabd2f; + blue: #83a598; + cyan: #8ec07c; + + text-color: @foreground; + background-color: @background; + font: "IBM Plex Sans 10"; +} + +#window { + location: southwest; + anchor: southwest; + + border-color: @background-alt; + background-color: @background; + + border: 4px 4px 0 0; + height: 60%; + width: 30%; + padding: 0em; +} + #inputbar { + background-color: @background-alt; + padding: 0.5em; + } + #case-indicator { + enabled: false; + } + #prompt { + enabled: false; + } + #textbox-prompt-colon { + enabled: false; + } + #entry { + background-color: inherit; + font: "IBM Plex Sans 12"; + padding: 0.5em; + } + #num-filtered-rows { + background-color: inherit; + font: "IBM Plex Sans 12"; + padding: 0.5em; + } + #textbox-num-sep { + background-color: inherit; + font: "IBM Plex Sans 12"; + padding: 0.5em 0em; + } + #num-rows { + background-color: inherit; + font: "IBM Plex Sans 12"; + padding: 0.5em; + } + #message { + padding: 4px; + } + #textbox { + padding: 4px 12px 4px 12px; + font-color: @foreground-alt; + } + + #listview { + padding: 0.5em; + border: none; + } + #scrollbar { + handle-color: @background-alt; + enabled: false; + } + #element { + padding: 0.5em; + } + #element alternate.normal { + background-color: @background; + } + #element normal active { + text-color: @cyan; + } + #element normal urgent { + text-color: @yellow; + } + #element selected normal { + background-color: @blue; + text-color: @background; + } + #element selected active { + background-color: @cyan; + text-color: @background; + } + #element selected urgent { + background-color: @yellow; + text-color: @background; + } + + #sidebar { + } + + #button { + padding: 8px; + } + + #button selected { + background-color: @background-alt; + } + +/* vim:ft=css +*/ diff --git a/hyprland-work/.config/waybar/config b/hyprland-work/.config/waybar/config new file mode 100644 index 00000000..1918bcf5 --- /dev/null +++ b/hyprland-work/.config/waybar/config @@ -0,0 +1,136 @@ +[{ + "id": "top", + "name": "top", + "layer": "top", + "height": 40, + "margin-top": 16, + "margin-left": 16, + "margin-right": 16, + "modules-left": ["hyprland/workspaces", "hyprland/window", "sway/mode"], + "modules-right": ["tray"], + "hyprland/workspaces": { + "all-outputs": false, + "disable-scroll": true, + "persistent-workspaces": { + "eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], + "DP-1": [ 1, 2, 3, 4, 5, 6, 7 ], + "DP-2": [ 8, 9, 10, 11 ] + } + }, + "hyprland/window": { + "separate-outputs": true, + "format": "{}" + }, + "tray": { + "icon-size": 16, + "spacing": 10 + } +}, +{ + "id": "bottom", + "name": "bottom", + "layer": "top", + "position": "bottom", + "height": 40, + "margin-bottom": 16, + "margin-left": 16, + "margin-right": 16, + "modules-left": ["gamemode", "custom/flatpak", "custom/backup", "battery", "temperature", "cpu", "memory", "network"], + "modules-center": [], + "modules-right": ["mpris", "pulseaudio", "backlight", "idle_inhibitor", "clock"], + "clock": { + "format": "{:%a %b %d %I:%M %p}", + "tooltip": false + }, + "network": { + "interval": 5, + "format": " {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-disconnected": "" + }, + "battery": { + "states": { + "good": 100, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": "{icon} {capacity}%", + "format-plugged": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""] + }, + "backlight": { + "format": " {percent}%" + }, + "idle_inhibitor": { + "format": "" + }, + "gamemode": { + "format": "{glyph}", + "glyph": "", + "use-icon": false, + "icon-spacing": 0, + "icon-size": 0 + }, + "pulseaudio": { + "scroll-step": 5, + "format": "{icon} {volume}%", + "format-muted": "{icon}", + "format-icons": { + "default": ["", "", ""] + }, + "scroll-step": 1, + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" + }, + "cpu": { + "interval": 3, + "format": " {usage}%", + "states": { + "critical": 90, + "warning": 80, + "regular": 50 + } + }, + "memory": { + "interval": 5, + "format": " {percentage}% {swapPercentage}%", + "states": { + "critical": 90, + "warning": 80, + "regular": 50 + } + }, + "temperature": { + "format": " {temperatureC}°", + "critical-threshold": 80 + }, + "mpris": { + "interval": 1, + "artist-len": 30, + "album-len": 30, + "title-len": 40, + "format": "{player_icon} - {dynamic}", + "ignored-players": [ + "firefox" + ], + "player-icons": { + "default": "♫" + }, + "status-icons": { + "playing": "⏵", + "paused": "⏸", + "stopped": "⏹" + } + }, + "custom/flatpak": { + "interval": 180, + "tooltip-format": "{} pending Flatpak updates available", + "format": " {}", + "exec": "flatpak remote-ls --updates --app | wc -l", + "exec-if": "test $(flatpak remote-ls --updates --app | wc -l) -gt 0" + }, + "custom/backup": { + "interval": 60, + "format": "", + "exec": "systemctl is-failed backup.service" + } +}] diff --git a/hyprland-work/.config/waybar/style.css b/hyprland-work/.config/waybar/style.css new file mode 100644 index 00000000..1d22a1a3 --- /dev/null +++ b/hyprland-work/.config/waybar/style.css @@ -0,0 +1,210 @@ +/* + * style.css + * Copyright (C) 2021 Vintage Salt + * + * Distributed under terms of the MIT license. + */ + +* { + border: none; + border-radius: 0; + font-family: "IBM Plex Sans", "Font Awesome 6 Free", sans-serif; + font-size: 13px; +} + +window#waybar { + background: transparent; +} +.modules-left { + background: rgba(235, 219, 178, 0.8); + border-radius: 8px; +} +.modules-right { + background: rgba(235, 219, 178, 0.8); + border-radius: 8px; +} + +/* Hypr stuff */ +#workspaces { +} +#workspaces button { + /* Any random button */ + background: transparent; + color: #7c6f64; + padding: 0 0.9em; + border-radius: 8px; +} +#workspaces button.persistent { + color: rgba(40, 40, 40, 0.8); +} +#workspaces button.empty { + color: rgba(40, 40, 40, 0.2); +} +#workspaces button:hover { + /* A button that is currently being hovered over by the mouse cursor */ + /* This comes with free transitions */ + box-shadow: inherit; + text-shadow: inherit; + background-color: #928374; +} +#workspaces button.focused { + color: rgba(235, 219, 178, 0.8); + background: #928374; + font-weight: bold; +} +#workspaces button.visible { + color: rgba(235, 219, 178, 0.8); + background: #076678; + font-weight: bold; +} +#workspaces button.active { + color: rgba(235, 219, 178, 0.8); + background: #458588; + font-weight: bold; +} +#workspaces button.urgent { + color: #d79921; + font-weight: bold; +} +/* Window and mode display */ +#window { + color: rgba(40, 40, 40, 0.4); + padding: 0 1em; + border-radius: 8px; +} +window#waybar.empty #window { + /* We do this so it properly hides when on an empty workspace */ + padding: 0; +} +window#waybar.solo #window { + /* Nothing */ +} +window#waybar.floating #window { + /* Workspace contains only floating windows */ + color: rgba(235, 219, 178, 0.8); + background: #689d6a; +} +window#waybar.fullscreen #window { + /* Workspace containing a "fullscreen" window (note that this includes fullscreen, 1, which is maximize) */ + color: rgba(235, 219, 178, 0.8); + background: #b16286; +} + +/* widgets */ +#pulseaudio { + padding: 0 1em; + color: #282828; + border-radius: 8px; +} +#pulseaudio.muted { + border-radius: 8px; + background: #cc241d; + color: #ebdbb2; +} +#tray { + padding: 0 1em; +} +#mpris { + padding: 0 1em; +} +#mpris.playing { + color: #b16286; +} +#mpris.paused, #mpris.stopped { + color: rgba(40, 40, 40, 0.2); +} + +#network { + padding: 0 1em; + color: rgba(40, 40, 40, 0.2); +} +#network.disconnected { + color: #cc241d; +} + +#idle_inhibitor { + padding: 0 1em; +} +#idle_inhibitor.deactivated { + color: rgba(40, 40, 40, 0.2); +} +#idle_inhibitor.activated { + color: #282828; +} + +#backlight { + padding: 0 1em; + color: #282828; +} +#gamemode { + padding: 0 1em; + color: rgba(40, 40, 40, 0.2); +} +#gamemode.running { + color: #b8bb26; +} +/* Memory */ +#memory { + padding: 0 1em; + color: rgba(40, 40, 40, 0.2); +} +#memory.critical { + color: #cc241d; +} +#memory.warning { + color: #d79921; +} +#memory.regular { + color: #282828; +} +/* CPU */ +#cpu { + padding: 0 1em; + color: rgba(40, 40, 40, 0.2); +} +#cpu.critical { + color: #cc241d; +} +#cpu.warning { + color: #d79921; +} +#cpu.regular { + color: #282828; +} +/* Battery */ +#battery { + padding: 0 1em; +} +#battery.charging { + color: #b8bb26; +} +#battery.good { + color: rgba(40, 40, 40, 0.2); +} +#battery.discharging.warning { + color: #d79921; +} +#battery.discharging.critical { + color: #cc241d; +} +#clock { + color: #282828; + padding: 0 1em; +} +/* Temperature*/ +#temperature { + padding: 0 1em; + color: rgba(40, 40, 40, 0.2); +} +#temperature.critical { + color: #cc241d; +} +/* Custom modules */ +#custom-backup { + color: #cc241d; + padding: 0 1em; +} +#custom-flatpak { + color: rgba(40, 40, 40, 0.2); + padding: 0 1em; +} diff --git a/hyprland-work/.config/wofi/config b/hyprland-work/.config/wofi/config new file mode 100644 index 00000000..0f7e0039 --- /dev/null +++ b/hyprland-work/.config/wofi/config @@ -0,0 +1,6 @@ +# vim: set ft=config: +# wofi(5) +insensitive=true +allow_images=true +no_actions=true +hide_scroll=true diff --git a/hyprland-work/.config/wofi/style.css b/hyprland-work/.config/wofi/style.css new file mode 100644 index 00000000..d8dadd6d --- /dev/null +++ b/hyprland-work/.config/wofi/style.css @@ -0,0 +1,57 @@ +/* ::root{ */ +/* --accent: #5291e2; */ +/* --dark: #383C4A; */ +/* --light: #7C818C; */ +/* --ld: #404552; */ +/* --dl: #4B5162 */ +/* --white: white; */ +/* } */ + +/* The whole window */ +window { + background-color: transparent; + border-radius: 8px; + color: #ebdbb2; +} + +/* The outermost box that contains everything */ +#outer-box { + border-radius: 8px; + padding: 1em; + background-color: rgba(40,40,40,0.8); +} + +/* The box that contains all the search results */ +#inner-box { + background: transparent + margin: 5px; +} + +/* The search bar */ +#input { + margin: 5px; + border-radius: 8px; + border: none; + background-color: #32302f; + color: #ebdbb2; +} + +/* The scrollbar */ +#scroll { +} + +/* The text for every search result entry */ +#text { + padding: 5px; + color: #ebdbb2; +} + +/* The container for every entry */ +#entry { + background-color: transparent; + border: 4px solid transparent; + border-radius: 8px; +} +#entry:selected { + border: 4px solid #83a598; +} diff --git a/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css b/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css new file mode 100644 index 00000000..33189e0c --- /dev/null +++ b/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css @@ -0,0 +1,83 @@ +/** + * @name midnight-gruvbox + * @description A dark, rounded discord theme. Managed by .dotfiles, packed in by stow. Original by refact0r + * @author salt + * @version 1.6.2 + * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css +*/ + +/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */ + +@import url('https://refact0r.github.io/midnight-discord/midnight.css'); + +/* customize things here */ +:root { + /* font, change to 'gg sans' for default discord font*/ + --font: 'IBM Plex Sans'; + + /* top left corner text */ + --corner-text: 'Midnight'; + + /* color of status indicators and window controls */ + --online-indicator: #b8bb26; /* change to #23a55a for default green */ + --dnd-indicator: #fb4934; /* change to #f13f43 for default red */ + --idle-indicator: #fabd2f; /* change to #f0b232 for default yellow */ + --streaming-indicator: #d3869b; /* change to #593695 for default purple */ + + /* accent colors */ + --accent-1: #83a598; /* links */ + --accent-2: #83a598; /* general unread/mention elements */ + --accent-3: #83a598; /* accent buttons */ + --accent-4: #458588; /* accent buttons when hovered */ + --accent-5: #458588; /* accent buttons when clicked */ + --mention: #3c3836; /* mentions & mention messages */ + --mention-hover: #504945; /* mentions & mention messages when hovered */ + + /* text colors */ + --text-0: #ebdbb2; /* text on colored elements */ + --text-1: var(--text-2); /* other normally white text */ + --text-2: #ebdbb2; /* headings and important text */ + --text-3: #d5c4a1; /* normal text */ + --text-4: #bdae93; /* icon buttons and channels */ + --text-5: #7c6f64; /* muted channels/chats and timestamps */ + + /* background and dark colors */ + --bg-1: #665c54; /* dark buttons when clicked */ + --bg-2: #504945; /* dark buttons */ + --bg-3: #32302f; /* spacing, secondary elements */ + --bg-4: #282828; /* main background color */ + --hover: #3c3836; /* channels and buttons when hovered */ + --active: #3c3836; /* channels and buttons when clicked or selected */ + --message-hover: #1d2021; /* messages when hovered */ + + /* amount of spacing and padding */ + --spacing: 8px; + + /* animations */ + /* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */ + --list-item-transition: 0.2s ease; /* channels/members/settings hover transition */ + --unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */ + --moon-spin-transition: 0.4s ease; /* moon icon spin */ + --icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */ + + /* corner roundness (border-radius) */ + --roundness-xl: 16px; /* roundness of big panel outer corners */ + --roundness-l: 14px; /* popout panels */ + --roundness-m: 12px; /* smaller panels, images, embeds */ + --roundness-s: 8px; /* members, settings inputs */ + --roundness-xs: 4px; /* channels, buttons */ + --roundness-xxs: 4px; /* searchbar, small elements */ + + /* direct messages moon icon */ + /* change to block to show, none to hide */ + --discord-icon: block; /* discord icon */ + --moon-icon: none; /* moon icon */ + --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */ + --moon-icon-size: auto; + + /* filter uncolorable elements to fit theme */ + /* (just set to none, they're too much work to configure) */ + --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */ + --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */ + --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */ +}