diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index 74db50f..78b342c 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -19,15 +19,15 @@ monitor=,preferred,auto,auto
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
-exec-once = waybar # & hyprpaper & firefox
+exec-once = waybar & mako # & hyprpaper & firefox
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
-$terminal = kitty
+$terminal = kitty --listen-on=unix:@"$(date +%s%N)"
$fileManager = dolphin
-$menu = dmenu
+$menu = wofi --show drun
# Some default env vars.
env = XCURSOR_SIZE,24
@@ -47,6 +47,7 @@ input {
natural_scroll = yes
}
+ force_no_accel = true
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
}
@@ -56,7 +57,7 @@ general {
gaps_in = 5
gaps_out = 20
border_size = 2
- col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.active_border = rgba(BF40BFFF) rgba(33ccffee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
@@ -115,14 +116,14 @@ gestures {
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
+ force_default_wallpaper = 2 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
- name = epic-mouse-v1
- sensitivity = -0.5
+ name = genius-optical-mouse
+ sensitivity = -1
}
# Example windowrule v1
@@ -141,17 +142,20 @@ bind = $mainMod ALT, RETURN, exec, $terminal
bind = ALT, F4, killactive,
bind = $mainMod, M, exit,
bind = $mainMod ALT, f, exec, firefox
+bind = $mainMod CTRL ALT, f, exec, firefox -P "Porn"
bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, E, togglesplit, # dwindle
bind = $mainMod, ESCAPE, exec, wlogout # dwindle
+bind = $mainMod, F11, fullscreen # dwindle
+bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
-bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, j, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
new file mode 100644
index 0000000..190a717
--- /dev/null
+++ b/hypr/hyprlock.conf
@@ -0,0 +1,43 @@
+background {
+ monitor =
+ color = rgba(191, 64, 191, 0.25)
+
+ # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
+ blur_size = 7
+ noise = 0.0117
+ contrast = 0.8916
+ brightness = 0.8172
+ vibrancy = 0.1696
+ vibrancy_darkness = 0.0
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ outline_thickness = 3
+ dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = false
+ dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
+ outer_color = rgb(151515)
+ inner_color = rgb(200, 200, 200)
+ font_color = rgb(10, 10, 10)
+ fade_on_empty = true
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = Input Password... # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = -1 # -1 means complete rounding (circle/oval)
+ check_color = rgb(204, 136, 34)
+ fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
+ fail_text = $FAIL ($ATTEMPTS) # can be set to empty
+ fail_transition = 300 # transition time in ms between normal outer_color and fail_color
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
+ invert_numlock = false # change color if numlock is off
+ swap_font_color = false # see below
+
+ position = 0, -20
+ halign = center
+ valign = center
+}
diff --git a/nvim/lua/kosh/keymaps.lua b/nvim/lua/kosh/keymaps.lua
index 23dde8b..cd3b7b9 100644
--- a/nvim/lua/kosh/keymaps.lua
+++ b/nvim/lua/kosh/keymaps.lua
@@ -61,3 +61,5 @@ set_keymap("n", "mI", ":MagmaInit python", opts)
set_keymap("n", "", ":call jukit#cells#jump_to_next_cell()", opts)
set_keymap("n", "", ":call jukit#cells#jump_to_previous_cell()", opts)
+set_keymap("n", "", ":call system('wl-copy', @\")", opts)
+--nnoremap :call system("wl-copy", @")
diff --git a/nvim/lua/kosh/options.lua b/nvim/lua/kosh/options.lua
index 930a07f..5abfc6a 100644
--- a/nvim/lua/kosh/options.lua
+++ b/nvim/lua/kosh/options.lua
@@ -11,6 +11,18 @@ vim.opt.autoindent = true
vim.opt.expandtab = true -- Converts tabs to spaces
vim.opt.cb = unnamedplus -- Clipboard
+vim.cmd [[
+let g:clipboard = {
+ \ 'copy': {
+ \ '+': ['wl-copy', '--trim-newline'],
+ \ '*': ['wl-copy', '--trim-newline'],
+ \ },
+ \ 'paste': {
+ \ '+': ['wl-paste', '--no-newline'],
+ \ '*': ['wl-paste', '--no-newline'],
+ \ },
+ \ }
+]]
vim.opt.mouse = "a" -- Mouse enable
vim.opt.fileencoding = "utf-8" -- File encoding
vim.opt.showtabline = 0 -- The top tabs
diff --git a/priv/priv b/priv/priv
index f67fa87..6c7d1e3 100644
Binary files a/priv/priv and b/priv/priv differ
diff --git a/waybar/config.jsonc b/waybar/config.jsonc
new file mode 100644
index 0000000..df38096
--- /dev/null
+++ b/waybar/config.jsonc
@@ -0,0 +1,94 @@
+{
+ "layer": "top",
+ "position": "top",
+ "height": 35,
+ "spacing": 0,
+ "margin-top": 10,
+ "margin-bottom": 0,
+
+ // Choose the order of the modules
+
+ "modules-center": ["hyprland/workspaces", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "battery", "clock"],
+
+ // Modules configuration
+
+ "hyprland/workspaces": {
+ "disable-scroll": true,
+ "all-outputs": false,
+ "format": "{name}"
+ },
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": " {name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat2": {
+ "bat": "BAT2"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "Connected ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}",
+ "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon}",
+ "format-bluetooth-muted": "{icon} {format_source}",
+ "format-muted": "{format_source}",
+ "format-source": "",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+}
diff --git a/waybar/style.css b/waybar/style.css
new file mode 100644
index 0000000..ea3b807
--- /dev/null
+++ b/waybar/style.css
@@ -0,0 +1,276 @@
+* {
+ border: none;
+ border-radius: 0px;
+ font-family: Roboto, Helvetica, Arial, sans-serif;
+ font-size: 10px;
+ min-height: 0;
+}
+
+window#waybar {
+ background-color: transparent;
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+
+#workspaces button {
+ background: #1f1f1f;
+ color: #ffffff;
+ border-radius: 20px;
+
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+#workspaces button:hover {
+ background: lightblue;
+ color: black;
+ border-bottom: 3px solid #ffffff;
+
+}
+
+#workspaces button.active {
+ background: #ffffff;
+ color: black;
+}
+
+
+#workspaces button.active:hover {
+ background: lightblue;
+ color: black;
+ border-bottom: 3px solid #ffffff;
+
+}
+
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#custom-media,
+#custom-launcher,
+#custom-power,
+#tray,
+#mode,
+#idle_inhibitor,
+#mpd {
+ padding: 0 10px;
+ color: black;
+}
+
+#window,
+#workspaces {
+ margin: 0px 0px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0px;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+ margin-right: 0px;
+}
+
+#clock {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(-45deg, #2BD2FF 0%, #FA8BFF 52%, #FA8BFF 90%);
+ color: black;
+ border-radius: 0px 20px 20px 0px;
+ margin-right: 4px;
+
+}
+
+#battery {
+ background-color: #FA8BFF;
+ color: #000000;
+}
+
+#battery.charging, #battery.plugged {
+ color: #ffffff;
+ background-color: #26A65B;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#cpu {
+ background-color: #FA8BFF;
+ color: black;
+}
+
+#memory {
+ background-color: #FA8BFF;
+ color: black;
+}
+
+
+#network {
+ background-color: #FA8BFF;
+ color: black;
+}
+
+#network.disconnected {
+ background-color: #FA8BFF;
+ color: red;
+}
+
+#pulseaudio {
+ background-color: #FA8BFF;
+ color: black;
+}
+
+#pulseaudio.muted {
+ background-color: #FA8BFF;
+ color: red;
+}
+
+#custom-media {
+ background-color: #8EC5FC;
+ background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
+ color: black;
+ border-radius: 20px;
+ margin-right: 5px;
+}
+
+#custom-media.custom-spotify {
+ background-color: #8EC5FC;
+ background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
+ color: black;
+ border-radius: 20px;
+ margin-right: 5px;
+
+}
+
+#custom-media.custom-vlc {
+ background-color: #8EC5FC;
+ background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
+ color: black;
+ border-radius: 20px;
+ margin-right: 5px;
+}
+
+#custom-power{
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ font-size: 16px;
+ border-radius: 19px;
+
+}
+#custom-launcher{
+ background-color: #FA8BFF;
+ background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ font-size: 18px;
+ border-radius: 20px;
+
+}
+
+#custom-updater {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+}
+
+
+#temperature {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+}
+
+#temperature.critical {
+ background-color: #eb4d4b;
+}
+
+#tray {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(-45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+ background-color: #FA8BFF;
+ background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #FA8BFF;
+ background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+}
+
+#idle_inhibitor {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #2BD2FF 0%, #FA8BFF 52%, #FA8BFF 90%);
+ border-radius: 20px 0px 0px 20px;
+
+}
+
+#idle_inhibitor.activated {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #2BD2FF 0%, #FA8BFF 52%, #FA8BFF 90%);
+ color: black;
+ border-radius: 20px 0px 0px 20px;
+
+}
+
+#language {
+ background-color: #FA8BFF;
+ background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%);
+ color: black;
+ min-width: 16px;
+}
+
+#keyboard-state {
+ background: #97e1ad;
+ color: #000000;
+ min-width: 16px;
+}
+
+#keyboard-state > label {
+ padding: 0px 5px;
+}
+
+#keyboard-state > label.locked {
+ background: rgba(0, 0, 0, 0.2);
+}