30 Commits

Author SHA1 Message Date
685dcfa301 fix: gitignore 2025-12-26 10:34:05 -08:00
0d9fd45d34 feat: hyperland with i3 manual tiling 2025-12-25 07:51:28 -08:00
970a284ebc latest 2025-12-23 19:33:56 -08:00
e2da3d9a20 feat: Waybar 2025-12-19 22:14:03 -08:00
acd842c2aa latest lsp config with mason and autocomplete 2025-12-15 15:49:30 -08:00
798d6bb69c Add autoload autocommands for file change reload 2025-12-01 20:03:07 -08:00
833d17bc94 Update sway config to set Mod4 as mod key and other tweaks 2025-12-01 20:02:30 -08:00
a1ef3c6e12 feat:new nvim config and some other stuff 2025-11-29 11:30:17 -08:00
d524ebac95 latest 2025-11-21 08:19:00 -08:00
3e3c580aa6 feat: mango animation speed and kitty opacity 2025-10-19 16:53:42 -07:00
c39b29f3a7 feat: latest nvim setup 2025-10-19 15:10:41 -07:00
1f31c845a6 feat: latest kitty, mango, and mango config 2025-10-19 11:59:48 -07:00
64bcfde70e feat: mango tweaks 2025-10-17 16:17:44 -07:00
a14fe27f98 feat: add mango window manager config 2025-10-17 11:56:34 -07:00
e9df39d7ea tmux and nvim changes 2025-10-06 21:30:57 -07:00
42b0e5c64d fix lsp to and code completion 2025-09-26 23:14:04 -05:00
91fe229e59 latest 2025-09-14 22:06:00 -07:00
9fbf3bc8c1 waybar, swaylock, swayfx, and nvim plugins 2025-09-01 12:10:45 -07:00
d38aa180bb fixed waybar colors and lables; add keybinds for sway config 2025-08-24 20:01:14 -07:00
17a739b0d5 latest 2025-08-15 22:30:49 -07:00
e803a33497 latest 2025-07-10 11:42:42 -07:00
e0adb27cb0 vim copilot, waybar config 2025-07-04 19:57:35 -07:00
5e635a8ef1 latest 2025-05-22 08:04:48 -07:00
5caee464f3 latest 2025-05-21 16:22:38 -07:00
7ee39c0028 latest 2025-05-01 18:08:06 -07:00
360781528c lastes 2025-04-23 18:36:13 -07:00
81d65761fd latest 2025-03-21 13:06:13 -07:00
1c129553ea move to hyper for better screen sharing suppor 2025-03-11 10:14:22 -07:00
7fdd22930c add foot and way config 2025-03-06 20:10:47 -08:00
311db4a0a5 latest 2025-03-06 19:34:04 -08:00
35 changed files with 823 additions and 922 deletions

22
.bashrc
View File

@@ -56,19 +56,11 @@ if [ -n "$force_color_prompt" ]; then
fi
fi
#if [ "$color_prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
source ~/.local/scripts/git-prompt.sh
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (%s)") \n\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w $(parse_git_branch)\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
@@ -126,7 +118,13 @@ if ! shopt -oq posix; then
fi
fi
PATH=$PATH:~/.local/bin/
export WLR_DRM_NO_MODIFIERS=1
alias vim='nvim'
alias ssh='ssh -XC'
alias xfreerdp='xfreerdp +clipboard /dynamic-resolution'
alias xfreerdp='xfreerdp +clipboard /dynamic-resolution '
# Set up fzf key bindings and fuzzy completion
eval "$(fzf --bash)"

View File

@@ -1,13 +1,13 @@
live_config_reload = true
general.live_config_reload = true
[font]
normal = { family = "JetBrainsMono NF", style = "Regular" }
size = 12
size = 10
[window]
decorations = 'buttonless'
dynamic_padding = false
dynamic_padding = true
opacity = 0.9
decorations = "None"
[colors]
draw_bold_text_with_bright_colors = true

240
.config/foot/foot.ini Normal file
View File

@@ -0,0 +1,240 @@
# -*- conf -*-
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
term=xterm-256color
# login-shell=no
#include=/usr/share/foot/themes/jetbrains-darcula
#include=/usr/share/foot/themes/paper-color-dark
app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
title=foot
locked-title=no
font=JetBrainsMono NF:size=10.5
#font= :size=10
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# underline-thickness=<font underline thickness>
# box-drawings-uses-font-glyphs=no
# dpi-aware=no
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
pad=5x5 # optionally append 'center'
#resize-by-cells=yes
# resize-delay-ms=100
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
selection-target=primary
# workers=<number of logical CPUs>
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[environment]
# name=value
[bell]
# urgent=no
# notify=no
# visual=no
# command=
# command-focused=no
[desktop-notifications]
command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
# command-action-argument=--action ${action-name}=${action-label}
# close=""
# inhibit-when-focused=yes
[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# blink-rate=500
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
[colors]
alpha=0.9
# background=242424
# foreground=ffffff
# flash=7f7f00
# flash-alpha=0.5
# Normal/regular colors (color palette 0-7)
regular0=242424 # black
regular1=f62b5a # red
regular2=47b413 # green
regular3=e3c401 # yellow
regular4=24acd4 # blue
regular5=f2affd # magenta
regular6=13c299 # cyan
regular7=e6e6e6 # white
# Bright colors (color palette 8-15)
bright0=616161 # bright black
bright1=ff4d51 # bright red
bright2=35d450 # bright green
bright3=e9e836 # bright yellow
bright4=5dc5f8 # bright blue
bright5=feabf2 # bright magenta
bright6=24dfc4 # bright cyan
bright7=ffffff # bright white
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
# urls=<regular3>
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-char=Shift+Right
# extend-to-word-boundary=Control+w Control+Shift+Right
# extend-to-next-whitespace=Control+Shift+w
# extend-line-down=Shift+Down
# extend-backward-char=Shift+Left
# extend-backward-to-word-boundary=Control+Shift+Left
# extend-backward-to-next-whitespace=none
# extend-line-up=Shift+Up
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# quit=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# scrollback-up-mouse=BTN_WHEEL_BACK
# scrollback-down-mouse=BTN_WHEEL_FORWARD
# font-increase=Control+BTN_WHEEL_BACK
# font-decrease=Control+BTN_WHEEL_FORWARD
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-quote = BTN_LEFT-3
# select-row=BTN_LEFT-4
# vim: ft=dosini

View File

@@ -23,11 +23,8 @@ autogenerated = 0 # remove this line to remove the warning
################
# See https://wiki.hypr.land/Configuring/Monitors/
monitor=,preferred,auto,auto,
workspace=1, monitor:DP-2
workspace=10, monitor:DP-3
exec-once=hyperctl dispatch workspace 10
exec-once=hyperctl dispatch workspace 1
monitor=,preferred,auto,auto
exec-once = swaybg -i ~/Pictures/wallpapers/swoacyk0f3sf1.png
###################
@@ -55,9 +52,10 @@ $menu = wofi --show drun -GI
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 = waybar &
exec-once = hyprpm reload -n
exec-once = flatpak run com.github.wwmm.easyeffects -w
exec-once = powertop --auto-tune
exec-once = systemctl --user start hyprpolkitagent
@@ -118,7 +116,7 @@ general {
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
rounding = 4
rounding = 6
rounding_power = 2
# Change transparency of focused and unfocused windows
@@ -198,8 +196,8 @@ master {
# https://wiki.hypr.land/Configuring/Variables/#misc
misc {
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :(
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. :(
}
@@ -247,10 +245,10 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, D, exec, $menu
bind = $mainMod, F, fullscreen
bind = $mainMod, S, pin
bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod SHIFT, Q, hy3:killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod SHIFT, S, pin
bind = $mainMod, B, hy3:makegroup, h
@@ -344,7 +342,7 @@ bindl = , XF86AudioPrev, exec, playerctl previous
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
#windowrule = suppressevent maximize, class:.*
windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
#windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View File

@@ -1,118 +0,0 @@
// -*- 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

@@ -1,321 +0,0 @@
* {
/* `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,215 +0,0 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
#font pango:monospace 10
font pango:JetBrainsMono NF 10
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec kitty --single-instance
#bindsym $mod+Return exec ghostty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id rofi -show drun
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
#bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
bindsym $mod+p exec spectacle -rb
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
bindsym $mod+Shift+s sticky toggle
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3blocks
position bottom
}
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show
gaps inner 4
gaps outer 4
exec --no-startup-id pipewire
exec --no-startup-id picom -b
exec --no-startup-id dunst
exec xrandr --output DP-2 --auto -r 144

View File

@@ -1,17 +1,28 @@
#font_family family='JetBrainsMono Nerd Font Mono'
#font_family family='JetBrainsMono'
font_family family='JetBrainsMonoNFM-Regular'
#font_family 'JetBrainsMono NF'
# font_family 'JetBrainsMonoNL NFM ExtraBold'
font_size 11
# bold_font auto
# italic_font auto
# bold_italic_font auto
#text_composition_strategy legacy
modify_font cell_width 95%
#modify_font cell_width 95%
background_opacity 20
cursor_trail 10
cursor_trail_start_threshold 0
shell_integration no-cursor
cursor_trail_decay 0.01 0.15
cursor_shape block
cursor_blink true
linux_display_server wayland
wayland_enable_ime yes
# BEGIN_KITTY_FONTS
font_family family="JetBrainsMono Nerd Font Mono"
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS

View File

@@ -0,0 +1,20 @@
#font_family 'JetBrainsMono NF'
font_family 'JetBrainsMonoNL NFM ExtraBold'
font_size 12
bold_font auto
italic_font auto
bold_italic_font auto
text_composition_strategy legacy
modify_font cell_width 95%
cursor_trail 10
cursor_trail_start_threshold 0
shell_integration no-cursor
cursor_trail_decay 0.01 0.15
cursor_shape block
linux_display_server wayland
wayland_enable_ime yes

View File

@@ -19,10 +19,12 @@ wl-paste --type text --watch cliphist store &
systemctl --user start shikane &
systemctl --user start sway-audio-idle-inhibit &
#pipewire &
pipewire &
swaync &
dex -a &
# screen record or share
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlroots
/usr/lib/xdg-desktop-portal-wlr &

View File

@@ -12,7 +12,7 @@ blur_params_contrast = 0.9
blur_params_saturation = 1.2
shadows = 1
layer_shadows = 0
layer_shadows = 1
shadow_only_floating = 1
shadows_size = 5
shadows_blur = 15
@@ -52,7 +52,7 @@ scroller_structs=20
scroller_default_proportion=1.0
scroller_focus_center=0
scroller_prefer_center=0
edge_scroller_pointer_focus=1
edge_scroller_pointer_focus=0
scroller_default_proportion_single=1.0
scroller_proportion_preset=1.0,1.0,1.0
@@ -64,8 +64,8 @@ smartgaps=0
# Overview Setting
hotarea_size=10
enable_hotarea=1
ov_tab_mode=0
enable_hotarea=0
ov_tab_mode=1
overviewgappi=5
overviewgappo=30
@@ -84,8 +84,9 @@ cursor_size=24
drag_tile_to_tile=1
# keyboard
repeat_rate=25
repeat_delay=600
#repeat_rate=25
repeat_rate=30
repeat_delay=300
numlockon=1
xkb_rules_layout=us
@@ -112,7 +113,7 @@ gappoh=10
gappov=10
scratchpad_width_ratio=0.8
scratchpad_height_ratio=0.9
borderpx=2
borderpx=1
rootcolor=0x201b14ff
bordercolor=0x444444ff
focuscolor=0xc9b890ff
@@ -137,6 +138,7 @@ tagrule=id:9,layout_name:tile
# Key Bindings
# key name refer to `xev` or `wev` command output,
# mod keys name: super,ctrl,alt,shift,none
bind=SUPER,period,incnmaster,+1
bind=SUPER,comma,incnmaster,-1
@@ -149,7 +151,8 @@ bind=SUPER,d,spawn,wofi --show drun -GI
bind=SUPER,Return,spawn,kitty
# exit
bind=SUPER+SHIFT,m,quit
#bind=SUPER+SHIFT,e,quit
bind=SUPER+SHIFT,m,spawn_shell, wlr-randr --output eDP-1 --toggle
bind=SUPER,m,spawn_shell, playerctl pause; swaylock -f -c 000000 # lock
bind=SUPER+SHIFT,q,killclient,
@@ -245,10 +248,10 @@ bind=CTRL+SHIFT,Left,movewin,-50,+0
bind=CTRL+SHIFT,Right,movewin,+50,+0
# resizewin
bind=SUPER,Up,resizewin,+0,-50
bind=SUPER,Down,resizewin,+0,+50
bind=SUPER,Left,resizewin,-50,+0
bind=SUPER,Right,resizewin,+50,+0
#bind=none,Up,resizewin,+0,-50
#bind=none,Down,resizewin,+0,+50
#bind=none,Left,resizewin,-50,+0
#bind=none,Right,resizewin,+50,+0
# Mouse Button Bindings
# NONE mode key only work in ov mode

View File

@@ -45,8 +45,8 @@
"num-tags":9,
},
"dwl/window": {
//"format": "[{layout}]{title}"
"format": "[{layout}]"
"format": "[{layout}] {title}"
//"format": "[{layout}]"
},
// Modules configuration
// "sway/workspaces": {

View File

@@ -1,13 +1,13 @@
{
"black-metal-theme-neovim": { "branch": "main", "commit": "6d0207871387077f40d5396ab1ae90520e688d36" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" },
"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-treesitter": { "branch": "master", "commit": "92d2501d698e0fe855bd222540f9648890fab6c7" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
"vim-tmux-navigator": { "branch": "master", "commit": "97e58f2b3b4f8fd30ce149302f10202f363cc361" }
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "3b3571b4dadbcb464804466e9872e7246c316af7" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"mini.completion": { "branch": "main", "commit": "7c5edfc0e479dd4edd898cc9ddd1920d8c1ce420" },
"mini.nvim": { "branch": "main", "commit": "6bd3a01aaf7d248aea1b78aacdd5d44bffa002c1" },
"nvim-lspconfig": { "branch": "master", "commit": "07f4e93de92e8d4ea7ab99602e3a8c9ac0fb778a" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "84b9ba066d1860f7a586ce9cd732fd6c4f77d1d9" },
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" }
}

View File

@@ -1,9 +1,12 @@
font 'JetBrainsMono' 10
#font 'JetBrainsMono NF' 9
#font 'JetBrainsMono Nerd Font Mono' 9
font 'JetBrainsMonoNFM-Regular' 9
### Variables
#set $mod Mod1
set $mod Mod4
#set $term kitty -1
set $term kitty
#set $term ghostty
@@ -14,37 +17,69 @@ set $down j
set $up k
set $right l
set $laptop eDP-1
include ~/.config/sway/config.d/*
### Output configuration
# You can get the names of your outputs by running: swaymsg -t get_outputs
# https://gitlab.com/w0lff/shikane for multitple display handling
#output * bg /home/jozamudi/Documents/Wallpapers/windows-11-stock-official-colorful-3840x2160-5658.jpg fill
#output eDP-1 scale 1.7
#output 'BNQ BenQ PD3200U S2N01233019' scale 1.5
#exec_always shikanectl reload
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
exec_always --no-startup-id '/home/jozamudi/.config/sway/scripts/clamshell-mode.sh'
#input "1267:12792:ELAN067B:00_04F3:31F8_Touchpad" {
# dwt enabled
# tap enabled
# middle_emulation enabled
#}
### Idle configuration
#exec swayidle -w \
# timeout 300 'swaylock -f -c 000000' \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
# before-sleep 'playerctl pause; swaylock -f -c 000000'
# timeout 600 'swaymsg "output * power off"' \
# resume 'swaymsg "output * power on"' \
# before-sleep 'swaylock -f -c 000000'
output HDMI-A-3 mode 3440x1440
#seat seat0 xcursor_theme Adwaita 25
seat seat0 xcursor_theme Adwaita 35
#exec pipewire
exec swaync
exec waybar
exec shikane
exec nm-applet
exec blueman-applet
exec mpd
exec syncthing
# Auto start .desktop files using dex
exec dex -a
#exec nohup pipewire
exec nohup swaync
exec nohup sway-audio-idle-inhibit
exec nohup waybar
exec nohup nm-applet
exec nohup shikane
exec nohup flatpak run com.github.wwmm.easyeffects -w
exec wl-paste -t text --watch clipman store --no-persist
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlroots DISPLAY
exec /usr/lib/xdg-desktop-portal-wlr
exec systemctl --user start shikane &
exec systemctl --user start sway-audio-idle-inhibit &
exec wl-clip-persist --clipboard regular --reconnect-tries 0 &
exec wl-paste --type text --watch cliphist store &
#exec wl-paste -t text --watch clipman store --no-persist
# There are two wl-paste processes running, one for the primary and one for the normal clipboard
exec wl-paste -t text --watch clipman store
exec wl-paste -p -t text --watch clipman store
# The keybind to select a clipping
bindsym $mod+y exec clipman --primary pick --tool wofi
# Clear all clippings
bindsym $mod+Shift+y exec clipman clear -a
# Remove a selected clipping
bindsym $mod+Mod1+y exec clipman clear --tool wofi
# Empty the current clipping
bindsym $mod+Ctrl+y exec : | wl-copy -p
#better audio
#exec easyeffects -w -l Laptop
#default_border pixel 2
#default_floating_border pixel 2
exec systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway XDG_SESSION_DESKTOP=sway
default_border pixel 2
default_floating_border pixel 2

View File

@@ -90,15 +90,15 @@ mode "resize" {
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $right resize shrink width 10px
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $left resize grow width 10px
bindsym $right resize grow width 10px
bindsym Shift+$right resize shrink width 40px
bindsym Shift+$left resize shrink width 40px
bindsym Shift+$down resize grow height 40px
bindsym Shift+$up resize shrink height 40px
bindsym Shift+$left resize grow width 40px
bindsym Shift+$right resize grow width 40px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
@@ -113,10 +113,18 @@ mode "resize" {
bindsym $mod+r mode "resize"
bindsym $mod+Shift+s sticky toggle
bindsym $mod+m exec 'playerctl pause && swaylock -c 0x0000'
#bindsym $mod+Shift+o exec 'playerctl pause && swaylock -c 0x0000'
# Toggle laptop display
bindsym $mod+Shift+m output $laptop toggle
bindsym $mod+shift+m output $laptop toggle
bindsym $mod+m exec bash -c 'playerctl pause; swaymsg output $laptop power on; swaylock -f -c 000000'
# play/pause media player
#bindsym XF86Favorites exec playerctl play-pause
bindsym $mod+bracketleft exec playerctl previous
bindsym $mod+bracketright exec playerctl next
bindsym $mod+backslash exec playerctl play-pause
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% \
&& pkill -RTMIN+10 i3blocks;
@@ -129,11 +137,20 @@ bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle \
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86MonBrightnessDown exec brightnessctl set 2%-
bindsym XF86MonBrightnessUp exec brightnessctl set 2%+
bindsym $mod+shift+p exec slurp | grim -g - - | tee ~/Pictures/$(date +%s).png | wl-copy
bindsym $mod+shift+p exec slurp | \
grim -g - - | \
tee ~/Pictures/$(date +%F-%s).png | \
wl-copy
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
# Custom App Keybinds
bindsym $mod+Shift+f exec firefox
bindsym $mod+Shift+n exec nautilus

View File

@@ -0,0 +1,56 @@
#smart_corner_radius on
gaps inner 2
default_border pixel 2
#corner_radius 8
#blur enable
#blur_passes 2
#blur_radius 2
#layer_effects "waybar" "blur enable"; shadows enable
#shadows on
#shadow_blur_radius 5
#https://github.com/rkubosz/base16-sway
set $base00 #031A16
set $base01 #0B342D
set $base02 #184E45
set $base03 #2B685E
set $base04 #5F9C92
set $base05 #81B5AC
set $base06 #A7CEC8
set $base07 #D2E7E4
set $base08 #3E9688
set $base09 #3E7996
set $base0A #3E4C96
set $base0B #883E96
set $base0C #963E4C
set $base0D #96883E
set $base0E #4C963E
set $base0F #3E965B
#set $base00 #000000
#set $base01 #121212
#set $base02 #222222
#set $base03 #333333
#set $base04 #999999
#set $base05 #c1c1c1
#set $base06 #999999
#set $base07 #c1c1c1
#set $base08 #5f8787
#set $base09 #aaaaaa
#set $base0A #a06666
#set $base0B #dd9999
#set $base0C #aaaaaa
#set $base0D #888888
#set $base0E #999999
#set $base0F #444444
# Property Name Border BG Text Indicator Child Border
client.focused $base05 $base0D $base00 $base0D $base0D
client.focused_inactive $base01 $base01 $base05 $base03 $base01
client.unfocused $base01 $base00 $base05 $base01 $base01
client.urgent $base08 $base08 $base00 $base08 $base08
client.placeholder $base00 $base00 $base05 $base00 $base00
client.background $base07

View File

@@ -13,3 +13,4 @@ for_window [title="LUCID"] floating enable
for_window [title="Pydm|pydm"] floating enable
for_window [title="Form"] floating enable
for_window [title="zoom"] floating enable

View File

@@ -0,0 +1,12 @@
#!/bin/sh
LAPTOP_OUTPUT="eDP-1"
LID_STATE_FILE="/proc/acpi/button/lid/LID/state"
read -r LS < "$LID_STATE_FILE"
case "$LS" in
*open) swaymsg output "$LAPTOP_OUTPUT" enable ;;
*closed) swaymsg output "$LAPTOP_OUTPUT" disable ;;
*) echo "Could not get lid state" >&2 ; exit 1 ;;
esac

8
.config/sway/scripts/env.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
export MOZ_ENABLE_WAYLAND=1
export WLR_DRM_NO_MODIFIERS=1
export QT_QPA_PLATFORM="wayland-egl;xcb"
export SDL_VIDEODRIVER=wayland
export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=sway

View File

@@ -0,0 +1,3 @@
#!/bin/bash
slur

15
.config/swaylock/config Normal file
View File

@@ -0,0 +1,15 @@
ignore-empty-password
clock
timestr=%R
datestr=%a, %e of %B
fade-in=0.2
#screenshots
effect-blur=20x2
#effect-greyscale
effect-scale=0.3
indicator

View File

@@ -3,12 +3,13 @@ set -g default-terminal "xterm-256color"
bind-key r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!"
set-option -g default-shell /bin/zsh
# remap prefix
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# set vi-mode
set-window-option -g mode-keys vi
# keybindings
@@ -37,7 +38,6 @@ bind-key -T copy-mode-vi 'C-l' select-pane -R
bind-key -T copy-mode-vi 'C-\' select-pane -l
set -g renumber-windows on
set-option -g allow-rename off
@@ -50,3 +50,10 @@ bind % split-window -h -c "#{pane_current_path}"
set-option -g update-environment "SSH_AUTH_SOCK \
SSH_CONNECTION \
DISPLAY "
set -g status-position bottom
set -g status-left " #{session_name} "
set -g status-right ""
set -g status-right-length 100
# set -g status-style 'fg=default'

View File

@@ -1,64 +1,24 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
//"height": 10, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 0, // Gaps between modules (4px)
// Choose the order of the modules
"spacing": 2, // Gaps between modules (4px)
"modules-left": [
"sway/workspaces",
"sway/mode",
"sway/scratchpad",
"custom/media"
"hyprland/workspaces",
"hyprland/mode",
"hyprland/scratchpad",
"hyprland/window"
],
//"modules-center": [
//"sway/window"
//],
"modules-right": [
//"mpd",
//"custom/audio_idle_inhibitor",
//"pulseaudio",
"pulseaudio",
//"network",
//"power-profiles-daemon",
//"cpu",
//"memory",
//"temperature",
//"backlight",
//"keyboard-state",
//"sway/language",
//"battery",
//"battery#bat2",
"battery",
"clock",
"tray"
//"custom/power"
],
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "warp-on-scroll": false,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
@@ -69,40 +29,6 @@
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
//"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"format-stopped": "",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon} ",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10,
@@ -112,30 +38,11 @@
// }
},
"clock": {
// "timezone": "America/New_York",
//"timezone": "America/Los_Angeles",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%r}",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
"format": "{:%r %Y-%m-%d}",
//"format": "{:%R %p %Y-%m-%d}",
//"format-alt": "{:%Y-%m-%d}"
},
"battery": {
"states": {
@@ -143,7 +50,7 @@
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format": "{time} {capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% C",
"format-plugged": "{capacity}% P",
@@ -168,19 +75,20 @@
},
"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-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-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon}  {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
@@ -205,29 +113,5 @@
"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
},
"custom/power": {
"format" : "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate"
}
},
"custom/audio_idle_inhibitor": {
"format": "{icon} ",
"exec": "sway-audio-idle-inhibit --dry-print-both-waybar",
"exec-if": "which sway-audio-idle-inhibit",
"return-type": "json",
"format-icons": {
"output": "",
"input": "",
"output-input": " ",
"none": ""
}
}
}

View File

@@ -1,15 +1,16 @@
* {
/* `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: 14px;
font-weight: bold;
font-size: 15px;
}
window#waybar {
/*background-color: rgba(43, 48, 59, 0.5);*/
/*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);
/*border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
@@ -26,18 +27,10 @@ window#waybar.solo {
/*background-color: #FFFFFF;*/
}
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
/*box-shadow: inset 0 -3px transparent;*/
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
@@ -55,8 +48,8 @@ button:hover {
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
padding: 0 4px;
/*background-color: transparent;*/
color: #ffffff;
}
@@ -66,7 +59,7 @@ button:hover {
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
/*box-shadow: inset 0 -3px #ffffff;*/
}
#workspaces button.urgent {

1
.gitignore vendored
View File

@@ -1,2 +1 @@
.config/nvim/lazy-lock.json

20
.zshrc
View File

@@ -1,20 +0,0 @@
# 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'

13
applications/Zoom.desktop Normal file
View File

@@ -0,0 +1,13 @@
[Desktop Entry]
Name=Zoom Workplace
Comment=Zoom Video Conference
Exec=/usr/bin/zoom %U
Icon=Zoom
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
StartupWMClass=zoom
MimeType=x-scheme-handler/zoommtg;x-scheme-handler/zoomus;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/zoomphonecall;x-scheme-handler/zoomphonesms;x-scheme-handler/zoomcontactcentercall;application/x-zoom
X-KDE-Protocols=zoommtg;zoomus;tel;callto;zoomphonecall;zoomphonesms;zoomcontactcentercall;
Name[en_US]=Zoom Workplace

View File

@@ -0,0 +1,209 @@
[Desktop Entry]
Categories=Utility;X-SuSE-SyncUtility;
Type=Application
Exec=nextcloud %u
Name=Nextcloud Desktop
Comment=Nextcloud desktop synchronization client
GenericName=Folder Sync
Icon=Nextcloud
Keywords=Nextcloud;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
MimeType=application/vnd.nextcloud;x-scheme-handler/nc;
Actions=Quit;
# Translations
Comment[oc]=Nextcloud sincronizacion del client
GenericName[oc]=Dorsièr de Sincronizacion
Name[oc]=Nextcloud sincronizacion del client
Icon[oc]=Nextcloud
Comment[ar]=Nextcloud زبون مزامنة مكتبي
GenericName[ar]=مزامنة المجلد
Name[ar]=Nextcloud زبون مزامنة مكتبي
Icon[ar]=Nextcloud
Comment[bg_BG]=Nextcloud клиент за десктоп синхронизация
GenericName[bg_BG]=Синхронизиране на папката
Name[bg_BG]=Nextcloud клиент десктоп синхронизация
Icon[bg_BG]=Nextcloud
Comment[ca]=Client de sincronització d'escriptori Nextcloud
GenericName[ca]=Sincronització de carpetes
Name[ca]=Client de sincronització d'escriptori Nextcloud
Icon[ca]=Nextcloud
Comment[da]=Nextcloud skrivebordsklient til synkronisering
GenericName[da]=Mappesynkronisering
Name[da]=Nextcloud skrivebordsklient til synk
Icon[da]=Nextcloud
Comment[de]=Nextcloud Desktop-Synchronisationsclient
GenericName[de]=Ordner-Synchronisation
Name[de]=Nextcloud Desktop-Synchronisationsclient
Icon[de]=Nextcloud
Comment[ja_JP]=Nextcloud デスクトップ同期クライアント
GenericName[ja_JP]=フォルダー同期
Name[ja_JP]=Nextcloud デスクトップ同期クライアント
Icon[ja_JP]=Nextcloud
Comment[el]=Nextcloud συγχρονισμός επιφάνειας εργασίας πελάτη
GenericName[el]=Συγχρονισμός φακέλου
Name[el]=Nextcloud συγχρονισμός επιφάνειας εργασίας πελάτη
Icon[el]=Nextcloud
Comment[en_GB]=Nextcloud desktop synchronisation client
GenericName[en_GB]=Folder Sync
Name[en_GB]=Nextcloud desktop sync client
Icon[en_GB]=Nextcloud
Comment[es]=Nextcloud cliente de sincronización de escritorio
GenericName[es]=Sincronización de carpeta
Name[es]=Nextcloud cliente de sincronización de escritorio
Icon[es]=Nextcloud
Comment[de_DE]=Nextcloud Desktop-Synchronisationsclient
GenericName[de_DE]=Ordner-Synchronisation
Name[de_DE]=Nextcloud Desktop-Synchronisationsclient
Icon[de_DE]=Nextcloud
Comment[eu]=Nextcloud mahaigaineko sinkronizazio bezeroa
GenericName[eu]=Karpetaren sinkronizazioa
Name[eu]=Nextcloud mahaigaineko sinkronizazio bezeroa
Icon[eu]=Nextcloud
GenericName[fa]=همسان سازی پوشه‌ها
Name[fa]=nextcloud نسخه‌ی همسان سازی مشتری
Icon[fa]=Nextcloud
Comment[fr]=Synchronisez vos dossiers avec un serveur Nextcloud
GenericName[fr]=Synchronisation de dossier
Name[fr]=Client de synchronisation Nextcloud
Icon[fr]=Nextcloud
Comment[gl]=Nextcloud cliente de sincronización para escritorio
GenericName[gl]=Sincronizar Cartafol
Name[gl]=Nextcloud cliente de sincronización para escritorio
Icon[gl]=Nextcloud
Comment[he]=Nextcloud לקוח סנכון שולחן עבודה
GenericName[he]=סנכון תיקייה
Name[he]=Nextcloud לקוח סנכרון שולחן עבודה
Icon[he]=Nextcloud
Comment[ia]=Nextcloud cliente de synchronisation pro scriptorio
GenericName[ia]=Synchronisar Dossier
Name[ia]=Nextcloud cliente de synchronisation pro scriptorio
Icon[ia]=Nextcloud
Comment[id]=Klien sinkronisasi desktop Nextcloud
GenericName[id]=Folder Sync
Name[id]=Klien sync desktop Nextcloud
Icon[id]=Nextcloud
Comment[is]=Nextcloud skjáborðsforrit samstillingar
GenericName[is]=Samstilling möppu
Name[is]=Nextcloud skjáborðsforrit samstillingar
Icon[is]=Nextcloud
Comment[it]=Client di sincronizzazione del desktop di Nextcloud
GenericName[it]=Sincronizzazione cartella
Name[it]=Client di sincronizzazione del desktop di Nextcloud
Icon[it]=Nextcloud
Comment[ko]=Nextcloud 데스크톱 동기화 클라이언트
GenericName[ko]=폴더 동기화
Name[ko]=Nextcloud 데스크톱 동기화 클라이언트
Icon[ko]=Nextcloud
Comment[hu_HU]=Nextcloud asztali szinkronizációs kliens
GenericName[hu_HU]=Könyvtár szinkronizálás
Name[hu_HU]=Nextcloud asztali szinkr. kliens
Icon[hu_HU]=Nextcloud
Comment[af_ZA]=Nextcloud werkskermsinchroniseerkliënt
GenericName[af_ZA]=Vouersinchronisering
Name[af_ZA]=Nextcloud werkskermsinchroniseerkliënt
Icon[af_ZA]=Nextcloud
Comment[nl]=Nextcloud desktop synchronisatie client
GenericName[nl]=Mappen sync
Name[nl]=Nextcloud desktop sync client
Icon[nl]=Nextcloud
Comment[et_EE]=Nextcloud sünkroonimise klient töölauale
GenericName[et_EE]=Kaustade sünkroonimine
Name[et_EE]=Nextcloud sünkroonimise klient töölauale
Icon[et_EE]=Nextcloud
Comment[pl]=Nextcloud klient synchronizacji dla komputerów stacjonarnych
GenericName[pl]=Folder Synchronizacji
Name[pl]=Nextcloud klient synchronizacji dla komputerów stacjonarnych
Icon[pl]=Nextcloud
Comment[pt_BR]=Nextcloud cliente de sincronização do computador
GenericName[pt_BR]=Sincronização de Pasta
Name[pt_BR]=Nextcloud cliente de sincronização de desktop
Icon[pt_BR]=Nextcloud
Comment[cs_CZ]=Nextcloud počítačový synchronizační klient
GenericName[cs_CZ]=Synchronizace adresáře
Name[cs_CZ]=Nextcloud počítačový synchronizační klient
Icon[cs_CZ]=Nextcloud
Comment[ru]=Настольный клиент синхронизации Nextcloud
GenericName[ru]=Синхронизация каталогов
Name[ru]=Настольный клиент синхронизации Nextcloud
Icon[ru]=Nextcloud
Comment[sl]=Nextcloud Program za usklajevanje datotek z namizjem
GenericName[sl]=Usklajevanje map
Name[sl]=Nextcloud Program za usklajevanje datotek z namizjem
Icon[sl]=Nextcloud
Comment[sq]=Klient njëkohësimesh Nextcloud për desktop
GenericName[sq]=Njëkohësim Dosjesh
Name[sq]=Klient njëkohësimesh Nextcloud për desktop
Icon[sq]=Nextcloud
Comment[fi_FI]=Nextcloud työpöytäsynkronointisovellus
GenericName[fi_FI]=Kansion synkronointi
Name[fi_FI]=Nextcloud työpöytäsynkronointisovellus
Icon[fi_FI]=Nextcloud
Comment[sv]=Nextcloud desktop synkroniseringsklient
GenericName[sv]=Mappsynk
Name[sv]=Nextcloud desktop synk-klient
Icon[sv]=Nextcloud
Comment[tr]=Nextcloud masaüstü eşitleme istemcisi
GenericName[tr]=Dosya Eşitleme
Name[tr]=Nextcloud masaüstü eşitleme istemcisi
Icon[tr]=Nextcloud
Comment[uk]=Настільний клієнт синхронізації Nextcloud
GenericName[uk]=Синхронізація теки
Name[uk]=Настільний клієнт синхронізації Nextcloud
Icon[uk]=Nextcloud
Comment[ro]=Nextcloud client de sincronizare pe desktop
GenericName[ro]=Sincronizare director
Name[ro]=Nextcloud client de sincronizare pe desktop
Icon[ro]=Nextcloud
Comment[zh_CN]=Nextcloud 桌面同步客户端
GenericName[zh_CN]=文件夹同步
Name[zh_CN]=Nextcloud 桌面同步客户端
Icon[zh_CN]=Nextcloud
Comment[zh_HK]=桌面版同步客户端
Comment[zh_TW]=Nextcloud 桌面同步客戶端
GenericName[zh_TW]=資料夾同步
Name[zh_TW]=Nextcloud 桌面同步客戶端
Icon[zh_TW]=Nextcloud
Comment[es_AR]=Cliente de sincronización para escritorio Nextcloud
GenericName[es_AR]=Sincronización de directorio
Name[es_AR]=Cliente de sincronización para escritorio Nextcloud
Icon[es_AR]=Nextcloud
Comment[lt_LT]=Nextcloud darbalaukio sinchronizavimo programa
GenericName[lt_LT]=Katalogo sinchnorizacija
Name[lt_LT]=Nextcloud darbalaukio programa
Icon[lt_LT]=Nextcloud
Comment[th_TH]=Nextcloud ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
GenericName[th_TH]=ประสานข้อมูลโฟลเดอร์
Name[th_TH]= Nextcloud ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
Icon[th_TH]=Nextcloud
Comment[es_MX]=Cliente de escritorio para sincronziación de Nextcloud
GenericName[es_MX]=Sincronización de Carpetas
Name[es_MX]=Cliente de escritorio para sincronziación de Nextcloud
Icon[es_MX]=Nextcloud
Comment[nb_NO]=Nextcloud skrivebordssynkroniseringsklient
GenericName[nb_NO]=Mappesynkronisering
Name[nb_NO]=Nextcloud skrivebordssynkroniseringsklient
Icon[nb_NO]=Nextcloud
Comment[nn_NO]=Nextcloud klient for å synkronisera frå skrivebord
GenericName[nn_NO]=Mappe synkronisering
Name[nn_NO]=Nextcloud klient for å synkronisera frå skrivebord
Icon[nn_NO]=Nextcloud
Comment[pt_PT]=Nextcloud - Cliente de Sincronização para PC
GenericName[pt_PT]=Sincronizar Pasta
Name[pt_PT]=Nextcloud - Cliente de Sincronização para PC
Icon[pt_PT]=Nextcloud
Icon[km]=Nextcloud
Comment[lb]=Nextcloud Desktop Synchronisatioun Client
GenericName[lb]=Dossier Dync
Name[lb]=Nextcloud Desktop Sync Client
Icon[lb]=Nextcloud
Implements=org.freedesktop.CloudProviders
[org.freedesktop.CloudProviders]
BusName=com.nextcloudgmbh.Nextcloud
ObjectPath=/com/nextcloudgmbh/Nextcloud
[Desktop Action Quit]
Exec=nextcloud --quit
Name=Quit Nextcloud
Icon=nextcloud

View File

@@ -0,0 +1,2 @@
inode/directory=thunar.desktop
x-directory/normal=thunar.desktop

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Name=Discord
StartupWMClass=discord
Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.
GenericName=Internet Messenger
Exec=/usr/lib/discord/Discord --enable-features=UseOzonePlatform --ozone-platform=wayland
#Exec=/usr/lib/discord/Discord
Icon=discord
Type=Application
Categories=Network;InstantMessaging;
Path=/usr/bin

13
applications/feh.desktop Normal file
View File

@@ -0,0 +1,13 @@
[Desktop Entry]
Name=Feh
Name[en_US]=feh
GenericName=Image viewer
GenericName[en_US]=Image viewer
Comment=Image viewer and cataloguer
Exec=feh --start-at %u
Terminal=false
Type=Application
Icon=feh
Categories=Graphics;2DGraphics;Viewer;
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/webp;image/x-bmp;image/x-pcx;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-tga;image/x-xbitmap;image/heic;
NoDisplay=true

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/usr/lib/firefox/firefox %u
Name=Firefox
Comment=Custom definition for Firefox

16
scripts/kanshi-save-profile Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
name=$1
if [ -z "$name" ]; then
echo "Usage: $0 <name>"
exit 1
fi
echo "Saving profile $name"
echo -e "\nprofile $name {" >> ~/.config/kanshi/config
swaymsg -t get_outputs | \
jq '.[] | " output '"'"'\(.make) \(.model) \(.serial)'"'"' mode \(.current_mode.width)x\(.current_mode.height) position \(.rect.x),\(.rect.y)"' -r \
>> ~/.config/kanshi/config

1
scripts/vpn Symbolic link
View File

@@ -0,0 +1 @@
/home/jozamudi/Downloads/mullvad_config_linux_us_lax/vpn.sh