2 Commits

20 changed files with 743 additions and 401 deletions

View File

@@ -1,15 +1,14 @@
# ####################################################################################### # #######################################################################################
# AUTOGENERATED HYPR CONFIG. # AUTOGENERATED HYPRLAND CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# ####################################################################################### # #######################################################################################
autogenerated = 0 # remove this line to remove the warning autogenerated = 0 # remove this line to remove the warning
# This is an example Hyprland config file. # This is an example Hyprland config file.
# Refer to the wiki for more information. # Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # https://wiki.hypr.land/Configuring/
# Please note not all available settings / options are set here. # Please note not all available settings / options are set here.
# For a full list, see the wiki # For a full list, see the wiki
@@ -23,21 +22,24 @@ autogenerated = 0 # remove this line to remove the warning
### MONITORS ### ### MONITORS ###
################ ################
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hypr.land/Configuring/Monitors/
monitor=DP-6,preferred,0x0,auto monitor=,preferred,auto,auto,
monitor=eDP-1,preferred,0x2160,1.8 workspace=1, monitor:DP-2
workspace=10, monitor:DP-3
exec-once=hyperctl dispatch workspace 10
exec-once=hyperctl dispatch workspace 1
################### ###################
### MY PROGRAMS ### ### MY PROGRAMS ###
################### ###################
# See https://wiki.hyprland.org/Configuring/Keywords/ # See https://wiki.hypr.land/Configuring/Keywords/
# Set programs that you use # Set programs that you use
$terminal = footclient $terminal = kitty
$fileManager = dolphin $fileManager = nautilus
$menu = wofi --show drun $menu = wofi --show drun -GI
################# #################
@@ -46,64 +48,91 @@ $menu = wofi --show drun
# Autostart necessary processes (like notifications daemons, status bars, etc.) # Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this: # Or execute your favorite apps at launch like this:
exec-once = waybar
exec-once = foot --server
exec-once = nextcloud-desktop-client.nextcoud
# exec-once = $terminal # exec-once = $terminal
# exec-once = nm-applet & # exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox # exec-once = waybar & hyprpaper & firefox
exec-once = nm-applet &
exec-once = blueman-applet &
exec-once = shikane &
exec-once = waybar -c ~/.config/hypr/waybar/config.jsonc -s ~/.config/hypr/waybar/style.css &
exec-once = hyprpm reload -n
exec-once = flatpak run com.github.wwmm.easyeffects -w
exec-once = systemctl --user start hyprpolkitagent
############################# #############################
### ENVIRONMENT VARIABLES ### ### ENVIRONMENT VARIABLES ###
############################# #############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/ # See https://wiki.hypr.land/Configuring/Environment-variables/
env = XCURSOR_SIZE,24 env = XCURSOR_SIZE,24
env = HYPRCURSOR_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 ### ### LOOK AND FEEL ###
##################### #####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/ # Refer to https://wiki.hypr.land/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general # https://wiki.hypr.land/Configuring/Variables/#general
general { general {
gaps_in = 2 gaps_in = 4
gaps_out = 2 gaps_out = 4
border_size = 1 border_size = 1
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa) col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps # Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
allow_tearing = false allow_tearing = false
layout = dwindle #layout = dwindle
layout = hy3
} }
# https://wiki.hyprland.org/Configuring/Variables/#decoration
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration { decoration {
rounding = 10 rounding = 4
rounding_power = 2
# Change transparency of focused and unfocused windows # Change transparency of focused and unfocused windows
active_opacity = 1.0 active_opacity = 1.0
inactive_opacity = 1.0 inactive_opacity = 1.0
drop_shadow = true shadow {
shadow_range = 4 enabled = true
shadow_render_power = 3 range = 4
col.shadow = rgba(1a1a1aee) render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur # https://wiki.hypr.land/Configuring/Variables/#blur
blur { blur {
enabled = true enabled = true
size = 3 size = 3
@@ -113,37 +142,64 @@ decoration {
} }
} }
# https://wiki.hyprland.org/Configuring/Variables/#animations # https://wiki.hypr.land/Configuring/Variables/#animations
animations { animations {
enabled = true enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more # 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
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 # Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
animation = windows, 1, 7, myBezier animation = global, 1, 10, default
animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 5.39, easeOutQuint
animation = border, 1, 10, default animation = windows, 1, 4.79, easeOutQuint
animation = borderangle, 1, 8, default animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = fade, 1, 7, default animation = windowsOut, 1, 1.49, linear, popin 87%
animation = workspaces, 1, 6, default 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
} }
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # 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 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
dwindle { dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this preserve_split = true # You probably want this
} }
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more # See https://wiki.hypr.land/Configuring/Master-Layout/ for more
master { master {
new_status = master new_status = master
} }
# https://wiki.hyprland.org/Configuring/Variables/#misc # https://wiki.hypr.land/Configuring/Variables/#misc
misc { misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers 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. :( disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :(
} }
@@ -151,7 +207,7 @@ misc {
### INPUT ### ### INPUT ###
############# #############
# https://wiki.hyprland.org/Configuring/Variables/#input # https://wiki.hypr.land/Configuring/Variables/#input
input { input {
kb_layout = us kb_layout = us
kb_variant = kb_variant =
@@ -165,64 +221,68 @@ input {
touchpad { touchpad {
natural_scroll = false natural_scroll = false
tap-to-click = false
} }
} }
# https://wiki.hyprland.org/Configuring/Variables/#gestures # See https://wiki.hypr.land/Configuring/Gestures
gestures { gesture = 3, horizontal, workspace
workspace_swipe = true
}
# Example per-device config # Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more # See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
device { device {
name = epic-mouse-v1 name = epic-mouse-v1
sensitivity = -0.5 sensitivity = -0.5
} }
#################### ###################
### KEYBINDINGSS ### ### KEYBINDINGS ###
#################### ###################
# See https://wiki.hyprland.org/Configuring/Keywords/ # See https://wiki.hypr.land/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier $mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, $terminal bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, R, exec, $menu bind = $mainMod, D, exec, $menu
bind = $mainMod, E, exec, $fileManager bind = $mainMod, F, fullscreen
#bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, W, togglegroup,
bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, Q, hy3:killactive,
bind = $mainMod SHIFT, M, exit, bind = $mainMod SHIFT, M, exit,
bind = $mainMod SHIFT, S, pin
# Move focus with hjkl
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# Move focus with hjkl
bind = $mainMod SHIFT, h, movewindoworgroup, l
bind = $mainMod SHIFT, l, movewindoworgroup, r
bind = $mainMod SHIFT, k, movewindoworgroup, u
bind = $mainMod SHIFT, j, movewindoworgroup, d
# move inside of grouped windows
bind = $mainMod, n, changegroupactive, f
bind = $mainMod, p, changegroupactive, b
bind = $mainMod, B, hy3:makegroup, h
bind = $mainMod, V, hy3:makegroup, v
bind = $mainMod, W, hy3:makegroup, tab
bind = $mainMod, A, hy3:changefocus, raise
bind = $mainMod, X, hy3:locktab
bind = $mainMod, E, hy3:expand, expand
bind = $mainMod, R, hy3:changegroup, opposite
bind = $mainMod SHIFT, A, hy3:changefocus, lower
bind = $mainMod SHIFT, E, hy3:expand, base
# Move focus with mainMod + arrow keys # Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l bind = $mainMod, h, hy3:movefocus, l
bind = $mainMod, right, movefocus, r bind = $mainMod, j, hy3:movefocus, d
bind = $mainMod, up, movefocus, u bind = $mainMod, k, hy3:movefocus, u
bind = $mainMod, down, movefocus, d bind = $mainMod, l, hy3:movefocus, r
bind = $mainMod, left, hy3:movefocus, l
bind = $mainMod, down, hy3:movefocus, d
bind = $mainMod, up, hy3:movefocus, u
bind = $mainMod, right, hy3:movefocus, r
bind = $mainMod SHIFT, h, hy3:movewindow, l, once
bind = $mainMod SHIFT, j, hy3:movewindow, d, once
bind = $mainMod SHIFT, k, hy3:movewindow, u, once
bind = $mainMod SHIFT, l, hy3:movewindow, r, once
bind = $mainMod SHIFT, left, hy3:movewindow, l, once
bind = $mainMod SHIFT, down, hy3:movewindow, d, once
bind = $mainMod SHIFT, up, hy3:movewindow, u, once
bind = $mainMod SHIFT, right, hy3:movewindow, r, once
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1 bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2 bind = $mainMod, 2, workspace, 2
@@ -236,24 +296,16 @@ bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10 bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9] # Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 1, hy3:movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 2, hy3:movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 3, hy3:movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 4, hy3:movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 5, hy3:movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 6, hy3:movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 7, hy3:movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 8, hy3:movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 9, hy3:movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod SHIFT, 0, hy3:movetoworkspace, 10
bind = $mainMod, F, fullscreen
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @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 = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-
bindel = ,XF86MonBrightnessUp ,exec ,brightnessctl set 5%+
# Example special workspace (scratchpad) # Example special workspace (scratchpad)
bind = $mainMod, MINUS, togglespecialworkspace, magic bind = $mainMod, MINUS, togglespecialworkspace, magic
@@ -267,18 +319,32 @@ bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow 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 ### ### WINDOWS AND WORKSPACES ###
############################## ##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1 # Example windowrule
# windowrule = float, ^(kitty)$ # windowrule = float,class:^(kitty)$,title:^(kitty)$
# Example windowrule v2 # Ignore maximize requests from apps. You'll probably like this.
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ #windowrule = suppressevent maximize, class:.*
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. # Fix some dragging issues with XWayland
#windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View File

@@ -0,0 +1,118 @@
// -*- mode: jsonc -*-
{
"spacing": 2, // Gaps between modules (4px)
"modules-left": [
"hyprland/workspaces",
"hyprland/mode",
"hyprland/scratchpad",
"hyprland/window"
],
"modules-center": [
//"sway/window"
"clock",
],
"modules-right": [
//"mpd",
"pulseaudio",
//"network",
"battery",
"tray"
//"custom/power"
],
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"tray": {
// "icon-size": 21,
"spacing": 10,
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
},
"clock": {
//"timezone": "America/Los_Angeles",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%r %Y-%m-%d}",
//"format": "{:%R %p %Y-%m-%d}",
//"format-alt": "{:%Y-%m-%d}"
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
//"format": "{time} {capacity}% {icon}",
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% C",
"format-plugged": "{capacity}% P",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
//"format-wifi": "{essid} ({signalStrength}%) ",
//"format-ethernet": "{ipaddr}/{cidr} ",
//"tooltip-format": "{ifname} via {gwaddr} ",
//"format-linked": "{ifname} (No IP) ",
//"format-disconnected": "Disconnected ⚠",
"format-disconnected": "Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon}  {format_source}",
"format-bluetooth-muted": " {icon}  {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {text}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}

View File

@@ -0,0 +1,321 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
/*font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; */
/*font-family: "JetBrainsMono NF";*/
font-family: "JetBrainsMonoNFM-Regular";
font-size: 13px;
font-weight: bold;
}
window#waybar {
/*background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
background-color: rgba(0, 0, 0, 1);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.empty {
/*background-color: transparent;*/
}
window#waybar.solo {
/*background-color: #FFFFFF;*/
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
/*background-color: #a37800;*/
}
#workspaces button {
padding: 0 4px;
/*background-color: transparent;*/
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused {
background-color: #64727D;
/*box-shadow: inset 0 -3px #ffffff;*/
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
/* background-color: #64727D;*/
}
#battery {
/*background-color: #ffffff;
color: #000000;*/
}
#battery.charging, #battery.plugged {
/*color: #ffffff;
background-color: #26A65B;*/
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
/*background-color: #2980b9;*/
}
#network.disconnected {
/*background-color: #f53c3c;*/
}
#pulseaudio {
/*background-color: #f1c40f;*/
/*color: #000000;*/
}
#pulseaudio.muted {
/*background-color: #90b1b1;*/
/*color: #2a5c45;*/
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
/*background-color: #2980b9;*/
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#privacy {
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: white;
}
#privacy-item.screenshare {
background-color: #cf5700;
}
#privacy-item.audio-in {
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
}

View File

@@ -1,37 +1,4 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" require("config.lazy")
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- coq used for completion
vim.g.coq_settings = {
auto_start = true,
xdg = true,
completion = {
always = false,
},
keymap = {
manual_complete = '<c-n>',
}
}
-- code completion
require('lazy').setup('plugins')
local coq = require 'coq'
require("mason").setup() -- used for automatically enabling lsp and coq
require("mason-lspconfig").setup()
-- Settings
--vim.cmd('source ~/.config/nvim/settings.vim')
-- colorscheme -- colorscheme
vim.o.termguicolors = true vim.o.termguicolors = true
@@ -40,16 +7,20 @@ vim.opt.winborder = 'rounded'
--vim.cmd("colorscheme gruvbox ") --vim.cmd("colorscheme gruvbox ")
--vim.cmd("colorscheme retrobox") --vim.cmd("colorscheme retrobox")
vim.opt.clipboard = "unnamedplus" -- uses the clipboard register for all operations except yank.
vim.cmd("set nocompatible") vim.cmd("set nocompatible")
vim.cmd("syntax on") vim.cmd("syntax on")
vim.cmd("filetype plugin indent on") vim.cmd("filetype plugin indent on")
vim.cmd("set number") vim.cmd("set number")
vim.cmd("set relativenumber") vim.cmd("set relativenumber")
vim.cmd("set expandtab") vim.cmd("set expandtab")
vim.cmd("set shiftwidth=4") vim.cmd("set shiftwidth=4")
vim.cmd("set softtabstop=4") vim.cmd("set softtabstop=4")
vim.cmd("set tabstop=4") vim.cmd("set tabstop=4")
vim.cmd("set smartindent") vim.cmd("set smartindent")
vim.cmd("set backspace=indent,eol,start") vim.cmd("set backspace=indent,eol,start")
vim.cmd("set colorcolumn=81") vim.cmd("set colorcolumn=81")
vim.cmd("set textwidth=80") vim.cmd("set textwidth=80")
@@ -57,13 +28,10 @@ vim.cmd("set wrap")
vim.cmd("set linebreak") vim.cmd("set linebreak")
vim.cmd("noswapfile") vim.cmd("noswapfile")
vim.cmd("set autoread")
vim.cmd("set complete-=i")
vim.cmd("au FileType python set fileformat=unix encoding=utf-8") vim.cmd("au FileType python set fileformat=unix encoding=utf-8")
vim.cmd("au FileType markdown,tex set spell spelllang=en_us") vim.cmd("au FileType markdown,tex set spell spelllang=en_us")
-- keymaps
vim.keymap.set('n', '<leader>/', ':nohlsearch<CR>')
vim.keymap.set('n', '<leader>b', ':buffers<CR>')
vim.keymap.set('n', 'bp', ':bp<CR>')
vim.keymap.set('n', 'bn', ':bn<CR>')

View File

@@ -1,20 +1,13 @@
{ {
"auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" },
"black-metal-theme-neovim": { "branch": "main", "commit": "6d0207871387077f40d5396ab1ae90520e688d36" }, "black-metal-theme-neovim": { "branch": "main", "commit": "6d0207871387077f40d5396ab1ae90520e688d36" },
"conform.nvim": { "branch": "master", "commit": "9d859cbfbde7a1bd1770e7c97aef30ec5a237a71" },
"copilot.vim": { "branch": "release", "commit": "da369d90cfd6c396b1d0ec259836a1c7222fb2ea" },
"coq_nvim": { "branch": "coq", "commit": "d2aeb3221cb46bfd1c51afd1b247d092c52ec0d6" },
"harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.completion": { "branch": "main", "commit": "4d451f82f193f6751719935a63d16ccb79a76e0b" },
"mini.nvim": { "branch": "main", "commit": "c163117900c17d4abf30bc09452a261c8536060c" },
"nvim-lspconfig": { "branch": "master", "commit": "54617a18f4cf46f0c2f6d024fa6feb7515fe036d" }, "nvim-lspconfig": { "branch": "master", "commit": "54617a18f4cf46f0c2f6d024fa6feb7515fe036d" },
"nvim-treesitter": { "branch": "master", "commit": "92d2501d698e0fe855bd222540f9648890fab6c7" }, "nvim-treesitter": { "branch": "master", "commit": "92d2501d698e0fe855bd222540f9648890fab6c7" },
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"render-markdown.nvim": { "branch": "main", "commit": "fc05fb7c56795f191b6800799a2ec6ea325ba715" },
"telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
"vim-tmux-navigator": { "branch": "master", "commit": "97e58f2b3b4f8fd30ce149302f10202f363cc361" }, "vim-tmux-navigator": { "branch": "master", "commit": "97e58f2b3b4f8fd30ce149302f10202f363cc361" }
"zen-mode.nvim": { "branch": "main", "commit": "dfcb72a2dfeedc5342b2ee3a68c83243d682ba3c" }
} }

View File

@@ -0,0 +1,35 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
--vim.g.mapleader = "/\"
--im.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- import your plugins
{ import = "plugins" },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
-- install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
-- checker = { enabled = true },
})

View File

@@ -1,19 +0,0 @@
return{
"okuuva/auto-save.nvim",
--version = '*', -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release
cmd = "ASToggle", -- optional for lazy loading on command
execution_message = {
message = function() -- message to print on save
return ("AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"))
end,
dim = 0.18, -- dim the color of `message`
cleaning_interval = 1250, -- (milliseconds) automatically clean MsgArea after displaying `message`. See :h MsgArea
},
event = { "InsertLeave", "TextChanged" }, -- optional for lazy loading on trigger events
opts = {
-- your config goes here
-- or just leave it empty :)
enabled = false,
debug = true,
},
}

View File

@@ -1,19 +0,0 @@
return {
'stevearc/conform.nvim',
opts = {},
config = function ()
require("conform").setup({
formatters_by_ft = {
tex = { "latexindent" },
--lua = { "stylua" },
-- Conform will run multiple formatters sequentially
--python = { "isort", "black" },
-- You can customize some of the format options for the filetype (:help conform.format)
--rust = { "rustfmt", lsp_format = "fallback" },
-- Conform will run the first available formatter
--javascript = { "prettierd", "prettier", stop_after_first = true },
},
})
end
}

View File

@@ -1,12 +0,0 @@
return {
'github/copilot.vim',
config = function()
vim.keymap.set('i', '<C-J>', 'copilot#Accept("\\<CR>")', {
expr = true,
replace_keycodes = false
})
vim.keymap.set('i', '<C-L>', '<Plug>(copilot-accept-word)')
vim.g.copilot_enabled = 'v:false'
end
}

View File

@@ -1,23 +0,0 @@
return {
'ThePrimeagen/harpoon',
config = function(_, opts)
require('harpoon').setup(opts)
local mark = require('harpoon'.. ".mark")
local ui = require('harpoon'.. ".ui")
-- Harpoon marked files 1 through 4.
vim.keymap.set("n", "<a-1>", function() ui.nav_file(1) end)
vim.keymap.set("n", "<a-2>", function() ui.nav_file(2) end)
vim.keymap.set("n", "<a-3>", function() ui.nav_file(3) end)
vim.keymap.set("n", "<a-4>", function() ui.nav_file(4) end)
-- Harpoon next and previous.
vim.keymap.set("n", "<a-n>", function() ui.nav_next() end)
vim.keymap.set("n", "<a-p>", function() ui.nav_prev() end)
-- Harpoon user interface.
vim.keymap.set("n", "<leader>hq", ui.toggle_quick_menu)
vim.keymap.set("n", "<leader>ha", mark.add_file)
end
}

View File

@@ -1,12 +0,0 @@
return {
"mason-org/mason-lspconfig.nvim",
dependencies = {
"mason-org/mason.nvim",
"neovim/nvim-lspconfig",
"ms-jpq/coq_nvim", -- Optional (auto complete)
},
config = function()
--vim.lsp.config('lua_ls',coq.lsp_ensure_capabilities())
--vim.lsp.config('clangd',coq.lsp_ensure_capabilities())
end
}

View File

@@ -1,46 +0,0 @@
return{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons', opt = true },
config = function()
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filename'},
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}
end
}

View File

@@ -0,0 +1,54 @@
return {
"mason-org/mason-lspconfig.nvim",
dependencies = {
{"mason-org/mason.nvim"},
{'neovim/nvim-lspconfig'},
{'nvim-mini/mini.nvim'},
{'nvim-mini/mini.completion'},
},
config = function()
require("mason").setup()
require("mason-lspconfig").setup {}
-- NOTE: this is meant to be backwards compatible with Neovim v0.9
---
-- Autocompletion
---
require('mini.snippets').setup()
require('mini.completion').setup()
---
-- Language server configuration
---
-- These keymaps are the defaults in Neovim v0.10
if vim.fn.has('nvim-0.11') == 0 then
-- NOTE: vim.diagnostic.goto_* methods are deprecated in v0.11
-- that's why we put these under a conditional block
vim.keymap.set('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
vim.keymap.set('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
vim.keymap.set('n', '<C-w>d', '<cmd>lua vim.diagnostic.open_float()<cr>')
vim.keymap.set('n', '<C-w><C-d>', '<cmd>lua vim.diagnostic.open_float()<cr>')
end
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(event)
local bufmap = function(mode, rhs, lhs)
vim.keymap.set(mode, rhs, lhs, {buffer = event.buf})
end
-- These keymaps are the defaults in Neovim v0.11
bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
bufmap('n', 'grr', '<cmd>lua vim.lsp.buf.references()<cr>')
bufmap('n', 'gri', '<cmd>lua vim.lsp.buf.implementation()<cr>')
bufmap('n', 'grn', '<cmd>lua vim.lsp.buf.rename()<cr>')
bufmap('n', 'gra', '<cmd>lua vim.lsp.buf.code_action()<cr>')
bufmap('n', 'gO', '<cmd>lua vim.lsp.buf.document_symbol()<cr>')
bufmap({'i', 's'}, '<C-s>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
end,
})
end
}

View File

@@ -1,26 +0,0 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {
completions = { lsp = { enabled = true } },
render_modes = true,
heading = {
width = 'block',
min_width = 80,
},
code = {
disable_background = { 'diff' },
},
indent = {
enabled = true,
skip_heading = true,
},
sign = {
enabled = true,
},
},
}

View File

@@ -1,5 +1,6 @@
-- plugins/telescope.lua:
return { return {
'nvim-telescope/telescope.nvim', tag = '0.1.2', 'nvim-telescope/telescope.nvim', tag = 'v0.1.9',
dependencies = { 'nvim-lua/plenary.nvim' }, dependencies = { 'nvim-lua/plenary.nvim' },
config = function() config = function()
local builtin = require('telescope.builtin') local builtin = require('telescope.builtin')

View File

@@ -1,11 +0,0 @@
return {
"folke/zen-mode.nvim",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
window = {
width = 90, -- width of the Zen window
}
}
}

View File

@@ -1,56 +0,0 @@
set nocompatible
syntax on
filetype plugin indent on
set number
set relativenumber
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
set smartindent
set backspace=indent,eol,start
set colorcolumn=81
"hi ColorColumn ctermbg=lightgrey guibg=lightgrey
set textwidth=80
set wrap
set linebreak
set autoread " Set to auto read when a file is changed from the outside
set path+=**
set wildmenu
set showcmd
set wildmode=longest:full,full
set wildoptions=pum
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
set wildignore+=*\\tmp\\*,*.exe
set number ruler
set showmatch
set showbreak=↳\ \
set hidden
set hlsearch
set noswapfile
set mouse= "remove mouse
"set clipboard=unnamedplus
" Rendering
set ttyfast
set laststatus=1
set t_Co=256
let &t_ut=''
"hi ColorColumn ctermbg=lightgrey guibg=lightgrey
" Show bad whitespace in an obvious but not obnoxious color
"highlight pythonSpaceError ctermbg=darkgreen guibg=darkgreen
"highlight BadWhitespace ctermbg=darkgreen guibg=darkgreen
"au BufNewFile,BufRead *.py,*.pyw,*.c,*.h,*.cc,*.hh,*.sh match BadWhitespace /\s\+$/
au FileType python
\ set fileformat=unix
\ encoding=utf-8
au FileType markdown,tex
\ set spell spelllang=en_us

View File

@@ -1,10 +0,0 @@
Generative
ansible
CXI
HPLC
SED
brokhorst
MOXA
CONFIG
QRIX
EPS

Binary file not shown.

20
.zshrc Normal file
View File

@@ -0,0 +1,20 @@
# Auto Complete
autoload -Uz compinit
compinit
# Alias
alias vim='nvim'
# Config
source <(fzf --zsh)
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
#PROMPT='${vcs_info_msg_0_}%# '
PROMPT='%~%# '
zstyle ':vcs_info:git:*' formats '%b'