Compare commits

...

2 Commits

Author SHA1 Message Date
Jacob Babor
c661155c2e Update submodules 2024-11-05 20:51:08 -06:00
Jacob Babor
0845419583 Add Hyprland work config 2024-11-05 20:50:29 -06:00
30 changed files with 1446 additions and 3 deletions

@ -1 +1 @@
Subproject commit a35fa4d732220914d620deccbc8ef68fa1bff96f Subproject commit 4fca3824cc34f731cb5b3e51844698052c5f6c52

@ -1 +1 @@
Subproject commit 58c97bc21c6f657d3babdd4eefce7593e30e75ce Subproject commit d6a07ea376a4b7372aa59e7ea6a051c9470bb4d0

@ -1 +1 @@
Subproject commit 0bf607233719a0ed6e14bf0197ba8950bf8833fc Subproject commit df6d29a8549a13db026818c27a6b060978db7a3d

View File

@ -0,0 +1,68 @@
# vim: set ft=cfg:
[global]
## BEHAVIOR
follow = mouse # Notifications follow the monitor with the mouse
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\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"

View File

@ -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:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# 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 = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\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

View File

@ -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
}

View File

@ -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

View File

@ -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.
}

View File

@ -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)$

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
# vim: set ft=config:
# Configuration for hypridle is in ~/.config/hypr/hypridle.conf
exec-once = hypridle

View File

@ -0,0 +1,2 @@
# vim: set ft=config:
exec-once = pgrep swww-daemon || { rm /run/user/$UID/swww.socket; swww-daemon --format xrgb; }

View File

@ -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

View File

@ -0,0 +1,2 @@
# vim: set ft=config:
exec-once = test -x "$HOME/.config/hypr/post.sh" && "$HOME/.config/hypr/post.sh"

View File

@ -0,0 +1,5 @@
# vim: set ft=config:
debug {
# This enables debug logging for troubleshooting
disable_logs = false
}

View File

@ -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

View File

@ -0,0 +1,3 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,auto,1.3333

View File

@ -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.

View File

@ -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
}

View File

@ -0,0 +1,3 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
source = ~/.config/hypr/config.d/*.conf

View File

@ -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
}

View File

@ -0,0 +1,55 @@
# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
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

View File

@ -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
#: <https://sw.kovidgoyal.net/kitty/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.

View File

@ -0,0 +1,129 @@
/*
* config.rasi
* Copyright (C) 2020 Vintage Salt <rehashedsalt@cock.li>
*
* 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
*/

View File

@ -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}% <span font-size=\"7pt\">{swapPercentage}%</span>",
"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"
}
}]

View File

@ -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;
}

View File

@ -0,0 +1,6 @@
# vim: set ft=config:
# wofi(5)
insensitive=true
allow_images=true
no_actions=true
hide_scroll=true

View File

@ -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;
}

View File

@ -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 */
}