diff --git a/.bin/change-primary-screen b/.bin/change-primary-screen index b43ff73..918e20f 100755 --- a/.bin/change-primary-screen +++ b/.bin/change-primary-screen @@ -1,14 +1,38 @@ #!/bin/sh -PRIMARY=$(xrandr --prop | rg primary | awk '{ print $1 }') -NONPRIMARY=$(xrandr --prop | rg connected | rg -v primary | awk '{ print $1 }') +# # # # # # # # # # # # # # # # # # # # # # # # +# Setup to change screens with i3 and xrandr # +# # # # # # # # # # # # # # # # # # # # # # # # -xrandr --output $PRIMARY --noprimary -xrandr --output $NONPRIMARY --primary +get_workspaces () { + i3-msg -t get_workspaces | jq ".[] | select(.output==\"$1\").name" -r +} + +workspace_toggle_output () { + for i in $1; do + i3-msg "[workspace=\"$i\"]" move workspace to output $2 > /dev/null 2>&1 + done +} + +get_selected_output () { + rg "set $1" ~/.config/i3/conf.d/20-workspaces.i3config | awk '{ print $3 }' +} + +PRIMARY=$(get_selected_output '\$primary') +NOPRIMARY=$(get_selected_output '\$nonprimary') + +xrandr --output "$PRIMARY" --noprimary +xrandr --output "$NOPRIMARY" --primary sed -i \ - -e "5 s/$PRIMARY/$NONPRIMARY/" \ - -e "6 s/$NONPRIMARY/$PRIMARY/" \ + -e "5 s/$PRIMARY/$NOPRIMARY/" \ + -e "6 s/$NOPRIMARY/$PRIMARY/" \ $HOME/.config/i3/conf.d/20-workspaces.i3config -$HOME/.bin/i3-mkconfig && i3-msg restart +$HOME/.bin/i3-mkconfig && i3-msg restart > /dev/null + +PRIMARY_WORKSPACES=$(get_workspaces "$PRIMARY") +NOPRIMARY_WORKSPACES=$(get_workspaces "$NOPRIMARY") + +workspace_toggle_output "$PRIMARY_WORKSPACES" "$NOPRIMARY" +workspace_toggle_output "$NOPRIMARY_WORKSPACES" "$PRIMARY" diff --git a/.bin/get-m3u-video b/.bin/get-m3u-video new file mode 100755 index 0000000..d084c86 --- /dev/null +++ b/.bin/get-m3u-video @@ -0,0 +1,6 @@ +#! /bin/bash + +# https://video.twimg.com/amplify_video/1669785809682046976/pl/720x720/4Et86JY_QPiiaGS-.m3u8?container=fmp4 +URL=$1 +OUT=$2 +ffmpeg -i "$URL" -c copy -bsf:a aac_adtstoasc $OUT diff --git a/.bin/i3status b/.bin/i3status new file mode 100755 index 0000000..8c35836 --- /dev/null +++ b/.bin/i3status @@ -0,0 +1,7 @@ +#! /bin/bash + +i3status $@ | while : +do + read line + echo "$line" || exit 1 +done diff --git a/.bin/kramdown-template b/.bin/kramdown-template new file mode 100755 index 0000000..27ef184 --- /dev/null +++ b/.bin/kramdown-template @@ -0,0 +1,37 @@ +#! /bin/bash + +PROGRAM=$(basename $0) + +OPTS=$(getopt -o 't:p:' --long 'template:,placeholder:' -n "$PROGRAM" -- "$@") + +if [ $? != 0 ] ; then echo "Error" >&2 ; exit 1 ; fi + +eval set -- "$OPTS" +unset OPTS + +TEMPLATE="template.html" +PLACEHOLDER="{{ content }}" + +while true; do + case "$1" in + -t | --template ) TEMPLATE="$2"; shift 2 ;; + -p | --placeholder ) PLACEHOLDER="$2"; shift 2 ;; + -- ) shift; break ;; + * ) break ;; + esac +done + +INPUT=$1 + +if [ ! -e "$INPUT" ]; then + echo "Archivo $INPUT no existe :("; + exit 1; +fi + +EXP="/$PLACEHOLDER/r" +REMOVE="s/$PLACEHOLDER//g" + +OUT=$(basename $INPUT .md) + +sed "$EXP"<(kramdown $INPUT) $TEMPLATE | sed "$REMOVE" > $OUT.html +echo "ยก$OUT.html generado! ๐ŸŽ‰" diff --git a/.bin/logwheel b/.bin/logwheel new file mode 100755 index 0000000..2bc1cd4 --- /dev/null +++ b/.bin/logwheel @@ -0,0 +1,3 @@ +#! /bin/bash + +echo "Params: $@" >> $HOME/.cache/wheelevent diff --git a/.bin/reset-hdmi b/.bin/reset-hdmi new file mode 100755 index 0000000..ea441ab --- /dev/null +++ b/.bin/reset-hdmi @@ -0,0 +1,6 @@ +#! /bin/bash + +xrandr --output HDMI-1 --off \ + && xrandr --output HDMI-1 --above eDP-1 --mode 1920x1080 + +~/.fehbg diff --git a/.bin/set-last-outputs b/.bin/set-last-outputs new file mode 100755 index 0000000..bab3282 --- /dev/null +++ b/.bin/set-last-outputs @@ -0,0 +1,16 @@ +#!/bin/bash + +# # # # # # # # # # # # # # # # # # # # # # # # # # # +# Setup to set last output arrangement with xrandr # +# # # # # # # # # # # # # # # # # # # # # # # # # # # + +get_selected_output () { + rg "set $1" ~/.config/i3/conf.d/20-workspaces.i3config | awk '{ print $3 }' +} + +PRIMARY=$(get_selected_output '\$primary') +NOPRIMARY=$(get_selected_output '\$nonprimary') + +xrandr --output "$NOPRIMARY" --noprimary +xrandr --output "$PRIMARY" --primary + diff --git a/.bin/toggle-sink b/.bin/toggle-sink new file mode 100755 index 0000000..e1576ab --- /dev/null +++ b/.bin/toggle-sink @@ -0,0 +1,19 @@ +#! /bin/bash + +AVAILABLE=($(pacmd list-sinks | rg 'index:' | awk '{ print $2 }')) +LEN=${#AVAILABLE[@]} + +if [ $LEN -le 1 ]; then + exit 1 +fi + +for (( i = 0; i < LEN; i++ )); do + if [ "${AVAILABLE[$i]}" == "index:" ]; then + break; + fi +done + +NEXT=$(( ($i + 1) % $LEN )) + +pacmd set-default-sink ${AVAILABLE[$NEXT]} +echo $AVAILALE[$NEXT] diff --git a/.cheatsheet-unicode b/.cheatsheet-unicode index 004be58..1813abd 100644 --- a/.cheatsheet-unicode +++ b/.cheatsheet-unicode @@ -1,5 +1,12 @@ # TODO: order by categories +# Font: font awesome +# +# With a macro you can do something like +# 0xf100, then copy and paste under, delete the 0x, then +# go at the end of the line, in command mode write something like +# exe "normal i\u["]" and that's all +f017 ๏€— f100 ๏„€ f101 ๏„ f102 ๏„‚ @@ -713,5 +720,259 @@ f4c1 ๏“ f4c5 ๏“… f4c7 ๏“‡ f4cd ๏“ +f4ce ๏“Ž +f4cf ๏“ +f4d0 ๏“ +f4d1 ๏“‘ +f4d2 ๏“’ +f4d3 ๏““ +f4d4 ๏“” +f4d5 ๏“• +f4d6 ๏“– +f4d7 ๏“— +f4d8 ๏“˜ +f4d9 ๏“™ +f4da ๏“š +f4db ๏“› +f4dc ๏“œ +f4dd ๏“ +f4de ๏“ž +f4df ๏“Ÿ +f4e0 ๏“  +f4e1 ๏“ก +f4e2 ๏“ข +f4e3 ๏“ฃ +f4e4 ๏“ค +f4e5 ๏“ฅ +f4e6 ๏“ฆ +f4e7 ๏“ง +f4e8 ๏“จ +f4e9 ๏“ฉ +f4ea ๏“ช +f4eb ๏“ซ +f4ec ๏“ฌ +f4ed ๏“ญ +f4ee ๏“ฎ +f4ef ๏“ฏ +f4f0 ๏“ฐ +f4f1 ๏“ฑ +f4f2 ๏“ฒ +f4f3 ๏“ณ +f4f4 ๏“ด +f4f5 ๏“ต +f4f6 ๏“ถ +f4f7 ๏“ท +f4f8 ๏“ธ +f4f9 ๏“น +f4fa ๏“บ +f4fb ๏“ป +f4fc ๏“ผ +f4fd ๏“ฝ +f4fe ๏“พ +f4ff ๏“ฟ +f500 ๏”€ +f501 ๏” +f502 ๏”‚ +f503 ๏”ƒ +f504 ๏”„ +f505 ๏”… +f506 ๏”† +f507 ๏”‡ +f508 ๏”ˆ +f509 ๏”‰ +f50a ๏”Š +f50b ๏”‹ +f50c ๏”Œ +f50d ๏” +f50e ๏”Ž +f50f ๏” +f510 ๏” +f511 ๏”‘ +f512 ๏”’ +f513 ๏”“ +f514 ๏”” +f515 ๏”• +f516 ๏”– +f517 ๏”— +f518 ๏”˜ +f519 ๏”™ +f51a ๏”š +f51b ๏”› +f51c ๏”œ +f51d ๏” +f51e ๏”ž +f51f ๏”Ÿ +f520 ๏”  +f521 ๏”ก +f522 ๏”ข +f523 ๏”ฃ +f524 ๏”ค +f525 ๏”ฅ +f526 ๏”ฆ +f527 ๏”ง +f528 ๏”จ +f529 ๏”ฉ +f52a ๏”ช +f52b ๏”ซ +f52c ๏”ฌ +f52d ๏”ญ +f52e ๏”ฎ +f52f ๏”ฏ +f530 ๏”ฐ +f531 ๏”ฑ +f532 ๏”ฒ +f533 ๏”ณ +f534 ๏”ด +f535 ๏”ต +f536 ๏”ถ +f537 ๏”ท +f538 ๏”ธ +f539 ๏”น +f53a ๏”บ +f53b ๏”ป +f53c ๏”ผ +f53d ๏”ฝ +f53d ๏”ฝ +f53e ๏”พ +f53f ๏”ฟ +f540 ๏•€ +f541 ๏• +f542 ๏•‚ +f543 ๏•ƒ +f544 ๏•„ +f545 ๏•… +f546 ๏•† +f547 ๏•‡ +f548 ๏•ˆ +f549 ๏•‰ +f54a ๏•Š +f54b ๏•‹ +f54c ๏•Œ +f54d ๏• +f54e ๏•Ž +f54f ๏• +f550 ๏• +f551 ๏•‘ +f552 ๏•’ +f553 ๏•“ +f554 ๏•” +f555 ๏•• +f556 ๏•– +f557 ๏•— +f558 ๏•˜ +f559 ๏•™ +f55a ๏•š +f55b ๏•› +f55c ๏•œ +f55d ๏• +f55e ๏•ž +f55f ๏•Ÿ +f560 ๏•  +f561 ๏•ก +f562 ๏•ข +f563 ๏•ฃ +f564 ๏•ค +f565 ๏•ฅ +f566 ๏•ฆ +f567 ๏•ง +f568 ๏•จ +f569 ๏•ฉ +f56a ๏•ช +f56b ๏•ซ +f56c ๏•ฌ +f56d ๏•ญ +f56e ๏•ฎ +f56f ๏•ฏ +f570 ๏•ฐ +f571 ๏•ฑ +f572 ๏•ฒ +f573 ๏•ณ +f574 ๏•ด +f575 ๏•ต +f576 ๏•ถ +f577 ๏•ท +f578 ๏•ธ +f579 ๏•น +f57a ๏•บ +f57b ๏•ป +f57c ๏•ผ +f57d ๏•ฝ +f57e ๏•พ +f57f ๏•ฟ +f580 ๏–€ +f581 ๏– +f582 ๏–‚ +f583 ๏–ƒ +f584 ๏–„ +f585 ๏–… +f586 ๏–† +f587 ๏–‡ +f588 ๏–ˆ +f589 ๏–‰ +f58a ๏–Š +f58b ๏–‹ +f58c ๏–Œ +f58d ๏– +f58e ๏–Ž +f58f ๏– +f590 ๏– +f591 ๏–‘ +f592 ๏–’ +f593 ๏–“ +f594 ๏–” +f595 ๏–• +f596 ๏–– +f597 ๏–— +f598 ๏–˜ +f599 ๏–™ +f59a ๏–š +f59b ๏–› +f59c ๏–œ +f59d ๏– +f59e ๏–ž +f59f ๏–Ÿ +f5a0 ๏–  +f5a1 ๏–ก +f5a2 ๏–ข +f5a3 ๏–ฃ +f5a4 ๏–ค +f5a5 ๏–ฅ +f5a6 ๏–ฆ +f5a7 ๏–ง +f5a8 ๏–จ +f5a9 ๏–ฉ +f5aa ๏–ช +f5ab ๏–ซ +f5ac ๏–ฌ +f5ad ๏–ญ +f5ae ๏–ฎ +f5af ๏–ฏ +f5b0 ๏–ฐ +f5b1 ๏–ฑ +f5b2 ๏–ฒ +f5b3 ๏–ณ +f5b4 ๏–ด +f5b5 ๏–ต +f5b6 ๏–ถ +f5b7 ๏–ท +f5b8 ๏–ธ +f5b9 ๏–น +f5ba ๏–บ +f5bb ๏–ป +f5bc ๏–ผ +f5bd ๏–ฝ +f5be ๏–พ +f5bf ๏–ฟ +f5c0 ๏—€ +f5c1 ๏— +f5c2 ๏—‚ +f5c3 ๏—ƒ +f5c4 ๏—„ +f5c5 ๏—… +f5c6 ๏—† +f5c7 ๏—‡ +f5c8 ๏—ˆ +f5c9 ๏—‰ +f5ca ๏—Š #! vim: ft=config diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..2d29771 --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,43 @@ +[general] +import = [ + "~/.config/alacritty/themes/themes/gruvbox_light.toml" +] + +[colors] +draw_bold_text_with_bright_colors = true + +[cursor] +style = "Underline" + +[font] +size = 11 + +[font.bold] +family = "Iosevka" +style = "Bold" + +[font.italic] +family = "Iosevka" +style = "Italic" + +[font.normal] +family = "Iosevka" +style = "Regular" + +[[keyboard.bindings]] +chars = "\u001B[27;5;9~" +key = "Tab" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[27;6;9~" +key = "Tab" +mods = "Control|Shift" + +[mouse] +hide_when_typing = true + +[window] +dynamic_padding = true +opacity = 0.93 +title = "Terminal" diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml deleted file mode 100644 index cb6c033..0000000 --- a/.config/alacritty/alacritty.yml +++ /dev/null @@ -1,82 +0,0 @@ -window: - title: Terminal - dynamic_padding: true - opacity: 0.93 - -font: - normal: - family: Iosevka - style: Regular - - bold: - family: Iosevka - style: Bold - - italic: - family: Iosevka - style: Italic - - size: 12 - - draw_bold_text_with_bright_colors: true - -mouse: - hide_when_typing: true - -cursor: - style: Underline - -key_bindings: - - {key: Tab, mods: Control, chars: "\e[27;5;9~"} - - {key: Tab, mods: Control|Shift, chars: "\e[27;6;9~"} - -# shell: -# program: /bin/zsh - -# color_start -# gruvbox_light.yaml -# Colors (Gruvbox light) -colors: - # COLORSCHEME: gruvbox_dark.yaml - # Default colors - primary: - # hard contrast: background = '0xf9f5d7' - background: '0x282828' - # soft contrast: background = '0x32302f' - foreground: '0xebdbb2' - - # Normal colors - normal: - black: '0x282828' - red: '0xcc241d' - green: '0x98971a' - yellow: '0xd79921' - blue: '0x458588' - magenta: '0xb16286' - cyan: '0x689d6a' - white: '0xa89984' - - # Bright colors - bright: - black: '0x928374' - red: '0xfb4934' - green: '0xb8bb26' - yellow: '0xfabd2f' - blue: '0x83a598' - magenta: '0xd3869b' - cyan: '0x8ec07c' - white: '0xebdbb2' - dim: - black: '0x31363b' - red: '0x783228' - green: '0x17a262' - yellow: '0xb65619' - blue: '0x1b668f' - magenta: '0x614a73' - cyan: '0x186c60' - white: '0x63686d' - cursor: - text: '0xeeeeee' - cursor: '0x878787' - - # Normal colors diff --git a/.config/alacritty/themes b/.config/alacritty/themes index ade1c91..18db83a 160000 --- a/.config/alacritty/themes +++ b/.config/alacritty/themes @@ -1 +1 @@ -Subproject commit ade1c9114cf37d0239c3499b74c8196cf1e6aee4 +Subproject commit 18db83a37d58c453b3ae98aeda54edfa12b834ba diff --git a/.config/coc/extensions/package.json b/.config/coc/extensions/package.json index 1e922c7..0cf85bc 100644 --- a/.config/coc/extensions/package.json +++ b/.config/coc/extensions/package.json @@ -1,10 +1,18 @@ { "dependencies": { + "@yaegassy/coc-volar": ">=0.21.5", + "@yaegassy/coc-volar-tools": ">=0.1.4", "coc-css": ">=1.3.0", - "coc-json": ">=1.4.1", + "coc-json": ">=1.4.2", "coc-phpactor": ">=1.0.3", "coc-phpls": ">=2.2.2", - "coc-snippets": ">=3.0.8", - "coc-tsserver": ">=1.9.16" - } -} \ No newline at end of file + "coc-pyls": ">=1.0.6", + "coc-snippets": ">=3.0.14", + "coc-svelte": ">=0.4.2", + "coc-tsserver": ">=1.10.5", + "coc-vue": ">=0.8.1" + }, + "disabled": [], + "locked": [], + "lastUpdate": 1664650153382 + diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..bcccd12 --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1,306 @@ +[global] + + enable_posix_regex = true + + ### Geometry ### + + # dynamic width from 0 to 300 + # width = (0, 300) + # constant width of 300 + width = (100, 400) + + # The maximum height of a single notification, excluding the frame. + height = 300 + + # Offset from the origin + offset = 10x40 + + # Maximum number of notification (0 means no limit) + notification_limit = 10 + + ### Progress bar ### + + # Set the frame width of the progress bar + progress_bar_frame_width = 0 + + # Set the minimum width for the progress bar + progress_bar_min_width = 100 + + # Set the maximum width for the progress bar + progress_bar_max_width = 1000 + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). (X11 only) + transparency = 3 + + # Padding between text and icon. + text_icon_padding = 10 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 2 + + # Defines color of the frame around the notification window. + frame_color = "#282828" + + # Size of gap to display between notifications - requires a compositor. + # If value is greater than 0, separator_height will be ignored and a border + # of size frame_width will be drawn around each notification instead. + # Click events on gaps do not currently propagate to applications below. + gap_size = 6 + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = auto + + ### Text ### + + font = Montserrat 12 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + ### Icons ### + + # Recursive icon lookup. You can set a single theme, instead of having to + # define all lookup paths. + enable_recursive_icon_lookup = true + + # Set icon theme (only used for recursive icon lookup) + icon_theme = "Papirus-Dark, Adwaita" + # You can also set multiple icon themes, with the leftmost one being used first. + # icon_theme = "Adwaita, breeze" + + # Paths to default icons (only neccesary when not using recursive icon lookup) + # icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + + ### Misc/Advanced ### + + # dmenu path. + dmenu = "/usr/bin/dmenu -theme dmenu -p dunst:" + + # Browser for opening urls in context menu. + browser = /usr/bin/xdg-open + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 3 + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines list of actions for each mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: Invoke the action determined by the action_name rule. If there is no + # such action, open the context menu. + # * open_url: If the notification has exactly one url, open it. If there are multiple + # ones, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + # * context: Open context menu for the notification. + # * context_all: Open context menu for all notifications. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = do_action, close_current + mouse_middle_click = open_url, close_current + mouse_right_click = context + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#458588" + foreground = "#000000" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_normal] + background = "#98971a" + foreground = "#000000" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_critical] + background = "#cc241d" + foreground = "#ffffff" + frame_color = "#b31f19" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #default_icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# set_category +# timeout +# urgency +# icon_position +# skip_display +# history_ignore +# action_name +# word_wrap +# ellipsize +# alignment +# hide_text +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# skip_display = true + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..fb50a49 --- /dev/null +++ b/.config/fontconfig/fonts.conf @@ -0,0 +1,27 @@ + + + + + + IBM Plex + + + Font Awesome 6 Free + + + + + Montserrat + + + Font Awesome 6 Free + + + + Iosevka + + Iosevka + Font Awesome 6 Free + + + diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..992a562 --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -0,0 +1,22 @@ +[Settings] +gtk-application-prefer-dark-theme=false +gtk-button-images=1 +gtk-cursor-theme-name=breeze_cursors +gtk-cursor-theme-size=24 +gtk-decoration-layout=close,minimize,maximize:icon +gtk-enable-animations=true +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=1 +gtk-font-name=Iosevka Nerd Font, 10 +gtk-icon-theme-name=Papirus-Dark +gtk-menu-images=1 +gtk-primary-button-warps-slider=true +gtk-sound-theme-name=ocean +gtk-theme-name=Breeze-Dark +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ +gtk-xft-antialias=1 +gtk-xft-dpi=98304 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb diff --git a/.config/i3/conf.d/01-base.i3config b/.config/i3/conf.d/01-base.i3config index 43970d0..4746c1c 100644 --- a/.config/i3/conf.d/01-base.i3config +++ b/.config/i3/conf.d/01-base.i3config @@ -14,7 +14,7 @@ default_border pixel 0 workspace_auto_back_and_forth yes floating_modifier $mod -font pango: Montserrat 12 +font pango: Iosevka 12 exec --no-startup-id $HOME/.fehbg exec --no-startup-id nm-applet @@ -25,3 +25,4 @@ bindsym $mod+$alt+Control+c exec $HOME/.bin/i3-mkconfig && i3-msg reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+$alt+Control+r exec $HOME/.bin/i3-mkconfig && i3-msg restart + diff --git a/.config/i3/conf.d/applications.i3config b/.config/i3/conf.d/applications.i3config index 7061fe7..2f56706 100644 --- a/.config/i3/conf.d/applications.i3config +++ b/.config/i3/conf.d/applications.i3config @@ -2,15 +2,15 @@ # | Applications | # |--------------| -bindsym $mod+$alt+t exec /opt/Telegram/Telegram -bindsym $mod+$alt+b exec /bin/firefox +bindsym $mod+$alt+e exec --no-startup-id $term -e /bin/vifm +bindsym $mod+$alt+t exec /usr/bin/telegram-desktop +bindsym $mod+$alt+b exec /usr/bin/firefox-developer-edition bindsym $mod+$alt+m exec /usr/bin/thunderbird bindsym $mod+$alt+d exec /bin/discord -bindsym $mod+$alt+4 exec /bin/TogglDesktop -bindsym $mod+$alt+e exec --no-startup-id $term -e /bin/vifm bindsym $mod+$alt+p exec pavucontrol bindsym $mod+$alt+c exec $HOME/.bin/vscode -bindsym $mod+$alt+n exec nemo -bindsym $mod+$alt+z exec zoom +bindsym $mod+$alt+n exec dolphin +bindsym $mod+$alt+o exec /usr/bin/obsidian exec --no-startup-id kdeconnect-indicator + diff --git a/.config/i3/conf.d/bars.i3config b/.config/i3/conf.d/bars.i3config index d7affdc..88bf5b7 100644 --- a/.config/i3/conf.d/bars.i3config +++ b/.config/i3/conf.d/bars.i3config @@ -12,13 +12,13 @@ set $color-urgent_workspace #282828 #CC241D #282828 bar { id primary_bar - output primary - status_command i3status + output $primary tray_output primary tray_padding 6 px position top workspace_buttons yes strip_workspace_numbers yes + status_command i3status colors { background $color-background @@ -34,10 +34,10 @@ bar { bar { id secondary_bar - output nonprimary + output $nonprimary binding_mode_indicator no - position top tray_output none + position top workspace_buttons yes strip_workspace_name yes status_command i3status --config $HOME/.config/i3status/second.config @@ -52,4 +52,7 @@ bar { binding_mode $color-binding_mode urgent_workspace $color-binding_mode_indicator } + + bindsym button1 exec $HOME/.bin/logwheel } + diff --git a/.config/i3/conf.d/clients.i3config b/.config/i3/conf.d/clients.i3config index 1cc6c38..cfc1891 100644 --- a/.config/i3/conf.d/clients.i3config +++ b/.config/i3/conf.d/clients.i3config @@ -2,7 +2,7 @@ # | Clients | # |---------| -assign [class="^Thunderbird$"] โ†’ $ws9 +assign [class="^thunderbird$"] โ†’ $ws9 assign [class="^TelegramDesktop$"] โ†’ $ws3 assign [class="^discord$"] โ†’ $ws4 assign [class="^zoom$" instance="^zoom$"] โ†’ $ws5 @@ -12,3 +12,16 @@ for_window [window_role="task_dialog"] floating enable for_window [class="^zoom$"] floating enable +for_window [title="Desktop โ€” Plasma"] kill, floating enable, border none +for_window [class="plasmashell"] floating enable +for_window [class="Plasma"] floating enable, border none +for_window [title="plasma-desktop"] floating enable, border none +for_window [title="win7"] floating enable, border none +for_window [class="krunner"] floating enable, border none +for_window [class="Kmix"] floating enable, border none +for_window [class="Klipper"] floating enable, border none +for_window [class="Plasmoidviewer"] floating enable, border none +for_window [class="(?i)*nextcloud*"] floating disable +for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px +no_focus [class="plasmashell" window_type="notification"] + diff --git a/.config/i3/conf.d/layout.i3config b/.config/i3/conf.d/layout.i3config index ba62812..9d79359 100644 --- a/.config/i3/conf.d/layout.i3config +++ b/.config/i3/conf.d/layout.i3config @@ -25,14 +25,15 @@ bindsym $mod+f fullscreen toggle # Change container layout (stacked, tabbed, toggle split) bindsym $mod+o layout stacking # 59 = , -bindcode $mod+59 layout tabbed +# bindcode $mod+59 layout tabbed +bindsym $mod+t layout tabbed bindsym $mod+e layout toggle split # Toggle tiling / floating -bindsym $mod+Shift+space floating toggle +bindsym $mod+Shift+d floating toggle # Change focus between tiling / floating windows -bindsym $mod+space focus mode_toggle +bindsym $mod+d focus mode_toggle bindsym $mod+Up resize grow height 3 px or 3 ppt bindsym $mod+Right resize grow width 3 px or 3 ppt diff --git a/.config/i3/conf.d/screen-mode.i3config b/.config/i3/conf.d/screen-mode.i3config index 3cc099d..4d141e6 100644 --- a/.config/i3/conf.d/screen-mode.i3config +++ b/.config/i3/conf.d/screen-mode.i3config @@ -11,6 +11,7 @@ mode "$m_screen" { bindsym s exec --no-startup-id "xrandr --output HDMI-1 --same-as eDP-1" bindsym k exec --no-startup-id "xrandr --output HDMI-1 --above eDP-1" bindsym j exec --no-startup-id "xrandr --output HDMI-1 --below eDP-1" + bindsym t exec --no-startup-id "$HOME/.bin/change-primary-screen" bindsym Return mode "default" bindsym Escape mode "default" diff --git a/.config/i3/conf.d/shortcuts.i3config b/.config/i3/conf.d/shortcuts.i3config index 744611f..4d11c06 100644 --- a/.config/i3/conf.d/shortcuts.i3config +++ b/.config/i3/conf.d/shortcuts.i3config @@ -6,27 +6,30 @@ bindsym $mod+Return exec --no-startup-id $term # Launcher -bindsym $mod+d exec --no-startup-id rofi -show combi +bindsym $mod+space exec --no-startup-id rofi -show combi # Use amixer to adjust volume in PulseAudio. -bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 5%+ -bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 5%- -bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume alsa_output.pci-0000_03_00.6.analog-stereo +5% +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume alsa_output.pci-0000_03_00.6.analog-stereo -5% +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute alsa_output.pci-0000_03_00.6.analog-stereo toggle bindsym XF86AudioPlay exec --no-startup-id pgrep pragha && pragha --pause bindsym XF86AudioNext exec --no-startup-id pgrep pragha && pragha --next bindsym XF86AudioPrev exec --no-startup-id pgrep pragha && pragha --prev -bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id light -A 5% -bindsym Shift+XF86AudioLowerVolume exec --no-startup-id light -U 5% +# bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id light -A 5% +# bindsym Shift+XF86AudioLowerVolume exec --no-startup-id light -U 5% bindsym $mod+Shift+b exec --no-startup-id $HOME/.local/bin/alacritty-colorscheme -C $HOME/.config/alacritty/colors toggle bindsym $mod+q kill bindsym Print exec --no-startup-id $HOME/.bin/snap full +bindsym $mod+p exec --no-startup-id $HOME/.bin/snap full bindsym Shift+Print exec --no-startup-id $HOME/.bin/snap area +bindsym $mod+Shift+p exec --no-startup-id $HOME/.bin/snap area bindsym $mod+u [urgent=latest] focus bindsym $mod+period exec --no-startup-id splatmoji type bindsym $mod+Control+z exec --no-startup-id $HOME/.bin/change-primary-screen + diff --git a/.config/i3/conf.d/system-mode.i3config b/.config/i3/conf.d/system-mode.i3config index 0d2c44a..e64a11f 100644 --- a/.config/i3/conf.d/system-mode.i3config +++ b/.config/i3/conf.d/system-mode.i3config @@ -14,4 +14,5 @@ mode "$m_system" { } bindsym $mod+Control+0 mode "$m_system" +# bindsym $mod+Control+0 exec --no-startup-id "loginctl lock-session 2" diff --git a/.config/i3status/config b/.config/i3status/config index 6de164e..b4ed2b3 100644 --- a/.config/i3status/config +++ b/.config/i3status/config @@ -26,8 +26,8 @@ order += "volume master" order += "tztime local" wireless wlo1 { - format_up = "๏‰ญ %essid (%quality)" - format_down = "๏‰ญ" + format_up = "๏‡ซ %essid (%quality)" + format_down = "๏‡ซ " } ethernet _first_ { @@ -37,10 +37,10 @@ ethernet _first_ { battery 0 { format = "%status %percentage" - status_chr = "๏Š”" - status_bat = "๏Š•" - status_full = "๏Š–" - status_unk = "?" + status_chr = "๏‰ " + status_bat = "๏‰‚ " + status_full = "๏‰€ " + status_unk = "๏‰„ " path = "/sys/class/power_supply/BAT%d/uevent" low_threshold = 21 } @@ -60,12 +60,12 @@ memory { } tztime local { - format = "%d-%m-%Y ๏Ž” %H:%M" + format = "%d-%m-%Y ๏€— %H:%M" } volume master { - format = "๏Žก %volume" - format_muted = "๏Žข" + format = "๏€จ %volume" + format_muted = "๏šฉ " device = "default" mixer = "Master" mixer_idx = 0 diff --git a/.config/khotkeysrc b/.config/khotkeysrc index 6e4a736..bb5aed4 100644 --- a/.config/khotkeysrc +++ b/.config/khotkeysrc @@ -1,5 +1,5 @@ [$Version] -update_info=spectacle_shortcuts.upd:spectacle-migrate-shortcuts +update_info=spectacle_shortcuts.upd:spectacle-migrate-shortcuts,konsole_globalaccel.upd:konsole_globalaccel,konsole.upd:konsole_globalaccel [ColorEffects:Disabled] ChangeSelectionColor[$d] @@ -1053,7 +1053,7 @@ Comment=Simple_action TriggersCount=1 [Data_4_1Triggers0] -Key=Meta+D +Key=Meta+Space Type=SHORTCUT Uuid={6ca13963-abb1-4065-8570-a0f1b796df83} @@ -1079,7 +1079,7 @@ Comment=Simple_action TriggersCount=1 [Data_4_2Triggers0] -Key=Meta+. +Key= Type=SHORTCUT Uuid={9a3f02e2-af68-4751-9587-95baeeea0d27} @@ -1119,7 +1119,7 @@ Type=SIMPLE_ACTION_DATA ActionsCount=1 [Data_4_4Actions0] -CommandURL=firefox +CommandURL=firefox-developer-edition Type=COMMAND_URL [Data_4_4Conditions] @@ -1224,8 +1224,10 @@ ColorScheme[$d] ColorSchemeHash[$d] TerminalApplication[$d] TerminalService[$d] +UseSystemBell[$d] XftHintStyle[$d] XftSubPixel[$d] +accentColorFromWallpaper[$d] fixed[$d] font[$d] menuFont[$d] @@ -1265,10 +1267,15 @@ Show Speedbar[$d] Show hidden files[$d] Sort by[$d] Sort directories first[$d] +Sort hidden files last[$d] Sort reversed[$d] Speedbar Width[$d] View Style[$d] +[KScreen] +ScaleFactor[$d] +ScreenScaleFactors[$d] + [Main] AlreadyImported=defaults,kde32b1,konqueror_gestures_kde321,konsole Disabled=false diff --git a/.config/konsolerc b/.config/konsolerc index 35968de..f456904 100644 --- a/.config/konsolerc +++ b/.config/konsolerc @@ -6,7 +6,7 @@ eDP-1 HDMI-1 XPosition 1366x768=0 eDP-1 HDMI-1 YPosition 1366x768=26 [Desktop Entry] -DefaultProfile=Konsole dark.profile +DefaultProfile=Profile 1.profile [Favorite Profiles] Favorites=Yakuake.profile,Gifs.profile,Yakuake-Day.profile @@ -15,6 +15,9 @@ Favorites=Yakuake.profile,Gifs.profile,Yakuake-Day.profile scrollbackUseCacheLocation=true scrollbackUseSystemLocation=false +[General] +ConfigVersion=1 + [KFileDialog Settings] listViewIconSize=0 @@ -23,13 +26,22 @@ ShowMenuBarByDefault=false UseSingleInstance=true [MainWindow] +2 screens: Height=1053 +2 screens: Width=640 +2 screens: XPosition=1280 +2 screens: YPosition=27 +HDMI-1 eDP-1=HDMI-1 +HDMI-1 eDP-1 Height 1920x1080=740 +HDMI-1 eDP-1 Width 1920x1080=1366 +HDMI-1 eDP-1 XPosition 1920x1080=1643 +HDMI-1 eDP-1 YPosition 1920x1080=168 Height 1080=1051 Height 720=711 Height 768=740 Height 800=711 Height 900=871 MenuBar=Disabled -State=AAAA/wAAAAD9AAAAAAAABVYAAALOAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAIAAAAWAG0AYQBpAG4AVABvAG8AbABCAGEAcgAAAAAA/////wAAAAAAAAAAAAAAHABzAGUAcwBzAGkAbwBuAFQAbwBvAGwAYgBhAHIAAAAAAP////8AAAAAAAAAAA== +RestorePositionForNextInstance=false StatusBar=Disabled ToolBarsMovable=Disabled Width 1280=1366 @@ -48,4 +60,4 @@ eDP-1 XPosition 1366x768=0 eDP-1 YPosition 1366x768=50 [UiSettings] -ColorScheme=Default +ColorScheme= diff --git a/.config/nvim/coc-settings.json b/.config/nvim/coc-settings.json index 036f40b..9e45a39 100644 --- a/.config/nvim/coc-settings.json +++ b/.config/nvim/coc-settings.json @@ -1,7 +1,7 @@ { - "diagnostic.virtualText": true, + "diagnostic.virtualText": false, "diagnostic.virtualTextCurrentLineOnly": true, - "diagnostic.enable": false, + "diagnostic.enable": true, "phpls.path": "/home/hali/Documents/Playground/Php/Intelephense", "phpls.enable": true, "intelephense.files.exclude": [ @@ -15,15 +15,30 @@ "snippets.userSnippetsDirectory": "/home/hali/.vim/snippets-used", "snippets.loadFromExtensions": false, "snippets.extends": { - "blade": ["html"], - "liquid": ["markdown"], - "vimwiki": ["markdown"] + "blade": [ + "html" + ], + "liquid": [ + "markdown" + ], + "vimwiki": [ + "markdown" + ] }, "languageserver": {}, "npm.binPath": "yarn", "tsserver.watchOptions": { - "excludeDirectories": ["node_modules", "vendor"] + "excludeDirectories": [ + "node_modules", + "vendor" + ] }, "phpactor.enable": true, - "phpactor.path": "/home/hali/.config/composer/vendor/bin/phpactor" + "phpactor.path": "/home/hali/.config/composer/vendor/bin/phpactor", + "prettier.disableLanguages": [ + "vue" + ], + "svelte.enable-ts-plugin": true, + "sumneko-lua.enableNvimLuaDev": true, + "volar.formatting.printWidth": 80 } diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..c49a9fc --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,339 @@ +vim.cmd([[ + se runtimepath^=~/.vim runtimepath+=~/.vim/after + let &packpath=&runtimepath + source ~/.vimrc + + se mouse=c + + se completeopt=menu,menuone,noselect + + se guicursor=a:hor50-Cursor-blinkwait175-blinkoff150-blinkon175 +]]) + +local cmp = require("cmp") +local home = os.getenv("HOME") + +-- luasnip setup +local luasnip = require("luasnip") + +cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "path" }, + }, +}) + +require("luasnip.loaders.from_vscode").lazy_load() + +-- Set up lspconfig. +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +-- Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +local opts = { noremap = true, silent = true } +vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) +vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + -- Enable completion triggered by + -- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap = true, silent = true, buffer = bufnr } + vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts) + vim.keymap.set("n", "gh", vim.lsp.buf.hover, bufopts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts) + vim.keymap.set("n", "", vim.lsp.buf.signature_help, bufopts) + vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, bufopts) + vim.keymap.set("n", "ca", vim.lsp.buf.code_action, bufopts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts) + vim.keymap.set("n", "f", function() + vim.lsp.buf.format({ async = true }) + end, bufopts) +end + +local lsp_flags = { + -- This is the default in Nvim 0.7+ + debounce_text_changes = 150, +} + +local util = require("lspconfig.util") +local path = util.path +local node_modules_path = path.join(home, ".nvm", "versions", "node", "v20.11.0", "lib", "node_modules") +local vue_plugin_path = path.join(node_modules_path, "@vue", "typescript-plugin") + +require("lspconfig")["ts_ls"].setup({ + init_options = { + plugins = { + { + name = "@vue/typescript-plugin", + location = vue_plugin_path, + languages = { "javascript", "typescript", "vue" }, + }, + }, + }, + on_attach = on_attach, + flags = lsp_flags, + capabilities = capabilities, + filetypes = { + "javascript", + "typescript", + "vue", + }, +}) + +require("lspconfig")["volar"].setup({ + on_attach = on_attach, + capabilities = capabilities, + settings = { + vue = { + printWidth = 80, + } + }, + init_options = { + typescript = { + tsdk = path.join(home, "/.local/share/nvim/packages/astro-language-server/node_modules/typescript/lib/") + }, + }, +}) + +require("lspconfig")["cssls"].setup({ + on_attach = on_attach, + flags = lsp_flags, + capabilities = capabilities, +}) + +require("lspconfig")["astro"].setup({ + on_attach = on_attach, + flags = lsp_flags, + capabilities = capabilities, + init_options = { + typescript = { + tsdk = path.join(home, "/.local/share/nvim/packages/astro-language-server/node_modules/typescript/lib/") + }, + }, +}) + +require("lspconfig")["lua_ls"].setup({ + on_init = function(client) + local luaPath = client.workspace_folders[1].name + if not vim.loop.fs_stat(luaPath .. "/.luarc.json") and not vim.loop.fs_stat(luaPath .. "/.luarc.jsonc") then + client.config.settings = vim.tbl_deep_extend("force", client.config.settings, { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using + -- (most likely LuaJIT in the case of Neovim) + version = "LuaJIT", + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + -- "${3rd}/luv/library" + -- "${3rd}/busted/library", + }, + -- or pull in all of 'runtimepath'. NOTE: this is a lot slower + -- library = vim.api.nvim_get_runtime_file("", true) + }, + }, + }) + + client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) + end + return true + end, + on_attach = on_attach, + capabilities = capabilities, +}) + +require("lspconfig")["phpactor"].setup({ + on_attach = on_attach, + capabilities = capabilities, +}) + +require("lspconfig")["intelephense"].setup({ + on_attach = on_attach, + capabilities = capabilities, + cmd = { "intelephense", "--stdio" }, + init_options = { + globalStoragePath = util.path.join(home, ".intelephense"), + }, +}) + +require("lspconfig")["jsonls"].setup({ + on_attach = on_attach, + capabilities = capabilities, +}) + +require("lspconfig")["bashls"].setup({ + on_attach = on_attach, + capabilities = capabilities, +}) + +require("lspconfig")["clangd"].setup({ + on_attach = on_attach, + capabilities = capabilities, +}) + +-- local project_library_path = +-- "/home/hali/.local/share/nvim/packages/angular-language-server/node_modules/@angular/language-server" +-- local cmd = +-- { "ngserver", "--stdio", "--tsProbeLocations", project_library_path, "--ngProbeLocations", project_library_path } +-- +-- require("lspconfig")["angularls"].setup({ +-- on_attach = on_attach, +-- capabilities = capabilities, +-- cmd = cmd, +-- on_new_config = function(new_config, new_root_dir) +-- new_config.cmd = cmd +-- end, +-- }) +-- +local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t") +project_name = project_name:gsub("%W", "_") +local workspace_folder = vim.fn.expand("$HOME/.cache/jdtls/data/") .. project_name + +require("lspconfig")["jdtls"].setup({ + cmd = { + util.path.join(vim.fn.stdpath("data"), "bin", "jdtls"), + "-data", + workspace_folder, + }, + -- root_dir = vim.fs.dirname(vim.fs.find({ "gradlew", ".git", "mvnw" }, { upward = true })[1]), + on_attach = on_attach, + capabilities = capabilities, + settings = { + java = { + format = { + settings = { + -- Use Google Java style guidelines for formatting + -- To use, make sure to download the file from https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml + -- and place it in the ~/.local/share/eclipse directory + url = util.path.join(home, ".local", "share", "eclipse", "eclipse-java-google-style.xml"), + profile = "GoogleStyle", + }, + }, + }, + }, +}) + +require("lspconfig")["tailwindcss"].setup({ + on_attach = on_attach, + capabilities = capabilities, +}) + +require("prettier").setup({ + bin = "prettier", + filetypes = { + "css", + "graphql", + "html", + "javascript", + "javascriptreact", + "json", + "less", + "scss", + "typescript", + "typescriptreact", + "yaml", + }, + cli_options = { + print_width = 80, + semi = false, + shift_width = 2, + }, +}) + +require("nvls").setup({ + lilypond = { + options = { + pdf_viewer = 'zathura' + } + } +}) + +require("mason").setup({ + install_root_dir = vim.fn.stdpath("data"), + PATH = "prepend", + pip = { + install_args = {}, + }, + log_level = vim.log.levels.INFO, + max_concurrent_installers = 4, + github = { + download_url_template = "https://github.com/%s/releases/download/%s/%s", + }, + ui = { + check_outdated_packages_on_open = true, + border = "none", + icons = { + package_installed = "๐Ÿ’š", + package_pending = "โฏ", + package_uninstalled = "โค๏ธ", + }, + keymaps = { + -- Keymap to expand a package + toggle_package_expand = "", + -- Keymap to install the package under the current cursor position + install_package = "i", + -- Keymap to reinstall/update the package under the current cursor position + update_package = "u", + -- Keymap to check for new version for the package under the current cursor position + check_package_version = "c", + -- Keymap to update all installed packages + update_all_packages = "U", + -- Keymap to check which installed packages are outdated + check_outdated_packages = "C", + -- Keymap to uninstall a package + uninstall_package = "X", + -- Keymap to cancel a package installation + cancel_installation = "", + -- Keymap to apply language filter + apply_language_filter = "", + }, + }, +}) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index a80c0d0..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,5 +0,0 @@ -set runtimepath^=~/.vim runtimepath+=~/.vim/after -let &packpath=&runtimepath -source ~/.vimrc - -set guicursor=a:hor50-Cursor-blinkwait175-blinkoff150-blinkon175 diff --git a/.config/rofi/dmenu.rasi b/.config/rofi/dmenu.rasi new file mode 100644 index 0000000..de4553a --- /dev/null +++ b/.config/rofi/dmenu.rasi @@ -0,0 +1,47 @@ +/** + * ROFI Color theme + * User: Qball + * Copyright: Dave Davenport + */ + +* { + background-color: #282828; + border-color: #ebdbb2; + text-color: #ebdbb2; + font: "Iosevka 11"; +} +window { + anchor: north; + location: north; + width: 100%; + padding: 3px; + children: [ horibox ]; +} +horibox { + orientation: horizontal; + children: [ prompt, entry, listview ]; +} +listview { + layout: horizontal; + spacing: 6px; + lines: 100; +} +prompt { + margin: 0 6px 0 0; +} +entry { + expand: false; + width: 10em; +} +element { + padding: 0px 2px; +} +element selected { + background-color: #b8bb26; + text-color: #282828; +} + +element-text, element-icon { + background-color: inherit; + text-color: inherit; +} diff --git a/.config/vifm/colors b/.config/vifm/colors index 0bbf3de..a5ddebd 160000 --- a/.config/vifm/colors +++ b/.config/vifm/colors @@ -1 +1 @@ -Subproject commit 0bbf3de1ad44b92a55a654eeb68fd06c37a6cd70 +Subproject commit a5ddebd615dff1ae9bd7ad31b628dad6edf3c991 diff --git a/.config/xsettingsd/xsettingsd.conf b/.config/xsettingsd/xsettingsd.conf index 2fe5ec9..a6e0e47 100644 --- a/.config/xsettingsd/xsettingsd.conf +++ b/.config/xsettingsd/xsettingsd.conf @@ -1,11 +1,15 @@ +Net/ThemeName "Breeze" +Net/SoundThemeName "ocean" +Gdk/UnscaledDPI 98304 +Gdk/WindowScalingFactor 1 Gtk/EnableAnimations 1 Gtk/DecorationLayout "close,minimize,maximize:icon" -Gtk/PrimaryButtonWarpsSlider 0 +Gtk/PrimaryButtonWarpsSlider 1 Gtk/ToolbarStyle 3 Gtk/MenuImages 1 Gtk/ButtonImages 1 Gtk/CursorThemeSize 24 -Gtk/CursorThemeName "Breeze_Obsidian" -Net/IconThemeName "Papirus-Dark" -Gtk/FontName "Montserrat, 10" +Gtk/CursorThemeName "breeze_cursors" +Net/IconThemeName "breeze" +Gtk/FontName "Iosevka Nerd Font, 10" diff --git a/.ghc/ghci.conf b/.ghc/ghci.conf new file mode 100644 index 0000000..c5d58f2 --- /dev/null +++ b/.ghc/ghci.conf @@ -0,0 +1 @@ +:set prompt "ฮป: " diff --git a/.gitconfig b/.gitconfig index 5b9f747..fa0f02a 100644 --- a/.gitconfig +++ b/.gitconfig @@ -4,7 +4,7 @@ [user] email = halivelazquez@outlook.com name = Halรญ V. - signingKey = F328FC66 + signingKey = halivelazquez@outlook.com [core] autocrlf = input [pull] @@ -14,5 +14,13 @@ ff = no [credential] helper = /usr/lib/git-core/git-credential-libsecret + helper = + helper = /usr/bin/git-credential-manager [commit] gpgSign = true +[push] + autoSetupRemote = true +[maintenance] + repo = /home/hali/Documents/JW/outlines +[credential "https://dev.azure.com"] + useHttpPath = true diff --git a/.gitignore b/.gitignore index 2d23a67..46ff70c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ Pictures/ Videos/ wiki_list.vim +*.class diff --git a/.gitmodules b/.gitmodules index de7f871..12f5518 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,8 @@ -[submodule ".config/alacritty/themes"] +[submodule "alacritty-themes"] path = .config/alacritty/themes - url = https://github.com/eendroroy/alacritty-theme -[submodule ".config/vifm/colors"] + url = https://github.com/alacritty/alacritty-theme.git + branch = master +[submodule "vifm-colors"] path = .config/vifm/colors url = https://github.com/vifm/vifm-colors.git + branch = master diff --git a/.vim/ftplugin/html.vim b/.vim/ftplugin/html.vim index 7992b6f..86157d3 100644 --- a/.vim/ftplugin/html.vim +++ b/.vim/ftplugin/html.vim @@ -1 +1 @@ -nn :Prettier +nn :Prettier diff --git a/.vim/ftplugin/json.vim b/.vim/ftplugin/json.vim index ba76084..86157d3 100644 --- a/.vim/ftplugin/json.vim +++ b/.vim/ftplugin/json.vim @@ -1 +1 @@ -nn f :Prettier +nn :Prettier diff --git a/.vim/ftplugin/markdown.vim b/.vim/ftplugin/markdown.vim index fec722b..b16c4a3 100644 --- a/.vim/ftplugin/markdown.vim +++ b/.vim/ftplugin/markdown.vim @@ -1,5 +1,7 @@ -se cfu=emoji#complete -se et +setl cfu=emoji#complete +setl et +setl wrap +setl tw=80 nn f :Prettier -nn c :!pandoc --wrap=preserve -s -o %:r.pdf % +nn c :!pandoc --wrap=preserve -s -o "%:r.pdf" "%" diff --git a/.vim/ftplugin/php.vim b/.vim/ftplugin/php.vim index 09355fb..68869f4 100644 --- a/.vim/ftplugin/php.vim +++ b/.vim/ftplugin/php.vim @@ -4,6 +4,7 @@ setl tabstop=4 setl softtabstop=4 setl commentstring=//\ %s -nn :cal CocActionAsync('format') +" nn :cal CocActionAsync('format') +" nn f :cal CocActionAsync('format') " let @x="\n\n /* |----------------| */\n /* | Business logic | */\n /* |----------------| */" diff --git a/.vim/ftplugin/vue.vim b/.vim/ftplugin/vue.vim index 3797490..ab5bfd0 100644 --- a/.vim/ftplugin/vue.vim +++ b/.vim/ftplugin/vue.vim @@ -1,3 +1,4 @@ se sw=2 se ts=2 nn f :Prettier +nn :Prettier diff --git a/.vim/plugins.vim b/.vim/plugins.vim index b6f775b..23cd1fa 100644 --- a/.vim/plugins.vim +++ b/.vim/plugins.vim @@ -12,13 +12,29 @@ Plug 'vim-test/vim-test' Plug 'dhruvasagar/vim-table-mode' Plug 'bronson/vim-visual-star-search' Plug 'sheerun/vim-polyglot' -Plug 'neoclide/coc.nvim', { 'branch': 'release' } Plug 'mboughaba/i3config.vim' Plug 'junegunn/goyo.vim' Plug 'junegunn/limelight.vim' +Plug 'wuelnerdotexe/vim-astro' +Plug 'martineausimon/nvim-lilypond-suite' +" Plug 'rajasegar/vim-astro' if has('nvim') Plug 'Shougo/denite.nvim', { 'do': ':UpdateRemotePlugins' } + Plug 'neovim/nvim-lspconfig' + Plug 'williamboman/mason.nvim' + Plug 'hrsh7th/cmp-nvim-lsp' + Plug 'hrsh7th/cmp-buffer' + Plug 'hrsh7th/cmp-path' + Plug 'hrsh7th/cmp-cmdline' + Plug 'hrsh7th/nvim-cmp' + Plug 'nvim-lua/plenary.nvim' + Plug 'jose-elias-alvarez/null-ls.nvim' + Plug 'mfussenegger/nvim-jdtls' + Plug 'MunifTanjim/prettier.nvim' + Plug 'saadparwaiz1/cmp_luasnip' + Plug 'L3MON4D3/LuaSnip' + Plug 'rafamadriz/friendly-snippets' else Plug 'Shougo/denite.nvim' Plug 'roxma/nvim-yarp' @@ -33,15 +49,18 @@ Plug 'vim-airline/vim-airline' " Git Plug 'tpope/vim-fugitive' +Plug 'tpope/vim-rhubarb' +Plug 'shumphrey/fugitive-gitlab.vim' Plug 'mhinz/vim-signify' Plug 'junegunn/gv.vim' " Snippets -Plug 'honza/vim-snippets' +" Plug 'SirVer/ultisnips' +" Plug 'honza/vim-snippets' " Frontend Plug 'mattn/emmet-vim' -Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install --production' } +Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && npx --yes yarn install' } " Jekyll Plug 'parkr/vim-jekyll' @@ -52,6 +71,12 @@ Plug 'lervag/vimtex' " Themes Plug 'rafi/awesome-vim-colorschemes' +Plug 'artanikin/vim-synthwave84' + +Plug 'brenoprata10/nvim-highlight-colors' + +" PHP +" Plug 'phpactor/phpactor', { 'for': 'php', 'tag': '*', 'do': 'composer install --no-dev -o' } cal plug#end() @@ -59,7 +84,7 @@ cal plug#end() " | Closetag | " |----------| let g:closetag_filenames = '*.html,*.php,*.jsx' -let g:closetag_filetypes = 'html,blade,vue,markdown,liquid' +let g:closetag_filetypes = 'html,blade,vue,markdown,liquid,astro' let g:closetag_xhtml_filenames = '*.xhtml,*.jsx' @@ -118,21 +143,6 @@ let g:jekyll_post_template=[ \ ] -" |-----| -" | Php | -" |-----| -" no u :PhpactorImportClass -" no mm :PhpactorContextMenu -" no nn :PhpactorNavigate -" no o :PhpactorGotoDefinition -" no K :PhpactorHover -" no tt :PhpactorTransform -" no cc :PhpactorClassNew -" no ee :PhpactorExtractExpression(v:false) -" vn ee :PhpactorExtractExpression(v:true) -" vn em :PhpactorExtractMethod - - " |-----| " | C++ | " |-----| @@ -159,52 +169,6 @@ nn t :TestLast nn t :TestVisit -" |-----| -" | LSP | -" |-----| - -nn vd :lua vim.lsp.buf.definition() -nn vi :lua vim.lsp.buf.implementation() -nn vsh :lua vim.lsp.buf.signature_help() -nn vrr :lua vim.lsp.buf.references() -nn vrn :lua vim.lsp.buf.rename() -nn vh :lua vim.lsp.buf.hover() -nn vca :lua vim.lsp.buf.code_action() -nn vsd :lua vim.lsp.diagnostic.show_line_diagnostics(); vim.lsp.util.show_line_diagnostics() -nn vn :lua vim.lsp.diagnostic.goto_next() - - -" |-----| -" | Coc | -" |-----| - -ino pumvisible() ? "\" : "\" -ino pumvisible() ? "\" : "\" - -ino pumvisible() ? coc#_select_confirm() : "\" -ino pumvisible() ? coc#_select_confirm() : "\" - -let g:coc_suggest_disable = 1 -let g:coc_snippet_next = '' -let g:coc_snippet_prev = '' - -nm gd (coc-definition) -nm gy (coc-type-definition) -nm gi (coc-implementation) -nm gr (coc-references) -nm grc (coc-rename-current) -nm gf (coc-fix-current) -com! -nargs=0 Format :cal CocActionAsync('format') -nn es :CocCommand snippets.editSnippets -nn f :cal CocActionAsync('format') -ino coc#refresh() -nn u :CocAction - -let g:coc_sources_disable_map = { - \ 'python': ['tag'] - \ } - - " |------| " | Test | " |------| @@ -233,7 +197,7 @@ let g:vimtex_view_method = 'zathura' " |--------| if has('nvim') cal denite#custom#var('file/rec', 'command', [ - \ 'rg', '--files', '--hidden', + \ 'rg', '--files', '--hidden' \ ]) autocmd FileType denite cal s:denite_my_settings() @@ -258,6 +222,7 @@ if has('nvim') autocmd FileType denite-filter cal s:denite_filter_my_settings() fu! s:denite_filter_my_settings() abort + lua require('cmp').setup.buffer { enabled = false } im (denite_filter_update) ino denite#do_map('do_action') ino denite#do_map('do_action', 'tabopen') @@ -288,4 +253,6 @@ if has('nvim') nn :Denite buffer file/rec endif +let g:astro_typescript = 'enable' + colo gruvbox diff --git a/.vimrc b/.vimrc index 7230b83..e595e5e 100644 --- a/.vimrc +++ b/.vimrc @@ -32,6 +32,7 @@ se inccommand=split se undodir=$HOME/.vim/undodir se spl=es_mx se nuw=3 +se nrformats+=hex " Save position and folds on exit, and load them on enter se viewoptions=folds,cursor @@ -70,6 +71,7 @@ vn p "+p vn J :m '>+1gv=gv vn K :m '<-2gv=gv +ino ino `<< ยซ ino `>> ยป ino @@ -96,5 +98,6 @@ so $HOME/.vim/functions.vim " Has initial background function nnoremap :set spell! inoremap :set spell! tnoremap +command! BufOnly silent! execute "%bd|e#|bd#" cal InitialBackground("10:00", "19:00") diff --git a/.wallpapers/.gitkeep b/.wallpapers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.xinitrc b/.xinitrc index 5401085..0bb8f4a 100644 --- a/.xinitrc +++ b/.xinitrc @@ -2,12 +2,17 @@ xrdb -merge ~/.Xresources picom -b -/home/hali/.fehbg & +systemctl --user import-environment DISPLAY XAUTHORITY + +$HOME/.fehbg & /usr/bin/blueman-applet & -/usr/lib/kdeconnectd & +$HOME/.bin/set-last-outputs -eval $(gnome-keyring-daemon --start) -export SSH_AUTH_SOCK +# eval $(kwalletd5) +# eval $(gnome-keyring-daemon --start) +# export SSH_AUTH_SOCK +/usr/lib/pam_kwallet_init & +echo "Hola hehehe" > /tmp/saludo export DESKTOP_SESSION='i3' exec i3 > $HOME/.cache/i3out 2> $HOME/.cache/i3err diff --git a/.zsh_aliases b/.zsh_aliases index 9139438..1a9cacb 100644 --- a/.zsh_aliases +++ b/.zsh_aliases @@ -1,14 +1,11 @@ -alias ..="cd .." -alias .="cd ." alias la="ls -A" alias ll="ls -lh" alias dof="/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME" -alias goBlog="cd $BLOGPATH" -alias goJW="cd $JWPATH" -alias goCode="cd $CODEPATH" -alias goWork="cd $WORKPATH" -alias goDotfiles="cd $HOME/.dotfiles" +alias blog="cd $BLOGPATH" +alias jw="cd $JWPATH" +alias work="cd $WORKPATH" +alias dotfiles="cd $HOME/.dotfiles" alias mv="mv -i" alias n="nvim" @@ -40,15 +37,12 @@ alias sail="[ -f sail ] && bash sail || bash vendor/bin/sail" alias queue="sail artisan queue:work" alias serve="WWWUSER=$(id -u) docker-compose up" alias tinker="sail artisan tinker" -# alias tinker="docker exec -it alpha-laravel.test-1 php artisan tinker" - -alias sym="bin/console" alias ypr="yarn prod" alias yw="yarn watch" alias yyw="yarn && yarn watch" - -alias bserve="browser-sync start -s -f . --no-notify\ - --host $(hostname -i | cut -d' ' -f1)" +alias yyd="yarn && yarn dev" +alias yd="yarn dev" alias phpunit="./vendor/bin/phpunit" + diff --git a/.zshrc b/.zshrc index 2d6fde4..c11361e 100644 --- a/.zshrc +++ b/.zshrc @@ -3,6 +3,7 @@ fpath=(~/.zsh $fpath) export XDG_CONFIG_HOME="$HOME/.config" +export GCM_CREDENTIAL_STORE=secretservice export EDITOR="nvim" export TEXMFHOME="/home/hali/.texmf" @@ -14,19 +15,20 @@ export GOPATH="/home/hali/.go" export MNTPATH="/run/media/hali/" export GPG_TTY=$(tty) -export CODEPATH="$HOME/Documents/Code" -export BLOGPATH="$HOME/Documents/Code/halivert.dev" +export CODEPATH="$HOME/Documents/code" +export BLOGPATH="$HOME/Documents/code/halivert.dev" export WORKPATH="$HOME/Documents/Projects" export JWPATH="$HOME/Documents/JW" -PATH="$PATH:/home/hali/.bin" -PATH="$PATH:/home/hali/.config/composer/vendor/bin" -PATH="$PATH:/home/hali/.local/share/gem/ruby/3.0.0/bin" -PATH="$PATH:/home/hali/.yarn/bin" -PATH="$PATH:/home/hali/.npm/bin" -PATH="$PATH:/home/hali/.local/bin" -PATH="$PATH:/home/hali/.go/bin" -PATH="$PATH:/home/hali/.cargo/bin" +PATH="$PATH:$HOME/.bin" +PATH="$PATH:$HOME/.config/composer/vendor/bin" +PATH="$PATH:$HOME/.local/share/gem/ruby/3.3.0/bin" +PATH="$PATH:$HOME/.yarn/bin" +PATH="$PATH:$HOME/.npm/bin" +PATH="$PATH:$HOME/.local/bin" +PATH="$PATH:$HOME/.go/bin" +PATH="$PATH:$HOME/.cargo/bin" +PATH="$PATH:$HOME/.local/share/nvim/bin" # Prompt only last 3 directories from PWD function min_path_prompt () { @@ -50,25 +52,25 @@ _Tp="$(cat /proc/$(echo $$)/stat | cut -d \ -f 4)" _Tn="$(ps -f -p $_Tp | tail -1 | sed 's/^.* //')" _Tx="$(basename '/'$_Tn)" -if [[ i3-msg ]]; then - _DirNum="dir" -else +if pgrep -x "i3" > /dev/null; then _DirNum="$(i3-msg -t get_workspaces | jq '.[] | select(.focused==true).num' -r)" +else + _DirNum="dir" fi _CurrentDirFile="$HOME/.currentDirs/$_DirNum" +mkdir "$HOME/.currentDirs" > /dev/null 2>&1 unset _Tp _Tn _DirNum if [ $_Tx = "alacritty" ] || [ $_Tx = "konsole" ]; then - alias cd=changeDir; - - changeDir() { - \cd $1; + save_current_dir() { pwd > "$_CurrentDirFile" } if [ -e $_CurrentDirFile ]; then cd "$(cat $_CurrentDirFile)" fi + + chpwd_functions=( save_current_dir ) fi source ~/.zsh_aliases @@ -132,3 +134,12 @@ bindkey "^e" edit-command-line stty -ixon source /usr/share/nvm/init-nvm.sh + +# pnpm +export PNPM_HOME="$HOME/.local/share/pnpm" +export PATH="$PNPM_HOME:$PATH" +# pnpm end + + +# Load Angular CLI autocompletion. +# source <(ng completion script)