summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0x221E2026-04-12 16:55:48 +0200
committer0x221E2026-04-12 16:55:48 +0200
commita77e09ac8e8e3680c1d2f931413dee69e1e621ff (patch)
tree02a4748e755b1dd674715e9fa2f8eee4138a2471
initial commit
-rw-r--r--alacritty/alacritty.toml20
-rw-r--r--custom/sunset.pngbin0 -> 2804358 bytes
-rw-r--r--custom/wall0.pngbin0 -> 14194868 bytes
-rw-r--r--custom/wall1.pngbin0 -> 6144371 bytes
-rw-r--r--custom/wallpaper-dark.pngbin0 -> 763979 bytes
-rw-r--r--emacs/init.el104
-rw-r--r--hypr/hyprland.conf354
-rw-r--r--hypr/hyprlock.conf69
-rw-r--r--hypr/hyprpaper.conf5
-rw-r--r--sway/config263
-rw-r--r--waybar/config145
-rwxr-xr-xwaybar/scripts/uptime.sh6
-rw-r--r--waybar/style.css226
13 files changed, 1192 insertions, 0 deletions
diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml
new file mode 100644
index 0000000..945cd55
--- /dev/null
+++ b/alacritty/alacritty.toml
@@ -0,0 +1,20 @@
+[font]
+size = 20.0
+
+[font.offset]
+y=0 # ZEN_OFFSET
+
+[font.normal]
+family = "JetBrains Mono"
+style = "Regular"
+
+[font.bold]
+family = "JetBrains Mono"
+style = "Bold"
+
+[font.italic]
+family = "JetBrains Mono"
+style = "Italic"
+
+[window]
+#opacity = 0.8
diff --git a/custom/sunset.png b/custom/sunset.png
new file mode 100644
index 0000000..d806728
--- /dev/null
+++ b/custom/sunset.png
Binary files differ
diff --git a/custom/wall0.png b/custom/wall0.png
new file mode 100644
index 0000000..73bdeef
--- /dev/null
+++ b/custom/wall0.png
Binary files differ
diff --git a/custom/wall1.png b/custom/wall1.png
new file mode 100644
index 0000000..53e4c90
--- /dev/null
+++ b/custom/wall1.png
Binary files differ
diff --git a/custom/wallpaper-dark.png b/custom/wallpaper-dark.png
new file mode 100644
index 0000000..4cde924
--- /dev/null
+++ b/custom/wallpaper-dark.png
Binary files differ
diff --git a/emacs/init.el b/emacs/init.el
new file mode 100644
index 0000000..9744f3b
--- /dev/null
+++ b/emacs/init.el
@@ -0,0 +1,104 @@
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+(package-initialize)
+
+;; Optional: Refresh the package list automatically if it's empty
+(unless package-archive-contents
+ (package-refresh-contents))
+
+(unless (package-installed-p 'multiple-cursors)
+ (package-refresh-contents)
+ (package-install 'multiple-cursors))
+
+(require 'multiple-cursors)
+;; (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
+
+(global-set-key (kbd "C-z") 'mc/mark-next-like-this)
+(global-set-key (kbd "S-<f2>") 'mc/mark-previous-like-this)
+(global-set-key (kbd "C-<f2>") 'mc/mark-all-like-this)
+
+(global-display-line-numbers-mode)
+(setq backup-directory-alist `(("." . "~/emacs/autosaves/")))
+(setq auto-save-file-name-transforms '((".*" "~/emacs/autosaves/\\1" t)))
+
+(load-theme 'gruber-darker t)
+(menu-bar-mode -1)
+
+;; Disable the tool bar (the row of icons at the top)
+(tool-bar-mode -1)
+
+;; Disable the scroll bar (the vertical bar on the side)
+(scroll-bar-mode -1)
+
+(set-face-attribute 'default nil :height 170)
+
+(setq project-vc-extra-root-markers '("CMakeLists.txt" "Makefile" "package.json" ".root"))
+
+(use-package company
+ :ensure t
+ :init (global-company-mode)
+ :config
+ (setq company-idle-delay 0.0 ; How long to wait before popup (0 = instant)
+ company-minimum-prefix-length 1)) ; Show list after typing 1 character
+
+;(use-package lsp-mode
+; :ensure t
+; :init
+; :hook ((c-mode . lsp)
+; (c++-mode . lsp))
+; :custom
+; (lsp-enable-on-type-formatting nil)
+; (lsp-enable-indentation nil)
+; (lsp-before-save-formatting nil)
+; (electric-indent-mode -1)
+; :config
+; (setq-default c-basic-offset 8)
+; (setq-default c-default-style "bsd")
+; :commands lsp)
+
+(setq project-vc-extra-root-markers '(".project"))
+(setq project-find-functions '(project-try-vc))
+
+(setenv "PATH" (concat "/home/cool/opt/cross/bin:" (getenv "PATH")))
+(add-to-list 'exec-path "/home/cool/opt/cross/bin")
+
+(setq-default c-basic-offset 8)
+
+(defun c-style ()
+ (c-set-offset 'defun-open 0)
+ (c-set-offset 'substatement-open 0)
+
+ (setq c-backslash-column 80)
+ (setq c-backslash-max-column 80))
+
+(add-hook 'c-mode-common-hook 'c-style)
+
+(setq-default fill-column 80)
+
+(global-display-fill-column-indicator-mode)
+
+(defun my-c-backslash-region-80 ()
+ (interactive)
+ (c-backslash-region (region-beginning) (region-end) 80 nil))
+
+(add-hook 'c-mode-hook
+ (lambda ()
+ (local-set-key (kbd "C-c \\") 'my-c-backslash-region-80)))
+
+
+(custom-set-variables
+ ;; custom-set-variables was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(package-selected-packages
+ '(company dap-mode ement gruber-darker-theme lsp-mode magit multiple-cursors
+ svelte-mode)))
+(custom-set-faces
+ ;; custom-set-faces was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ )
+
+
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
new file mode 100644
index 0000000..ab6a4cd
--- /dev/null
+++ b/hypr/hyprland.conf
@@ -0,0 +1,354 @@
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hypr.land/Configuring/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hypr.land/Configuring/Monitors/
+monitor=,preferred,auto,1
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = alacritty
+$fileManager = nemo
+$menu = wofi
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+# exec-once = $terminal
+# exec-once = nm-applet &
+# exec-once = waybar & hyprpaper & firefox
+exec-once = hyprpaper
+exec-once = waybar & sway-nc
+exec-once = opensnitch-ui
+exec-once = wl-paste --type text --watch cliphist store
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hypr.land/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+###################
+### PERMISSIONS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Permissions/
+# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
+# for security reasons
+
+# ecosystem {
+# enforce_permissions = 1
+# }
+
+# permission = /usr/(bin|local/bin)/grim, screencopy, allow
+# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hypr.land/Configuring/Variables/
+
+# https://wiki.hypr.land/Configuring/Variables/#general
+general {
+ gaps_in = 5
+ gaps_out = 10
+
+ border_size = 1
+
+ # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false
+
+ # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#decoration
+decoration {
+ rounding = 10
+ rounding_power = 2
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ # https://wiki.hypr.land/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#animations
+animations {
+ enabled = yes
+
+ animation = windowsMove, 0, 1, default
+
+ # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
+ # NAME, X0, Y0, X1, Y1
+ bezier = easeOutQuint, 0.23, 1, 0.32, 1
+ bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
+ bezier = linear, 0, 0, 1, 1
+ bezier = almostLinear, 0.5, 0.5, 0.75, 1
+ bezier = quick, 0.15, 0, 0.1, 1
+
+ # Default animations, see https://wiki.hypr.land/Configuring/Animations/
+ # NAME, ONOFF, SPEED, CURVE, [STYLE]
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+ animation = zoomFactor, 1, 7, quick
+}
+
+# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+# workspace = w[tv1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrule {
+# name = no-gaps-wtv1
+# match:float = false
+# match:workspace = w[tv1]
+#
+# border_size = 0
+# rounding = 0
+# }
+#
+# windowrule {
+# name = no-gaps-f1
+# match:float = false
+# match:workspace = f[1]
+#
+# border_size = 0
+# rounding = 0
+# }
+
+# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
+dwindle {
+ pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # You probably want this
+}
+
+# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hypr.land/Configuring/Variables/#input
+input {
+ kb_layout = tr
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+# See https://wiki.hypr.land/Configuring/Gestures
+gesture = 3, horizontal, workspace
+
+# Example per-device config
+# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
+device {
+ name = epic-mouse-v1
+ sensitivity = -0.5
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
+bind = $mainMod, return, exec, $terminal
+bind = $mainMod, C, killactive,
+bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating
+bind = $mainMod, D, exec, $menu --show drun
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, T, togglesplit, # dwindle
+bind = , Print, exec, grim -g "$(slurp)" - | swappy -f -
+bind = $mainMod CTRL, L, exec, hyprlock
+bind = $mainMod SHIFT, F, fullscreen
+bind = $mainMod, F, fullscreen, 1
+bind = $mainMod, X, exec, cliphist list | wofi --dmenu | cliphist decode
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, l, movefocus, r
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, j, movefocus, d
+
+bind = $mainMod SHIFT, h, movewindow, l
+bind = $mainMod SHIFT, l, movewindow, r
+bind = $mainMod SHIFT, k, movewindow, u
+bind = $mainMod SHIFT, j, movewindow, d
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
+# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrules that are useful
+
+windowrule {
+ # Ignore maximize requests from all apps. You'll probably like this.
+ name = suppress-maximize-events
+ match:class = .*
+
+ suppress_event = maximize
+}
+
+windowrule {
+ # Fix some dragging issues with XWayland
+ name = fix-xwayland-drags
+ match:class = ^$
+ match:title = ^$
+ match:xwayland = true
+ match:float = true
+ match:fullscreen = false
+ match:pin = false
+
+ no_focus = true
+}
+
+# Hyprland-run windowrule
+windowrule {
+ name = move-hyprland-run
+
+ match:class = hyprland-run
+
+ move = 20 monitor_h-120
+ float = yes
+}
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
new file mode 100644
index 0000000..8c5be9b
--- /dev/null
+++ b/hypr/hyprlock.conf
@@ -0,0 +1,69 @@
+# sample hyprlock.conf
+# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
+#
+# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
+# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
+#
+# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
+#
+# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
+#
+
+$font = Monospace
+
+general {
+ hide_cursor = true
+}
+
+# uncomment to enable fingerprint authentication
+# auth {
+# fingerprint {
+# enabled = true
+# ready_message = Scan fingerprint to unlock
+# present_message = Scanning...
+# retry_delay = 250 # in milliseconds
+# }
+# }
+
+animations {
+ enabled = true
+ bezier = linear, 1, 1, 0, 0
+ animation = fadeIn, 1, 5, linear
+ animation = fadeOut, 1, 5, linear
+ animation = inputFieldDots, 1, 2, linear
+}
+
+background {
+ monitor =
+}
+
+input-field {
+ monitor =
+ size = 10%, 5%
+ outline_thickness = 3
+ inner_color = rgba(0, 0, 0, 0.0) # no fill
+
+ outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
+ check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
+ fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
+
+ font_color = rgb(143, 143, 143)
+ fade_on_empty = false
+ rounding = 15
+
+ font_family = $font
+ placeholder_text = Password...
+ fail_text = $PAMFAIL
+
+ # uncomment to use a letter instead of a dot to indicate the typed password
+ # dots_text_format = *
+ # dots_size = 0.4
+ dots_spacing = 0.3
+
+ # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
+ # hide_input = true
+
+ position = 0, -20
+ halign = center
+ valign = center
+}
diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf
new file mode 100644
index 0000000..bc2fb5b
--- /dev/null
+++ b/hypr/hyprpaper.conf
@@ -0,0 +1,5 @@
+wallpaper {
+ monitor =
+ path = ~/.config/custom/sunset.png
+ fit_mode = cover
+}
diff --git a/sway/config b/sway/config
new file mode 100644
index 0000000..aafe260
--- /dev/null
+++ b/sway/config
@@ -0,0 +1,263 @@
+# 1. Kill any existing (broken) portal processes
+exec systemctl --user stop xdg-desktop-portal xdg-desktop-portal-wlr
+
+# 2. Export the variables to the systemd session
+exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
+exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+
+# 3. Start them back up with the correct environment
+exec systemctl --user start xdg-desktop-portal-wlr
+
+
+# Default config for sway
+#
+# Copy this to ~/.config/sway/config and edit it to your liking.
+#
+# Read `man 5 sway` for a complete reference.
+
+### Variables
+#
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+# Home row direction keys, like vim
+set $left h
+set $down j
+set $up k
+set $right l
+# Your preferred terminal emulator
+set $term alacritty
+# Your preferred application launcher
+set $menu wmenu-run
+
+### Output configuration
+#
+# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
+output * bg ~/.config/custom/wallpaper-dark.png fill
+#
+# Example configuration:
+#
+output eDP-1 resolution 1920x1080 position 0,0
+output HDMI-A-1 resolution 1920x1080 position 1920,0
+
+workspace 1 output eDP-1
+workspace 2 output eDP-1
+workspace 3 output eDP-1
+workspace 4 output eDP-1
+workspace 5 output eDP-1
+
+
+workspace 6 output HDMI-A-1
+workspace 7 output HDMI-A-1
+workspace 8 output HDMI-A-1
+workspace 9 output HDMI-A-1
+workspace 10 output HDMI-A-1
+
+#
+# You can get the names of your outputs by running: swaymsg -t get_outputs
+
+### Idle configuration
+#
+# Example configuration:
+#
+# exec swayidle -w \
+# timeout 300 'swaylock -f -c 000000' \
+# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
+# before-sleep 'swaylock -f -c 000000'
+#
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 300 seconds, and turn your screens back on when
+# resumed. It will also lock your screen before your computer goes to sleep.
+
+### Input configuration
+#
+# Example configuration:
+#
+# input type:touchpad {
+# dwt enabled
+# tap enabled
+# natural_scroll enabled
+# middle_emulation enabled
+# }
+#
+ input type:keyboard {
+ xkb_layout "tr, us"
+ xkb_variant ",dvorak"
+ xkb_options "grp:shifts_toggle"
+ }
+#
+# You can also configure each device individually.
+# Read `man 5 sway-input` for more information about this section.
+
+### Key bindings
+#
+# Basics:
+#
+ # Start a terminal
+ bindsym $mod+Return exec $term
+
+ # Kill focused window
+ bindsym $mod+Shift+q kill
+
+ # Start your launcher
+ bindsym $mod+d exec $menu
+
+ # Drag floating windows by holding down $mod and left mouse button.
+ # Resize them with right mouse button + $mod.
+ # Despite the name, also works for non-floating windows.
+ # Change normal to inverse to use left mouse button for resizing and right
+ # mouse button for dragging.
+ floating_modifier $mod normal
+
+ # Reload the configuration file
+ bindsym $mod+Shift+c reload
+
+ # Exit sway (logs you out of your Wayland session)
+ bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
+#
+# Moving around:
+#
+ # Move your focus around
+ bindsym --to-code $mod+$left focus left
+ bindsym --to-code $mod+$down focus down
+ bindsym --to-code $mod+$up focus up
+ bindsym --to-code $mod+$right focus right
+ # Or use $mod+[up|down|left|right]
+ bindsym --to-code $mod+Left focus left
+ bindsym --to-code $mod+Down focus down
+ bindsym --to-code $mod+Up focus up
+ bindsym --to-code $mod+Right focus right
+
+ # Move the focused window with the same, but add Shift
+ bindsym --to-code $mod+Shift+$left move left
+ bindsym --to-code $mod+Shift+$down move down
+ bindsym --to-code $mod+Shift+$up move up
+ bindsym --to-code $mod+Shift+$right move right
+ # Ditto, with arrow keys
+ bindsym --to-code $mod+Shift+Left move left
+ bindsym --to-code $mod+Shift+Down move down
+ bindsym --to-code $mod+Shift+Up move up
+ bindsym --to-code $mod+Shift+Right move right
+#
+# Workspaces:
+#
+ # Switch to workspace
+ bindsym $mod+1 workspace number 1
+ bindsym $mod+2 workspace number 2
+ bindsym $mod+3 workspace number 3
+ bindsym $mod+4 workspace number 4
+ bindsym $mod+5 workspace number 5
+ bindsym $mod+6 workspace number 6
+ bindsym $mod+7 workspace number 7
+ bindsym $mod+8 workspace number 8
+ bindsym $mod+9 workspace number 9
+ bindsym $mod+0 workspace number 10
+ # Move focused container to workspace
+ bindsym $mod+Shift+1 move container to workspace number 1
+ bindsym $mod+Shift+2 move container to workspace number 2
+ bindsym $mod+Shift+3 move container to workspace number 3
+ bindsym $mod+Shift+4 move container to workspace number 4
+ bindsym $mod+Shift+5 move container to workspace number 5
+ bindsym $mod+Shift+6 move container to workspace number 6
+ bindsym $mod+Shift+7 move container to workspace number 7
+ bindsym $mod+Shift+8 move container to workspace number 8
+ bindsym $mod+Shift+9 move container to workspace number 9
+ bindsym $mod+Shift+0 move container to workspace number 10
+ # Note: workspaces can have any name you want, not just numbers.
+ # We just use 1-10 as the default.
+#
+# Layout stuff:
+#
+ # You can "split" the current object of your focus with
+ # $mod+b or $mod+v, for horizontal and vertical splits
+ # respectively.
+ bindsym $mod+b splith
+ bindsym $mod+v splitv
+
+ # Switch the current container between different layout styles
+ bindsym $mod+s layout stacking
+ bindsym $mod+w layout tabbed
+ bindsym $mod+e layout toggle split
+
+ # Make the current focus fullscreen
+ bindsym $mod+f fullscreen
+
+ # Toggle the current focus between tiling and floating mode
+ bindsym $mod+Shift+space floating toggle
+
+ # Swap focus between the tiling area and the floating area
+ bindsym $mod+space focus mode_toggle
+
+ # Move focus to the parent container
+ bindsym $mod+a focus parent
+#
+# Scratchpad:
+#
+ # Sway has a "scratchpad", which is a bag of holding for windows.
+ # You can send windows there and get them back later.
+
+ # Move the currently focused window to the scratchpad
+ bindsym $mod+Shift+minus move scratchpad
+
+ # Show the next scratchpad window or hide the focused scratchpad window.
+ # If there are multiple scratchpad windows, this command cycles through them.
+ bindsym $mod+minus scratchpad show
+#
+# Resizing containers:
+#
+mode "resize" {
+ # left will shrink the containers width
+ # right will grow the containers width
+ # up will shrink the containers height
+ # down will grow the containers height
+ bindsym $left resize shrink width 10px
+ bindsym $down resize grow height 10px
+ bindsym $up resize shrink height 10px
+ bindsym $right resize grow width 10px
+
+ # Ditto, with arrow keys
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+
+ # Return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+#
+# Utilities:
+#
+ # Special keys to adjust volume via PulseAudio
+ bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
+ bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
+ bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
+ bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
+ # Special keys to adjust brightness via brightnessctl
+ bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
+ bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
+ # Special key to take a screenshot with grim
+ bindsym Print exec flameshot gui
+
+#
+# Status Bar:
+#
+# Read `man 5 sway-bar` for more information about this section.
+bar {
+ position top
+ #swaybar_command waybar
+ # When the status_command prints a new line to stdout, swaybar updates.
+ # The default just shows the current date and time.
+ #status_command while date +'%Y-%m-%d %X'; do sleep 1; done
+ status_command i3status
+
+ colors {
+ statusline #ffffff
+ background #323232
+ inactive_workspace #32323200 #32323200 #5c5c5c
+ }
+}
+
+include /etc/sway/config.d/*
+
+exec opensnitch-ui
diff --git a/waybar/config b/waybar/config
new file mode 100644
index 0000000..b7c3af2
--- /dev/null
+++ b/waybar/config
@@ -0,0 +1,145 @@
+{
+ "layer": "top",
+ "position": "top",
+ "margin-bottom": -10,
+ "spacing" : 0,
+ "modules-left": [
+ "hyprland/workspaces",
+ "custom/uptime",
+ "cpu"
+ ],
+
+ "modules-center": ["clock"],
+
+ "modules-right": [
+ "custom/pomodoro",
+ "bluetooth",
+ "network",
+ "pulseaudio",
+ "backlight",
+ "battery",
+ "tray",
+ ],
+
+ "hyprland/workspaces": {
+ "format": "{name}: {icon}",
+ "format-icons": {
+ "active": "",
+ "default": ""
+ }
+ },
+
+ "bluetooth": {
+ "format": "󰂲",
+ "format-on": "{icon}",
+ "format-off": "{icon}",
+ "format-connected":"{icon}",
+ "format-icons":{
+ "on":"󰂯",
+ "off": "󰂲",
+ "connected": "󰂱",
+ },
+ "on-click": "blueman-manager",
+ "tooltip-format-connected":"{device_enumerate}"
+ },
+
+ "custom/music": {
+ "format": " {}",
+ "escape": true,
+ "interval": 5,
+ "tooltip": false,
+ "exec": "playerctl metadata --format='{{ artist }} - {{ title }}'",
+ "on-click": "playerctl play-pause",
+ "max-length": 50
+ },
+
+ "clock": {
+ "timezone": "Europe/Amsterdam",
+ "tooltip": false,
+ "format": "{:%H:%M:%S - %A, %d}",
+ "interval": 1,
+ },
+
+ "network": {
+ "format-wifi": "󰤢",
+ "format-ethernet": "󰈀 ",
+ "format-disconnected": "󰤠 ",
+ "interval": 5,
+ "tooltip-format": "{essid} ({signalStrength}%)",
+ "on-click": "nm-connection-editor"
+
+ },
+
+ "cpu": {
+ "interval": 1,
+ "format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
+ "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
+ "on-click": "alacritty -e htop"
+ },
+
+ "memory": {
+ "interval": 30,
+ "format": " {used:0.1f}G/{total:0.1f}G",
+ "tooltip-format": "Memory"
+ },
+
+ "custom/uptime": {
+ "format": "{}",
+ "format-icon": [""],
+ "tooltip": false,
+ "interval": 1600,
+ "exec": "$HOME/.config/waybar/scripts/uptime.sh"
+ },
+
+ "backlight": {
+ "format": "{icon} {percent}%",
+ "format-icons": ["","󰃜", "󰃛", "󰃞","󰃝","󰃟","󰃠"],
+ "tooltip": false
+ },
+
+ "pulseaudio": {
+ "format": "{icon} {volume}%",
+ "format-muted": "",
+ "format-icons": {
+ "default": ["", "", " "]
+ },
+ "on-click": "pavucontrol"
+ },
+
+ "battery": {
+ "interval":2,
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-full": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-alt": "{icon} {time}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+
+ "custom/lock": {
+ "tooltip": false,
+ "on-click": "sh -c '(sleep 0s; hyprlock)' & disown",
+ "format" : ""
+ },
+
+ "custom/pomodoro": {
+ "format": "{}",
+ "return-type": "json",
+ "exec": "/home/cool/Projects/Pomodoro/pomodoro",
+ "on-click": "/home/cool/Projects/Pomodoro/pomodoro toggle",
+ "on-click-right": "/home/cool/Projects/Pomodoro/pomodoro reset",
+ },
+ "tray": {
+ "icon-size": 21,
+ "spacing": 10
+},
+
+}
+
diff --git a/waybar/scripts/uptime.sh b/waybar/scripts/uptime.sh
new file mode 100755
index 0000000..fff00d9
--- /dev/null
+++ b/waybar/scripts/uptime.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+UPTIME_PRETTY=$(uptime -p)
+
+UPTIME_FORMATTED=$(echo "$UPTIME_PRETTY"| sed 's/^up //;s/,*$//;s/minute/m/; s/hour/h/; s/day/d/; s/s//g')
+
+echo " $UPTIME_FORMATTED"
diff --git a/waybar/style.css b/waybar/style.css
new file mode 100644
index 0000000..caa4a0f
--- /dev/null
+++ b/waybar/style.css
@@ -0,0 +1,226 @@
+/* --- Global Styles --- */
+* {
+ font-family: 'SF Pro Text', 'Inter', 'Segoe UI, NotoSans Nerd Font', sans-serif;
+ font-size: 13px;
+ min-height: 0;
+ padding-right: 0px;
+ padding-left: 0px;
+ padding-bottom: 0px;
+}
+
+/* --- Waybar Container --- */
+#waybar {
+ background: transparent;
+ color: #c6d0f5;
+ margin: 0px;
+ font-weight: 500;
+}
+
+/* --- Left Modules (Individual, Fully Rounded Blocks - With Horizontal Spacing & Simple Hover) --- */
+#workspaces,
+#custom-uptime,
+#cpu {
+ background-color: #1a1b26;
+ padding: 0.3rem 0.7rem;
+ margin: 5px 0px; /* 5px top/bottom margin, 0px left/right (base for individual control) */
+ border-radius: 6px; /* These modules are always rounded */
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ min-width: 0;
+ border: none;
+ /* Transition for background-color and color only */
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+}
+
+#workspaces {
+ padding: 2px;
+ margin-left: 7px; /* Margin from the far left edge */
+ margin-right: 5px; /* Spacing after the workspaces module */
+}
+
+#custom-uptime {
+ margin-right: 5px; /* Spacing after the uptime module */
+}
+
+/* Simple Hover effects for individual left modules - BRIGHTER COLOR */
+#custom-uptime:hover,
+#cpu:hover {
+ background-color: rgb(41, 42, 53); /* Brighter highlight */
+}
+
+#workspaces button {
+ color: #babbf1;
+ border-radius: 5px; /* Workspaces buttons are always rounded */
+ padding: 0.3rem 0.6rem;
+ background: transparent;
+ transition: all 0.2s ease-in-out;
+ border: none;
+ outline: none;
+}
+
+#workspaces button.active {
+ color: #99d1db;
+ background-color: rgba(153, 209, 219, 0.1);
+ box-shadow: inset 0 0 0 1px rgba(153, 209, 219, 0.2);
+}
+
+#workspaces button:hover {
+ background: rgb(41, 42, 53); /* Reference bright hover color */
+ color: #c6d0f5;
+}
+
+/* --- Center Module (Individual, Fully Rounded Block - With Simple Hover) --- */
+#clock {
+ background-color: #1a1b26;
+ padding: 0.3rem 0.7rem;
+ margin: 5px 0px;
+ border-radius: 6px; /* This module is always rounded */
+ box-shadow: 0 1px 3px rgba(153, 209, 219, 0.2);
+ min-width: 0;
+ border: none;
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+}
+
+/* Simple Hover effect for clock module - BRIGHTER COLOR */
+#clock:hover {
+ background-color: rgba(153, 209, 219, 0.1); /* Brighter highlight */
+}
+
+#custom-pomodoro {
+ background-color: #1a1b26; /* Consistent dark background */
+ padding: 0.3rem 0.7rem; /* Consistent padding with other modules (e.g., cpu, uptime) */
+ margin: 5px 0px; /* 5px top/bottom margin, 0px left/right (base for individual control) */
+ border-radius: 6px; /* Consistent rounded corners with other individual modules */
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); /* Consistent shadow */
+ min-width: 0;
+ border: none;
+ outline: none; /* Ensure no default outline */
+ /* Transition for background-color, color, outline, and box-shadow for smooth effect */
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, outline 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
+ color: #babbf1; /* A calm color, consistent with custom-uptime */
+ font-weight: 600; /* Slightly bolder for the timer, consistent with clock */
+}
+
+/* Positioning and spacing for the custom-pomodoro module */
+#custom-pomodoro {
+ margin-left: 5px; /* Spacing from the previous module (e.g., clock) */
+ margin-right: 5px; /* Spacing before the seamless right bar starts (e.g., bluetooth) */
+}
+
+/* Hover effect for the new pomodoro module (consistent with others + rectangular outline) */
+#custom-pomodoro:hover {
+ background-color: rgb(41, 42, 53); /* Brighter highlight, consistent with other individual modules */
+ color: #c6d0f5; /* Text color change on hover, consistent with other individual modules */
+ outline: 1px solid rgba(255, 255, 255, 0.1); /* Rectangular outline on hover */
+ outline-offset: -1px;
+}
+
+/* --- Highlighted state for Pomodoro module when running (work or break) --- */
+#custom-pomodoro.work,
+#custom-pomodoro.break {
+ color: #99d1db; /* Text color consistent with active workspaces button */
+ background-color: rgba(153, 209, 219, 0.1); /* Background color consistent with active workspaces button */
+ box-shadow: inset 0 0 0 1px rgba(153, 209, 219, 0.2); /* Inner shadow for outline effect */
+ outline: none;
+}
+
+/* --- Right Modules (Single, Seamless Bar ) --- */
+#bluetooth,
+#pulseaudio,
+#backlight,
+#network,
+#custom-lock,
+#battery {
+ background-color: #1a1b26;
+ padding: 0.3rem 0.7rem;
+ margin: 5px 0px;
+ border-radius: 0;
+ box-shadow: none;
+ min-width: 0;
+ border: none;
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+}
+
+#bluetooth:hover,
+#pulseaudio:hover,
+#backlight:hover,
+#network:hover,
+#custom-lock:hover,
+#battery:hover {
+ background-color: rgb(41, 42, 53);
+}
+
+#bluetooth {
+ margin-left: 0px;
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+
+#battery {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ margin-right: 7px;
+}
+
+#custom-uptime {
+ color: #babbf1;
+}
+#cpu {
+ color: #c6d0f5;
+}
+
+#clock {
+ color: #99d1db;
+ font-weight: 500;
+}
+
+#pulseaudio {
+ color: #c6d0f5;
+}
+#backlight {
+ color: #c6d0f5;
+}
+
+#network {
+ color: #c6d0f5;
+}
+
+#network.disconnected {
+ color: #e78284;
+}
+
+#custom-lock {
+ color: #babbf1;
+}
+#bluetooth {
+ color: #888888;
+ font-size: 16px;
+}
+#bluetooth.on {
+ color: #2196f3;
+}
+#bluetooth.connected {
+ color: #99d1db;
+}
+#battery {
+ color: #99d1db;;
+}
+#battery.charging {
+ color: #a6d189;
+}
+#battery.warning:not(.charging) {
+ color: #e78284;
+}
+
+/* --- Tooltip Styles --- */
+tooltip {
+ background-color: #1a1b26;
+ color: #dddddd;
+ padding: 5px 12px;
+ margin: 5px 0px;
+ border-radius: 6px;
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
+ font-size: 12px;
+}
+
+