diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
new file mode 100644
index 0000000..852da1f
--- /dev/null
+++ b/.config/alacritty/alacritty.toml
@@ -0,0 +1,5 @@
+[general]
+import = ["~/.config/alacritty/cyberdream.toml"]
+
+[window]
+opacity = 0.9
diff --git a/.config/alacritty/cyberdream.toml b/.config/alacritty/cyberdream.toml
new file mode 100644
index 0000000..483299a
--- /dev/null
+++ b/.config/alacritty/cyberdream.toml
@@ -0,0 +1,36 @@
+# cyberdream theme for alacritty
+[[colors.indexed_colors]]
+color = "0xffbd5e"
+index = 16
+
+[[colors.indexed_colors]]
+color = "0xff6e5e"
+index = 17
+
+[colors.bright]
+black = "0x3c4048"
+blue = "0x5ea1ff"
+cyan = "0x5ef1ff"
+green = "0x5eff6c"
+magenta = "0xbd5eff"
+red = "0xff6e5e"
+white = "0xffffff"
+yellow = "0xf1ff5e"
+
+[colors.normal]
+black = "0x16181a"
+blue = "0x5ea1ff"
+cyan = "0x5ef1ff"
+green = "0x5eff6c"
+magenta = "0xbd5eff"
+red = "0xff6e5e"
+white = "0xffffff"
+yellow = "0xf1ff5e"
+
+[colors.primary]
+background = "0x16181a"
+foreground = "0xffffff"
+
+[colors.selection]
+background = "0x3c4048"
+foreground = "0xffffff"
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..a4c1394
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,248 @@
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=,preferred,auto,auto
+monitor = DP-1-8, preferred, auto, 1
+monitor = DP-1-9, preferred, auto, 1
+
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = alacritty
+$menu = wofi --show drun
+
+
+#################
+### AUTOSTART ###
+#################
+
+exec-once = waybar
+
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+###################
+### PERMISSIONS ###
+###################
+
+# See https://wiki.hyprland.org/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.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general {
+ gaps_in = 5
+ gaps_out = 5
+
+ border_size = 2
+
+ # https://wiki.hyprland.org/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.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+ rounding = 5
+ 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.hyprland.org/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+ enabled = false
+}
+
+# See https://wiki.hyprland.org/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.hyprland.org/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = 0 # 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.hyprland.org/Configuring/Variables/#input
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options = caps:swapescape
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = false
+}
+
+# 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
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Cycle through monitors
+bind = SUPER, period, focusmonitor, +1
+bind = SUPER, comma, focusmonitor, -1
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod SHIFT, return, exec, $terminal
+bind = $mainMod, Q, killactive,
+bind = $mainMod SHIFT, Q, exec, uwsm stop
+bind = $mainMod, F, togglefloating,
+bind = $mainMod, P, exec, $menu
+bind = $mainMod, S, togglesplit, # dwindle
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, h, movefocus, l # left
+bind = $mainMod, j, movefocus, d # down
+bind = $mainMod, k, movefocus, u # up
+bind = $mainMod, l, movefocus, r # right
+
+# 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
+
+# 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
+bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
+bind = , XF86AudioLowerVolume, exec, pamixer -d 5
+bind = , XF86AudioMicMute, exec, pamixer --default-source -m
+bind = , XF86AudioMute, exec, pamixer -t
+
+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.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule
+# windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf
new file mode 100644
index 0000000..e69de29
diff --git a/.config/hypr/workspaces.conf b/.config/hypr/workspaces.conf
new file mode 100644
index 0000000..e69de29
diff --git a/.config/nvim/lua/plugins/blink.lua b/.config/nvim/lua/plugins/blink.lua
index 3c18bfc..563b823 100644
--- a/.config/nvim/lua/plugins/blink.lua
+++ b/.config/nvim/lua/plugins/blink.lua
@@ -5,6 +5,7 @@ return {
'rafamadriz/friendly-snippets',
'mikavilpas/blink-ripgrep.nvim',
{ 'kristijanhusak/vim-dadbod-completion', ft = { 'sql', 'mysql', 'plsql' }, lazy = true },
+ { 'saghen/blink.compat', version = '2.*', lazy = true, opts = {} },
},
version = '1.*',
@@ -40,10 +41,15 @@ return {
'snippets',
'buffer',
'dadbod',
+ 'laravel',
},
providers = {
dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },
+ laravel = {
+ name = "laravel",
+ module = "blink.compat.source",
+ },
},
},
diff --git a/.config/nvim/lua/plugins/colorscheme.lua b/.config/nvim/lua/plugins/colorscheme.lua
index 54b22af..3c8b152 100644
--- a/.config/nvim/lua/plugins/colorscheme.lua
+++ b/.config/nvim/lua/plugins/colorscheme.lua
@@ -6,25 +6,25 @@ return {
config = function()
-- Default options:
require("kanagawa").setup({
- compile = false, -- enable compiling the colorscheme
+ compile = false, -- enable compiling the colorscheme
undercurl = true, -- enable undercurls
commentStyle = { italic = true },
functionStyle = {},
keywordStyle = { italic = true },
statementStyle = { bold = true },
typeStyle = {},
- transparent = false, -- do not set background color
- dimInactive = false, -- dim inactive window `:h hl-NormalNC`
+ transparent = true, -- do not set background color
+ dimInactive = false, -- dim inactive window `:h hl-NormalNC`
terminalColors = true, -- define vim.g.terminal_color_{0,17}
- colors = { -- add/modify theme and palette colors
+ colors = { -- add/modify theme and palette colors
palette = {},
theme = { wave = {}, lotus = {}, dragon = {}, all = {} },
},
overrides = function(colors) -- add/modify highlights
return {}
end,
- theme = "wave", -- Load "wave" theme when 'background' option is not set
- background = { -- map the value of 'background' option to a theme
+ theme = "wave", -- Load "wave" theme when 'background' option is not set
+ background = { -- map the value of 'background' option to a theme
dark = "wave", -- try "dragon" !
light = "lotus",
},
@@ -39,6 +39,43 @@ return {
lazy = false,
priority = 1000,
config = function()
+ require("cyberdream").setup({
+ variant = "default",
+ transparent = true,
+ saturation = 1, -- accepts a value between 0 and 1. 0 will be fully desaturated (greyscale) and 1 will be the full color (default)
+ italic_comments = false,
+ hide_fillchars = false,
+ borderless_pickers = false,
+ terminal_colors = true,
+ cache = true,
+
+ -- Override highlight groups with your own colour values
+ highlights = {
+ -- Highlight groups to override, adding new groups is also possible
+ -- See `:h highlight-groups` for a list of highlight groups or run `:hi` to see all groups and their current values
+
+ -- Example:
+ Comment = { fg = "#696969", bg = "NONE", italic = true },
+
+ -- More examples can be found in `lua/cyberdream/extensions/*.lua`
+ },
+
+ -- Override a highlight group entirely using the built-in colour palette
+ -- overrides = function(colors) -- NOTE: This function nullifies the `highlights` option
+ -- -- Example:
+ -- return {
+ -- Comment = { fg = colors.green, bg = "NONE", italic = true },
+ -- ["@property"] = { fg = colors.magenta, bold = true },
+ -- }
+ -- end,
+
+ -- Disable or enable colorscheme extensions
+ extensions = {
+ telescope = true,
+ notify = true,
+ mini = true,
+ },
+ })
vim.cmd("colorscheme cyberdream")
end
},
diff --git a/.config/nvim/lua/plugins/laravel.lua b/.config/nvim/lua/plugins/laravel.lua
index 2e3a45e..b64cf99 100644
--- a/.config/nvim/lua/plugins/laravel.lua
+++ b/.config/nvim/lua/plugins/laravel.lua
@@ -1,5 +1,5 @@
return {
- "adalessa/laravel.nvim",
+ dir = "~/Projects/laravel.nvim",
dependencies = {
"tpope/vim-dotenv",
"nvim-telescope/telescope.nvim",
@@ -15,6 +15,7 @@ return {
event = { "VeryLazy" },
opts = {
lsp_server = "intelephense",
+ artisan_path = "app/api/artisan",
environments = {
default = "docker-compose",
auto_discover = false,
diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua
index ccadbcd..6fca13c 100644
--- a/.config/nvim/lua/plugins/lspconfig.lua
+++ b/.config/nvim/lua/plugins/lspconfig.lua
@@ -239,7 +239,27 @@ return {
},
},
- clangd = {},
+ clangd = {
+ cmd = {
+ "clangd",
+ "--compile-commands-dir=.",
+ "--header-insertion=never",
+ "--cross-file-rename",
+ "--clang-tidy"
+ },
+ filetypes = { "c", "cpp" },
+ root_dir = require('lspconfig.util').root_pattern(
+ '.clangd',
+ '.clang-tidy',
+ '.clang-format',
+ 'compile_commands.json',
+ 'compile_flags.txt',
+ 'configure.in',
+ '.git',
+ 'Makefile'
+ ),
+ },
+
}
require("mason").setup()
diff --git a/.config/nvim/lua/plugins/neotest.lua b/.config/nvim/lua/plugins/neotest.lua
index 5d78b32..c605cd1 100644
--- a/.config/nvim/lua/plugins/neotest.lua
+++ b/.config/nvim/lua/plugins/neotest.lua
@@ -49,6 +49,7 @@ return {
root_files = { "phpunit.xml", "composer.json" },
-- phpunit_cmd = { "docker", "compose", "exec", "fpm", "./vendor/bin/phpunit" },
phpunit_cmd = { "docker", "compose", "exec", "app-fpm", "./vendor/bin/phpunit" },
+ -- phpunit_cmd = { "docker", "compose", "exec", "subscription-fpm", "./vendor/bin/phpunit" },
filter_dirs = { "vendor" },
mapped_docker_dir = "/var/www",
append_to_cwd = "/api",
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..67bd731
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,152 @@
+// -*- mode: jsonc -*-
+{
+ "layer": "top",
+ "mode": "dock",
+ "position": "top", // (top|bottom|left|right)
+ "height": 40, // (to be removed for auto height)
+ "width": "auto",
+ "spacing": 3, // Gaps between modules
+ "margin": 0,
+ "fixed-center": true,
+ "reload_style_on_change": true,
+ "modules-left": [
+ "hyprland/workspaces",
+ "hyprland/submap",
+ ],
+ "modules-center": [
+ "clock"
+ ],
+ "modules-right": [
+ "custom/weather",
+ "pulseaudio",
+ "temperature",
+ "network",
+ "backlight",
+ "battery",
+ "tray"
+ ],
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": "{icon} {name}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "tray": {
+ "icon-size": 24,
+ "show-passive-items": true,
+ "spacing": 10
+ },
+ "clock": {
+ "interval": 1,
+ "format": "{:%A %d. %b %T}",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "format": {
+ "today": "{}"
+ }
+ }
+ },
+ "temperature": {
+ "interval": 1000,
+ "critical-threshold": 80,
+ "format": "{temperatureC}°C"
+ },
+ "backlight": {
+ "format": "{icon}",
+ "tooltip-format": "{icon} {percent}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon}",
+ "format-full": "{icon}",
+ "format-charging": "{icon} ",
+ "format-plugged": "{icon} ",
+ "format-alt": "{icon}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "power-profiles-daemon": {
+ "format": "{icon}",
+ "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
+ "tooltip": true,
+ "format-icons": {
+ "default": "",
+ "performance": "",
+ "balanced": "",
+ "power-saver": ""
+ }
+ },
+ "network": {
+ "interval": 1000,
+ "format-wifi": "{icon}",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{essid}\n{ifname} via {gwaddr}\n{ipaddr}/{cidr}",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "",
+ "format-alt": "{essid}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "pulseaudio": {
+ "format": "{icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "",
+ "format-source-muted": " ",
+ "format-bluetooth": "{icon} {format_source}",
+ "format-bluetooth-muted": "{icon} {format_source}",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": " ",
+ "portable": " ",
+ "car": "",
+ "default": [
+ "",
+ "",
+ ""
+ ]
+ },
+ "tooltip-format": "{icon} {volume}%\n{format_source}",
+ "ignored-sinks": [
+ "Easy Effects Sink"
+ ]
+ },
+ "custom/weather": {
+ "format": "{}°C",
+ "tooltip": true,
+ "interval": 3600,
+ "exec": "wttrbar --date-format \"%d.%m.%Y\" -l de",
+ "return-type": "json"
+ }
+}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..f4fa344
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,130 @@
+* {
+ border: none;
+ border-radius: 0;
+ font-family: JetBrainsMono, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ min-height: 0;
+}
+
+window#waybar {
+ background: rgba(0, 0, 0, 0.6);
+ color: white;
+}
+
+button {
+ margin: 3px;
+ padding: 3px;
+}
+
+tooltip {
+ background: rgba(0, 0, 0, 0.202);/*rgba(43, 48, 59, 0.5);*/
+ border: 4px solid white;
+ border-radius: 10px;
+}
+
+tooltip label {
+ color: white;
+}
+
+#workspaces button {
+ margin: 0;
+ padding: 0;
+
+ background: transparent;
+ color: #888888;
+}
+
+#workspaces button.active {
+ color: white;
+}
+
+#mode,
+#clock,
+#battery,
+#pulseaudio,
+#temperature,
+#language,
+#backlight,
+#network,
+#tray,
+#custom-weather {
+ padding: 0 10px;
+}
+
+#scratchpad,
+#window {
+ margin-left: 6px;
+ margin-right: 6px;
+}
+
+#custom-weather.sunny {
+ color: rgb(215, 215, 0);
+}
+
+#custom-weather.lightrain {
+ color: lightblue;
+}
+
+#custom-weather.rain,
+#custom-weather.heavyrain {
+ color: blue;
+}
+
+#custom-weather.cloudy,
+#custom-weather.fog {
+ color: gray;
+}
+
+#window {
+ color: darkred;
+}
+
+#language {
+ color: cadetblue;
+}
+
+#pulseaudio {
+ color: darkcyan;
+}
+
+#network {
+ color: coral;
+}
+
+#temperature {
+ color: rgb(91, 191, 225);
+}
+
+#backlight {
+ color: rgb(255, 255, 61);
+}
+
+#clock {
+ color: aqua;
+}
+
+#battery {
+ color: rgb(147, 63, 225);
+}
+
+#battery.charging {
+ color: #26A65B;
+}
+
+@keyframes blink {
+ to {
+ color: white;
+ }
+}
+
+#battery.warning:not(.charging),
+#temperature.critical,
+#workspaces button.urgent,
+#mode {
+ color: #ff0000;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(2);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile
deleted file mode 100644
index 4ef88b3..0000000
--- a/.config/zsh/.zprofile
+++ /dev/null
@@ -1,3 +0,0 @@
-if [[ -z "$DISPLAY" ]] && [[ "$XDG_VTNR" = 1 ]] && [[ $(tty) = /dev/tty1 ]]; then
- exec startx
-fi
diff --git a/.profile b/.profile
new file mode 100644
index 0000000..adac541
--- /dev/null
+++ b/.profile
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+if uwsm check may-start && uwsm select; then
+ exec systemd-cat -t uwsm_start uwsm start default
+fi