summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.config/dunst/dunstrc357
-rw-r--r--.config/hypr/hyprland.conf106
-rw-r--r--.config/hypr/hyprpaper.conf2
-rw-r--r--.config/tofi/config24
-rw-r--r--.config/tofi/otherconfig314
-rw-r--r--.config/waybar/config57
-rw-r--r--.config/waybar/style.css108
7 files changed, 611 insertions, 357 deletions
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
index f231d51..52973b6 100644
--- a/.config/dunst/dunstrc
+++ b/.config/dunst/dunstrc
@@ -1,430 +1,73 @@
[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 = none
-
- # 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 = "300x5-30+20"
-
- # 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 = 2
-
- # Padding between text and separator.
padding = 8
-
- # Horizontal padding.
horizontal_padding = 8
-
- # Defines width in pixels of frame around the notification window.
- # Set to 0 to disable.
frame_width = 3
-
- # Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
-
- # 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.
- # A client can set the 'transient' hint to bypass this. See the rules
- # section for how to disable this if necessary
idle_threshold = 120
-
- ### Text ###
-
font = Monospace 8
-
- # 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
- # <https://developer.gnome.org/pango/stable/pango-Markup.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
- # %% Literal %
- # Markup is allowed
format = "<b>%s</b>\n%b"
-
- # Alignment of message text.
- # Possible values are "left", "center" and "right".
alignment = left
-
- # Vertical alignment of message text and icon.
- # Possible values are "top", "center" and "bottom".
vertical_alignment = center
-
- # 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
-
- # When word_wrap is set to no, specify where to make an ellipsis in long lines.
- # Possible values are "start", "middle" and "end".
ellipsize = middle
-
- # Ignore newlines '\n' in notifications.
ignore_newline = no
-
- # Stack together notifications with the same content
stack_duplicates = true
-
- # Hide the count of stacked 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 = left
-
- # Scale small icons up to this size, set to 0 to disable. Helpful
- # for e.g. small files or high-dpi screens. In case of conflict,
- # max_icon_size takes precedence over this.
min_icon_size = 0
-
- # Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
-
- # Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
-
- ### 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/dmenu -p dunst:
-
- # Browser for opening urls in context menu.
browser = /usr/bin/sensible-browser
-
- # 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
-
- # Manage dunst's desire for talking
- # Can be one of the following values:
- # crit: Critical features. Dunst aborts
- # warn: Only non-fatal warnings
- # mesg: Important Messages
- # info: all unimportant stuff
- # debug: all less than unimportant stuff
verbosity = mesg
-
- # Define the corner radius of the notification window
- # in pixel size. If the radius is 0, you have no rounded
- # corners.
- # The radius will be automatically lowered if it exceeds half of the
- # notification height to avoid clipping text and/or icons.
corner_radius = 0
-
- # Ignore the dbus closeNotification message.
- # Useful to enforce the timeout set by dunst configuration. Without this
- # parameter, an application may close the notification sent before the
- # user defined timeout.
ignore_dbusclose = 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
-
- ### mouse
-
- # Defines list of actions for each mouse event
- # Possible values are:
- # * none: Don't do anything.
- # * do_action: If the notification has exactly one action, or one is marked as default,
- # invoke it. If there are multiple and no default, open the context menu.
- # * close_current: Close current notification.
- # * close_all: Close all notifications.
- # These values can be strung together for each mouse event, and
- # will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
-
-# 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 = ctrl+space
-
- # Close all notifications.
close_all = ctrl+shift+space
-
- # 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 = ctrl+grave
-
- # Context menu.
context = ctrl+shift+period
[urgency_low]
- # IMPORTANT: colors have to be defined in quotation marks.
- # Otherwise the "#" and following would be interpreted as a comment.
background = "#131417"
foreground = "#ffffff"
timeout = 10
- # Icon for notifications with low urgency, uncomment to enable
- #icon = /path/to/icon
[urgency_normal]
background = "#131417"
foreground = "#ffffff"
timeout = 10
- # Icon for notifications with normal urgency, uncomment to enable
- #icon = /path/to/icon
[urgency_critical]
background = "#131417"
foreground = "#ffffff"
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 (discouraged, see desktop_entry)
-# body
-# category
-# desktop_entry
-# icon
-# match_transient
-# msg_urgency
-# stack_tag
-# summary
-#
-# and you can override the
-# background
-# foreground
-# format
-# frame_color
-# fullscreen
-# new_icon
-# set_stack_tag
-# set_transient
-# timeout
-# urgency
-#
-# Shell-like globbing will get expanded.
-#
-# Instead of the appname filter, it's recommended to use the desktop_entry filter.
-# GLib based applications export their desktop-entry name. In comparison to the appname,
-# the desktop-entry won't get localized.
-#
-# 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.
-
-# Disable the transient hint so that idle_threshold cannot be bypassed from the
-# client
-#[transient_disable]
-# match_transient = yes
-# set_transient = no
-#
-# Make the handling of transient notifications more strict by making them not
-# be placed in history.
-#[transient_history_ignore]
-# match_transient = yes
-# history_ignore = yes
-
-# fullscreen values
-# show: show the notifications, regardless if there is a fullscreen window opened
-# delay: displays the new notification, if there is no fullscreen window active
-# If the notification is already drawn, it won't get undrawn.
-# pushback: same as delay, but when switching into fullscreen, the notification will get
-# withdrawn from screen again and will get delayed like a new notification
-#[fullscreen_delay_everything]
-# fullscreen = delay
-#[fullscreen_show_critical]
-# msg_urgency = critical
-# fullscreen = show
-
-#[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
-
-#[skip-display]
-# # This notification will not be displayed, but will be included in the history
-# summary = "foobar"
-# skip_display = 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
-#
-#[stack-volumes]
-# appname = "some_volume_notifiers"
-# set_stack_tag = "volume"
-#
# vim: ft=cfg
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..22d71f3
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,106 @@
+monitor=,1920x1080@60,auto,1
+
+exec-once = waybar & hyprpaper & dunst & # /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
+xwayland {
+ force_zero_scaling = true
+}
+
+input {
+ kb_layout = us
+ follow_mouse = 1
+ touchpad {
+ natural_scroll = yes
+ }
+ sensitivity = 0
+}
+
+general {
+ gaps_in = 4
+ gaps_out = 8
+ border_size = 2
+ col.active_border = rgba(f2f0faff)
+ col.inactive_border = rgba(272727ff)
+
+ layout = master
+}
+
+decoration {
+ rounding = 10
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+ }
+
+ drop_shadow = yes
+ shadow_range = 4
+ shadow_render_power = 3
+ col.shadow = rgba(1a1a1aee)
+}
+
+animations {
+ enabled = yes
+
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+
+ animation = windows, 1, 4, myBezier
+ animation = windowsOut, 1, 4, default, popin 80%
+ animation = fade, 1, 4, default
+ animation = workspaces, 1, 4, default
+}
+
+master {
+ new_is_master = false
+}
+
+gestures {
+ workspace_swipe = true
+}
+
+bind = SUPER SHIFT, RETURN, exec, terminator
+bind = SUPER SHIFT, Q, killactive
+bind = SUPER SHIFT, B, exit
+bind = SUPER, E, exec, dolphin
+bind = SUPER SHIFT, F, togglefloating
+bind = SUPER, F, fullscreen, 1
+bind = SUPER, SPACE, exec, pkill tofi || tofi-drun
+
+bind = SUPER, RETURN, layoutmsg, swapwithmaster master
+bind = SUPER SHIFT, J, layoutmsg, swapnext
+bind = SUPER SHIFT, K, layoutmsg, swapprev
+
+# Move focus with mainMod + arrow keys
+bind = SUPER, L, movefocus, l
+bind = SUPER, H, movefocus, r
+bind = SUPER, K, movefocus, u
+bind = SUPER, J, movefocus, d
+
+# Switch workspaces with mainMod + [0-9]
+bind = SUPER, 1, workspace, 1
+bind = SUPER, 2, workspace, 2
+bind = SUPER, 3, workspace, 3
+bind = SUPER, 4, workspace, 4
+bind = SUPER, 5, workspace, 5
+bind = SUPER, 6, workspace, 6
+bind = SUPER, 7, workspace, 7
+bind = SUPER, 8, workspace, 8
+bind = SUPER, 9, workspace, 9
+bind = SUPER, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = SUPER SHIFT, 1, movetoworkspace, 1
+bind = SUPER SHIFT, 2, movetoworkspace, 2
+bind = SUPER SHIFT, 3, movetoworkspace, 3
+bind = SUPER SHIFT, 4, movetoworkspace, 4
+bind = SUPER SHIFT, 5, movetoworkspace, 5
+bind = SUPER SHIFT, 6, movetoworkspace, 6
+bind = SUPER SHIFT, 7, movetoworkspace, 7
+bind = SUPER SHIFT, 8, movetoworkspace, 8
+bind = SUPER SHIFT, 9, movetoworkspace, 9
+bind = SUPER SHIFT, 0, movetoworkspace, 10
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = SUPER, mouse:272, movewindow
+bindm = SUPER, mouse:273, resizewindow
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..2af46e3
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,2 @@
+preload = /home/compromyse/Pictures/wallpaper.jpg
+wallpaper = ,/home/compromyse/Pictures/wallpaper.jpg
diff --git a/.config/tofi/config b/.config/tofi/config
new file mode 100644
index 0000000..3ea7c54
--- /dev/null
+++ b/.config/tofi/config
@@ -0,0 +1,24 @@
+font = UbuntuMono Nerd Font
+font-size = 16
+
+background-color = #000D
+text-color = #67676b
+selection-color = #f2f0fa
+prompt-color = #f2f0fa
+input-color = #f2f0fa
+
+prompt-text = "Applications > "
+num-results = 10
+result-spacing = 25
+
+width = 100%
+height = 100%
+
+border-width = 0
+outline-width = 0
+
+padding-left = 35%
+padding-top = 30%
+
+drun-launch = true
+matching-algorithm = fuzzy
diff --git a/.config/tofi/otherconfig b/.config/tofi/otherconfig
new file mode 100644
index 0000000..2f95e53
--- /dev/null
+++ b/.config/tofi/otherconfig
@@ -0,0 +1,314 @@
+#
+### Fonts
+#
+ # Font to use, either a path to a font file or a name.
+ #
+ # If a path is given, tofi will startup much quicker, but any
+ # characters not in the chosen font will fail to render.
+ #
+ # Otherwise, fonts are interpreted in Pango format.
+ font = "Sans"
+
+ # Point size of text.
+ font-size = 24
+
+ # Comma separated list of OpenType font feature settings to apply,
+ # if supported by the chosen font. The format is similar to the CSS
+ # "font-feature-settings" property.
+ #
+ # Examples:
+ #
+ # font-features = "smcp, c2sc" (all small caps)
+ # font-features = "liga 0" (disable ligatures)
+ font-features = ""
+
+ # Comma separated list of OpenType font variation settings to apply
+ # to variable fonts. The format is similar to the CSS
+ # "font-variation-settings" property.
+ #
+ # Examples:
+ #
+ # font-variations = "wght 900" (Extra bold)
+ # font-variations = "wdth 25, slnt -10" (Narrow and slanted)
+ font-variations = ""
+
+ # Perform font hinting. Only applies when a path to a font has been
+ # specified via `font`. Disabling font hinting speeds up text
+ # rendering appreciably, but will likely look poor at small font pixel
+ # sizes.
+ hint-font = true
+
+#
+### Text theming
+#
+ # Default text color
+ #
+ # All text defaults to this color if not otherwise specified.
+ text-color = #FFFFFF
+
+ # All pieces of text have the same theming attributes available:
+ #
+ # *-color
+ # Foreground color
+ #
+ # *-background
+ # Background color
+ #
+ # *-background-padding
+ # Background padding in pixels (comma-delimited, CSS-style list).
+ # See "DIRECTIONAL VALUES" under `man 5 tofi` for more info.
+ #
+ # *-background-corner-radius
+ # Radius of background box corners in pixels
+
+ # Prompt text theme
+ # prompt-color = #FFFFFF
+ prompt-background = #00000000
+ prompt-background-padding = 0
+ prompt-background-corner-radius = 0
+
+ # Placeholder text theme
+ placeholder-color = #FFFFFFA8
+ placeholder-background = #00000000
+ placeholder-background-padding = 0
+ placeholder-background-corner-radius = 0
+
+ # Input text theme
+ # input-color = #FFFFFF
+ input-background = #00000000
+ input-background-padding = 0
+ input-background-corner-radius = 0
+
+ # Default result text theme
+ # default-result-color = #FFFFFF
+ default-result-background = #00000000
+ default-result-background-padding = 0
+ default-result-background-corner-radius = 0
+
+ # Alternate (even-numbered) result text theme
+ #
+ # If unspecified, these all default to the corresponding
+ # default-result-* attribute.
+ #
+ # alternate-result-color = #FFFFFF
+ # alternate-result-background = #00000000
+ # alternate-result-background-padding = 0
+ # alternate-result-background-corner-radius = 0
+
+ # Selection text
+ selection-color = #F92672
+ selection-background = #00000000
+ selection-background-padding = 0
+ selection-background-corner-radius = 0
+
+ # Matching portion of selection text
+ selection-match-color = #00000000
+
+
+#
+### Text cursor theme
+#
+ # Style of the optional text cursor.
+ #
+ # Supported values: bar, block, underscore
+ text-cursor-style = bar
+
+ # Color of the text cursor
+ #
+ # If unspecified, defaults to the same as input-color
+ # text-cursor-color = #FFFFFF
+
+ # Color of text behind the text cursor when text-cursor-style = block
+ #
+ # If unspecified, defaults to the same as background-color
+ # text-cursor-background = #000000
+
+ # Corner radius of the text cursor
+ text-cursor-corner-radius = 0
+
+ # Thickness of the bar and underscore text cursors.
+ #
+ # If unspecified, defaults to a font-dependent value when
+ # text-cursor-style = underscore, or to 2 otherwise.
+ # text-cursor-thickness = 2
+
+#
+### Text layout
+#
+ # Prompt to display.
+ prompt-text = "run: "
+
+ # Extra horizontal padding between prompt and input.
+ prompt-padding = 0
+
+ # Placeholder input text.
+ placeholder-text = ""
+
+ # Maximum number of results to display.
+ # If 0, tofi will draw as many results as it can fit in the window.
+ num-results = 0
+
+ # Spacing between results in pixels. Can be negative.
+ result-spacing = 0
+
+ # List results horizontally.
+ horizontal = false
+
+ # Minimum width of input in horizontal mode.
+ min-input-width = 0
+
+#
+### Window theming
+#
+ # Width and height of the window. Can be pixels or a percentage.
+ width = 1280
+ height = 720
+
+ # Window background color
+ background-color = #1B1D1E
+
+ # Width of the border outlines in pixels.
+ outline-width = 4
+
+ # Border outline color
+ outline-color = #080800
+
+ # Width of the border in pixels.
+ border-width = 12
+
+ # Border color
+ border-color = #F92672
+
+ # Radius of window corners in pixels.
+ corner-radius = 0
+
+ # Padding between borders and text. Can be pixels or a percentage.
+ padding-top = 8
+ padding-bottom = 8
+ padding-left = 8
+ padding-right = 8
+
+ # Whether to clip text drawing to be within the specified padding. This
+ # is mostly important for allowing text to be inset from the border,
+ # while still allowing text backgrounds to reach right to the edge.
+ clip-to-padding = true
+
+ # Whether to scale the window by the output's scale factor.
+ scale = true
+
+#
+### Window positioning
+#
+ # The name of the output to appear on. An empty string will use the
+ # default output chosen by the compositor.
+ output = ""
+
+ # Location on screen to anchor the window to.
+ #
+ # Supported values: top-left, top, top-right, right, bottom-right,
+ # bottom, bottom-left, left, center.
+ anchor = center
+
+ # Set the size of the exclusive zone.
+ #
+ # A value of -1 means ignore exclusive zones completely.
+ # A value of 0 will move tofi out of the way of other windows' zones.
+ # A value greater than 0 will set that much space as an exclusive zone.
+ #
+ # Values greater than 0 are only meaningful when tofi is anchored to a
+ # single edge.
+ exclusive-zone = -1
+
+ # Window offset from edge of screen. Only has an effect when anchored
+ # to the relevant edge. Can be pixels or a percentage.
+ margin-top = 0
+ margin-bottom = 0
+ margin-left = 0
+ margin-right = 0
+
+#
+### Behaviour
+#
+ # Hide the mouse cursor.
+ hide-cursor = false
+
+ # Show a text cursor in the input field.
+ text-cursor = false
+
+ # Sort results by number of usages in run and drun modes.
+ history = true
+
+ # Specify an alternate file to read and store history information
+ # from / to. This shouldn't normally be needed, and is intended to
+ # facilitate the creation of custom modes.
+ # history-file = /path/to/histfile
+
+ # Select the matching algorithm used. If normal, substring matching is
+ # used, weighted to favour matches closer to the beginning of the
+ # string. If prefix, only substrings at the beginning of the string are
+ # matched. If fuzzy, searching is performed via a simple fuzzy matching
+ # algorithm.
+ #
+ # Supported values: normal, prefix, fuzzy
+ matching-algorithm = normal
+
+ # If true, require a match to allow a selection to be made. If false,
+ # making a selection with no matches will print input to stdout.
+ # In drun mode, this is always true.
+ require-match = true
+
+ # If true, automatically accept a result if it is the only one
+ # remaining. If there's only one result on startup, window creation is
+ # skipped altogether.
+ auto-accept-single = false
+
+ # If true, typed input will be hidden, and what is displayed (if
+ # anything) is determined by the hidden-character option.
+ hide-input = false
+
+ # Replace displayed input characters with a character. If the empty
+ # string is given, input will be completely hidden.
+ # This option only has an effect when hide-input is set to true.
+ hidden-character = "*"
+
+ # If true, use physical keys for shortcuts, regardless of the current
+ # keyboard layout. If false, use the current layout's keys.
+ physical-keybindings = true
+
+ # Instead of printing the selected entry, print the 1-based index of
+ # the selection. This option has no effect in run or drun mode. If
+ # require-match is set to false, non-matching input will still result
+ # in the input being printed.
+ print-index = false
+
+ # If true, directly launch applications on selection when in drun mode.
+ # Otherwise, just print the command line to stdout.
+ drun-launch = false
+
+ # The terminal to run terminal programs in when in drun mode.
+ # This option has no effect if drun-launch is set to true.
+ # Defaults to the value of the TERMINAL environment variable.
+ # terminal = foot
+
+ # Delay keyboard initialisation until after the first draw to screen.
+ # This option is experimental, and will cause tofi to miss keypresses
+ # for a short time after launch. The only reason to use this option is
+ # performance on slow systems.
+ late-keyboard-init = false
+
+ # If true, allow multiple simultaneous processes.
+ # If false, create a lock file on startup to prevent multiple instances
+ # from running simultaneously.
+ multi-instance = false
+
+ # Assume input is plain ASCII, and disable some Unicode handling
+ # functions. This is faster, but means e.g. a search for "e" will not
+ # match "é".
+ ascii-input = false
+
+#
+### Inclusion
+#
+ # Configs can be split between multiple files, and then included
+ # within each other.
+ # include = /path/to/config
diff --git a/.config/waybar/config b/.config/waybar/config
new file mode 100644
index 0000000..647428b
--- /dev/null
+++ b/.config/waybar/config
@@ -0,0 +1,57 @@
+{
+ "layer": "top",
+ "height": 40,
+ "modules-left": ["custom/launcher", "hyprland/workspaces", "hyprland/window"],
+ "modules-right": ["tray", "cpu", "backlight", "battery", "clock"],
+
+ // Modules configuration
+ "custom/launcher": {
+ "format": "<span font='24'></span>"
+ },
+ "hyprland/workspaces": {
+ "persistent-workspaces": {
+ "*": 9
+ },
+ "disable-scroll": true,
+ "format": "{icon}",
+ "on-click": "activate",
+ "format-icons": {
+ "urgent": "󰀨",
+ "active": "",
+ "empty": "",
+ "default": "",
+ "sort-by-number": true
+ },
+ },
+ "hyprland/window": {
+ "format": "> {title}",
+ "separate-outputs": true
+ },
+ "tray": {
+ "spacing": 10
+ },
+ "clock": {
+ "timezone": "Asia/Kolkata",
+ "format": " {:%Y-%M-%d  %H:%M}",
+ },
+ "cpu": {
+ "format": " {usage}%",
+ "tooltip": false
+ },
+ "backlight": {
+ "format": "{icon} {percent}%",
+ "format-icons": ["", "", "", "", "", "", "", "", ""]
+ },
+ "battery": {
+ "bat": "BAT1",
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%+",
+ "format-plugged": " {capacity}%",
+ "format-icons": ["", "", "", "", ""]
+ }
+}
+
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..a42db21
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,108 @@
+* {
+ font-family: UbuntuMono Nerd Font Mono;
+ font-weight: 500;
+ font-size: 16px;
+}
+
+window#waybar {
+ background-color: rgba(27, 27, 27, 1);
+ color: #f2f0fa;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+button {
+ box-shadow: inset 0 -3px transparent;
+ border: none;
+ border-radius: 0px;
+}
+
+button:hover {
+ background: inherit;
+}
+
+#custom-launcher {
+ margin: 0 10px;
+ padding: 0 10px;
+}
+
+#workspaces {
+ border-radius: 10px;
+ background-color: #f2f0fa;
+ color: #272727;
+ padding: 0 10px;
+}
+
+#workspaces button {
+ padding: 0 10px;
+ color: #272727;
+ background-color: #f2f0fa;
+}
+
+#workspaces button.active {
+ color: #272727;
+ background-color: #f2f0fa;
+}
+
+#workspaces button.urgent {
+ color: #272727;
+ background-color: #f2f0fa;
+}
+
+#clock {
+ padding: 0 10px;
+ margin: 0 10px;
+ color: #f2f0fa;
+ border-radius: 0px;
+}
+
+#battery,
+#cpu,
+#backlight,
+#tray {
+ padding: 0 10px;
+ margin: 0 0px;
+ background-color: #f2f0fa;
+ color: #272727;
+}
+
+#battery {
+ border-radius: 0px 10px 10px 0px;
+}
+
+#cpu {
+ border-radius: 10px 0px 0px 10px;
+}
+
+#tray {
+ border-radius: 10px;
+ margin: 0 10px;
+}
+
+#window,
+#workspaces {
+ margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+}