update
This commit is contained in:
@@ -15,6 +15,16 @@ language-servers = ["ruff"]
|
|||||||
name = "rust"
|
name = "rust"
|
||||||
formatter = { command = "rustfmt" }
|
formatter = { command = "rustfmt" }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "json"
|
||||||
|
auto-format = false
|
||||||
|
formatter = { command = "prettier", args = ["--parser", "json"] }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "yaml"
|
||||||
|
auto-format = false
|
||||||
|
formatter = { command = "prettier", args = ["--parser", "yaml"] }
|
||||||
|
|
||||||
[language-server.ruff]
|
[language-server.ruff]
|
||||||
command = "ruff"
|
command = "ruff"
|
||||||
args = ["server"]
|
args = ["server"]
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ spawn-at-startup "sunshine"
|
|||||||
// Idle
|
// Idle
|
||||||
spawn-at-startup "hypridle"
|
spawn-at-startup "hypridle"
|
||||||
|
|
||||||
// QuickShell
|
// Desktop
|
||||||
spawn-at-startup "quickshell"
|
spawn-at-startup "quickshell"
|
||||||
|
spawn-at-startup "parra" "daemon"
|
||||||
|
|
||||||
// Vicinae
|
// Vicinae
|
||||||
spawn-at-startup "vicinae" "server"
|
spawn-at-startup "vicinae" "server"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
@define-color insensitive_unfocused_fg_color_breeze #999fb9;
|
@define-color insensitive_unfocused_fg_color_breeze #999fb9;
|
||||||
@define-color insensitive_unfocused_selected_bg_color_breeze #1a1a28;
|
@define-color insensitive_unfocused_selected_bg_color_breeze #1a1a28;
|
||||||
@define-color insensitive_unfocused_selected_fg_color_breeze #999fb9;
|
@define-color insensitive_unfocused_selected_fg_color_breeze #999fb9;
|
||||||
@define-color link_color_breeze #f5c2e7;
|
@define-color link_color_breeze #89b4fa;
|
||||||
@define-color link_visited_color_breeze #cba6f7;
|
@define-color link_visited_color_breeze #cba6f7;
|
||||||
@define-color success_color_backdrop_breeze #728396;
|
@define-color success_color_backdrop_breeze #728396;
|
||||||
@define-color success_color_breeze #a6e3a1;
|
@define-color success_color_breeze #a6e3a1;
|
||||||
@@ -27,17 +27,17 @@
|
|||||||
@define-color theme_button_background_backdrop_insensitive_breeze #2b2c3d;
|
@define-color theme_button_background_backdrop_insensitive_breeze #2b2c3d;
|
||||||
@define-color theme_button_background_insensitive_breeze #2b2c3d;
|
@define-color theme_button_background_insensitive_breeze #2b2c3d;
|
||||||
@define-color theme_button_background_normal_breeze #313244;
|
@define-color theme_button_background_normal_breeze #313244;
|
||||||
@define-color theme_button_decoration_focus_backdrop_breeze #847d96;
|
@define-color theme_button_decoration_focus_backdrop_breeze #6773a7;
|
||||||
@define-color theme_button_decoration_focus_backdrop_insensitive_breeze #b591b0;
|
@define-color theme_button_decoration_focus_backdrop_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_focus_breeze #f5c2e7;
|
@define-color theme_button_decoration_focus_breeze #89b4fa;
|
||||||
@define-color theme_button_decoration_focus_insensitive_breeze #b591b0;
|
@define-color theme_button_decoration_focus_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_hover_backdrop_breeze #33344c;
|
@define-color theme_button_decoration_hover_backdrop_breeze #6773a7;
|
||||||
@define-color theme_button_decoration_hover_backdrop_insensitive_breeze #393b4d;
|
@define-color theme_button_decoration_hover_backdrop_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_hover_breeze #45475a;
|
@define-color theme_button_decoration_hover_breeze #89b4fa;
|
||||||
@define-color theme_button_decoration_hover_insensitive_breeze #393b4d;
|
@define-color theme_button_decoration_hover_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_foreground_active_backdrop_breeze #1e1e2e;
|
@define-color theme_button_foreground_active_backdrop_breeze #1e1e2e;
|
||||||
@define-color theme_button_foreground_active_backdrop_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_active_backdrop_insensitive_breeze #999fb9;
|
||||||
@define-color theme_button_foreground_active_breeze #11111b;
|
@define-color theme_button_foreground_active_breeze #000000;
|
||||||
@define-color theme_button_foreground_active_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_active_insensitive_breeze #999fb9;
|
||||||
@define-color theme_button_foreground_backdrop_breeze #808194;
|
@define-color theme_button_foreground_backdrop_breeze #808194;
|
||||||
@define-color theme_button_foreground_backdrop_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_backdrop_insensitive_breeze #999fb9;
|
||||||
@@ -51,9 +51,9 @@
|
|||||||
@define-color theme_header_foreground_breeze #cdd6f4;
|
@define-color theme_header_foreground_breeze #cdd6f4;
|
||||||
@define-color theme_header_foreground_insensitive_backdrop_breeze #808194;
|
@define-color theme_header_foreground_insensitive_backdrop_breeze #808194;
|
||||||
@define-color theme_header_foreground_insensitive_breeze #808194;
|
@define-color theme_header_foreground_insensitive_breeze #808194;
|
||||||
@define-color theme_hovering_selected_bg_color_breeze #45475a;
|
@define-color theme_hovering_selected_bg_color_breeze #89b4fa;
|
||||||
@define-color theme_selected_bg_color_breeze #f5c2e7;
|
@define-color theme_selected_bg_color_breeze #6887bc;
|
||||||
@define-color theme_selected_fg_color_breeze #11111b;
|
@define-color theme_selected_fg_color_breeze #000000;
|
||||||
@define-color theme_text_color_breeze #cdd6f4;
|
@define-color theme_text_color_breeze #cdd6f4;
|
||||||
@define-color theme_titlebar_background_backdrop_breeze #1e1e2e;
|
@define-color theme_titlebar_background_backdrop_breeze #1e1e2e;
|
||||||
@define-color theme_titlebar_background_breeze #181825;
|
@define-color theme_titlebar_background_breeze #181825;
|
||||||
@@ -65,14 +65,14 @@
|
|||||||
@define-color theme_unfocused_base_color_breeze #1e1e2e;
|
@define-color theme_unfocused_base_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_bg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_bg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_fg_color_breeze #808194;
|
@define-color theme_unfocused_fg_color_breeze #808194;
|
||||||
@define-color theme_unfocused_selected_bg_color_alt_breeze #847d96;
|
@define-color theme_unfocused_selected_bg_color_alt_breeze #555f8b;
|
||||||
@define-color theme_unfocused_selected_bg_color_breeze #847d96;
|
@define-color theme_unfocused_selected_bg_color_breeze #555f8b;
|
||||||
@define-color theme_unfocused_selected_fg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_selected_fg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_text_color_breeze #808194;
|
@define-color theme_unfocused_text_color_breeze #808194;
|
||||||
@define-color theme_unfocused_view_bg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_view_bg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_view_text_color_breeze #999fb9;
|
@define-color theme_unfocused_view_text_color_breeze #999fb9;
|
||||||
@define-color theme_view_active_decoration_color_breeze #45475a;
|
@define-color theme_view_active_decoration_color_breeze #89b4fa;
|
||||||
@define-color theme_view_hover_decoration_color_breeze #45475a;
|
@define-color theme_view_hover_decoration_color_breeze #89b4fa;
|
||||||
@define-color tooltip_background_breeze #1e1e2e;
|
@define-color tooltip_background_breeze #1e1e2e;
|
||||||
@define-color tooltip_border_breeze #414356;
|
@define-color tooltip_border_breeze #414356;
|
||||||
@define-color tooltip_text_breeze #cdd6f4;
|
@define-color tooltip_text_breeze #cdd6f4;
|
||||||
|
|||||||
@@ -1,17 +1,26 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
gtk-application-prefer-dark-theme=true
|
||||||
gtk-icon-theme-name=Papirus
|
gtk-button-images=true
|
||||||
gtk-font-name=Sarasa UI SC 10
|
gtk-cursor-blink=true
|
||||||
|
gtk-cursor-blink-time=1000
|
||||||
gtk-cursor-theme-name=Bibata-Modern-Ice
|
gtk-cursor-theme-name=Bibata-Modern-Ice
|
||||||
gtk-cursor-theme-size=24
|
gtk-cursor-theme-size=24
|
||||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
gtk-decoration-layout=icon:minimize,maximize,close
|
||||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
gtk-enable-animations=true
|
||||||
gtk-button-images=0
|
|
||||||
gtk-menu-images=0
|
|
||||||
gtk-enable-event-sounds=1
|
gtk-enable-event-sounds=1
|
||||||
gtk-enable-input-feedback-sounds=0
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-font-name=Sarasa UI SC, 10
|
||||||
|
gtk-icon-theme-name=Papirus
|
||||||
|
gtk-menu-images=true
|
||||||
|
gtk-modules=colorreload-gtk-module:appmenu-gtk-module
|
||||||
|
gtk-primary-button-warps-slider=true
|
||||||
|
gtk-shell-shows-menubar=1
|
||||||
|
gtk-sound-theme-name=ocean
|
||||||
|
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-toolbar-style=3
|
||||||
gtk-xft-antialias=1
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-dpi=122880
|
||||||
gtk-xft-hinting=1
|
gtk-xft-hinting=1
|
||||||
gtk-xft-hintstyle=hintslight
|
gtk-xft-hintstyle=hintslight
|
||||||
gtk-xft-rgba=rgb
|
gtk-xft-rgba=rgb
|
||||||
gtk-application-prefer-dark-theme=1
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
@define-color insensitive_unfocused_fg_color_breeze #999fb9;
|
@define-color insensitive_unfocused_fg_color_breeze #999fb9;
|
||||||
@define-color insensitive_unfocused_selected_bg_color_breeze #1a1a28;
|
@define-color insensitive_unfocused_selected_bg_color_breeze #1a1a28;
|
||||||
@define-color insensitive_unfocused_selected_fg_color_breeze #999fb9;
|
@define-color insensitive_unfocused_selected_fg_color_breeze #999fb9;
|
||||||
@define-color link_color_breeze #f5c2e7;
|
@define-color link_color_breeze #89b4fa;
|
||||||
@define-color link_visited_color_breeze #cba6f7;
|
@define-color link_visited_color_breeze #cba6f7;
|
||||||
@define-color success_color_backdrop_breeze #728396;
|
@define-color success_color_backdrop_breeze #728396;
|
||||||
@define-color success_color_breeze #a6e3a1;
|
@define-color success_color_breeze #a6e3a1;
|
||||||
@@ -27,17 +27,17 @@
|
|||||||
@define-color theme_button_background_backdrop_insensitive_breeze #2b2c3d;
|
@define-color theme_button_background_backdrop_insensitive_breeze #2b2c3d;
|
||||||
@define-color theme_button_background_insensitive_breeze #2b2c3d;
|
@define-color theme_button_background_insensitive_breeze #2b2c3d;
|
||||||
@define-color theme_button_background_normal_breeze #313244;
|
@define-color theme_button_background_normal_breeze #313244;
|
||||||
@define-color theme_button_decoration_focus_backdrop_breeze #847d96;
|
@define-color theme_button_decoration_focus_backdrop_breeze #6773a7;
|
||||||
@define-color theme_button_decoration_focus_backdrop_insensitive_breeze #b591b0;
|
@define-color theme_button_decoration_focus_backdrop_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_focus_breeze #f5c2e7;
|
@define-color theme_button_decoration_focus_breeze #89b4fa;
|
||||||
@define-color theme_button_decoration_focus_insensitive_breeze #b591b0;
|
@define-color theme_button_decoration_focus_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_hover_backdrop_breeze #33344c;
|
@define-color theme_button_decoration_hover_backdrop_breeze #6773a7;
|
||||||
@define-color theme_button_decoration_hover_backdrop_insensitive_breeze #393b4d;
|
@define-color theme_button_decoration_hover_backdrop_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_decoration_hover_breeze #45475a;
|
@define-color theme_button_decoration_hover_breeze #89b4fa;
|
||||||
@define-color theme_button_decoration_hover_insensitive_breeze #393b4d;
|
@define-color theme_button_decoration_hover_insensitive_breeze #6987bd;
|
||||||
@define-color theme_button_foreground_active_backdrop_breeze #1e1e2e;
|
@define-color theme_button_foreground_active_backdrop_breeze #1e1e2e;
|
||||||
@define-color theme_button_foreground_active_backdrop_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_active_backdrop_insensitive_breeze #999fb9;
|
||||||
@define-color theme_button_foreground_active_breeze #11111b;
|
@define-color theme_button_foreground_active_breeze #000000;
|
||||||
@define-color theme_button_foreground_active_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_active_insensitive_breeze #999fb9;
|
||||||
@define-color theme_button_foreground_backdrop_breeze #808194;
|
@define-color theme_button_foreground_backdrop_breeze #808194;
|
||||||
@define-color theme_button_foreground_backdrop_insensitive_breeze #999fb9;
|
@define-color theme_button_foreground_backdrop_insensitive_breeze #999fb9;
|
||||||
@@ -51,9 +51,9 @@
|
|||||||
@define-color theme_header_foreground_breeze #cdd6f4;
|
@define-color theme_header_foreground_breeze #cdd6f4;
|
||||||
@define-color theme_header_foreground_insensitive_backdrop_breeze #808194;
|
@define-color theme_header_foreground_insensitive_backdrop_breeze #808194;
|
||||||
@define-color theme_header_foreground_insensitive_breeze #808194;
|
@define-color theme_header_foreground_insensitive_breeze #808194;
|
||||||
@define-color theme_hovering_selected_bg_color_breeze #45475a;
|
@define-color theme_hovering_selected_bg_color_breeze #89b4fa;
|
||||||
@define-color theme_selected_bg_color_breeze #f5c2e7;
|
@define-color theme_selected_bg_color_breeze #6887bc;
|
||||||
@define-color theme_selected_fg_color_breeze #11111b;
|
@define-color theme_selected_fg_color_breeze #000000;
|
||||||
@define-color theme_text_color_breeze #cdd6f4;
|
@define-color theme_text_color_breeze #cdd6f4;
|
||||||
@define-color theme_titlebar_background_backdrop_breeze #1e1e2e;
|
@define-color theme_titlebar_background_backdrop_breeze #1e1e2e;
|
||||||
@define-color theme_titlebar_background_breeze #181825;
|
@define-color theme_titlebar_background_breeze #181825;
|
||||||
@@ -65,14 +65,14 @@
|
|||||||
@define-color theme_unfocused_base_color_breeze #1e1e2e;
|
@define-color theme_unfocused_base_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_bg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_bg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_fg_color_breeze #808194;
|
@define-color theme_unfocused_fg_color_breeze #808194;
|
||||||
@define-color theme_unfocused_selected_bg_color_alt_breeze #847d96;
|
@define-color theme_unfocused_selected_bg_color_alt_breeze #555f8b;
|
||||||
@define-color theme_unfocused_selected_bg_color_breeze #847d96;
|
@define-color theme_unfocused_selected_bg_color_breeze #555f8b;
|
||||||
@define-color theme_unfocused_selected_fg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_selected_fg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_text_color_breeze #808194;
|
@define-color theme_unfocused_text_color_breeze #808194;
|
||||||
@define-color theme_unfocused_view_bg_color_breeze #1e1e2e;
|
@define-color theme_unfocused_view_bg_color_breeze #1e1e2e;
|
||||||
@define-color theme_unfocused_view_text_color_breeze #999fb9;
|
@define-color theme_unfocused_view_text_color_breeze #999fb9;
|
||||||
@define-color theme_view_active_decoration_color_breeze #45475a;
|
@define-color theme_view_active_decoration_color_breeze #89b4fa;
|
||||||
@define-color theme_view_hover_decoration_color_breeze #45475a;
|
@define-color theme_view_hover_decoration_color_breeze #89b4fa;
|
||||||
@define-color tooltip_background_breeze #1e1e2e;
|
@define-color tooltip_background_breeze #1e1e2e;
|
||||||
@define-color tooltip_border_breeze #414356;
|
@define-color tooltip_border_breeze #414356;
|
||||||
@define-color tooltip_text_breeze #cdd6f4;
|
@define-color tooltip_text_breeze #cdd6f4;
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
gtk-application-prefer-dark-theme=true
|
||||||
gtk-icon-theme-name=Papirus
|
gtk-cursor-blink=true
|
||||||
gtk-font-name=Sarasa UI SC 10
|
gtk-cursor-blink-time=1000
|
||||||
gtk-cursor-theme-name=Bibata-Modern-Ice
|
gtk-cursor-theme-name=Bibata-Modern-Ice
|
||||||
gtk-cursor-theme-size=24
|
gtk-cursor-theme-size=24
|
||||||
gtk-application-prefer-dark-theme=1
|
gtk-decoration-layout=icon:minimize,maximize,close
|
||||||
|
gtk-enable-animations=true
|
||||||
|
gtk-font-name=Sarasa UI SC, 10
|
||||||
|
gtk-icon-theme-name=Papirus
|
||||||
|
gtk-primary-button-warps-slider=true
|
||||||
|
gtk-sound-theme-name=ocean
|
||||||
|
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
||||||
|
gtk-xft-dpi=122880
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ ShellRoot {
|
|||||||
id: notification
|
id: notification
|
||||||
}
|
}
|
||||||
|
|
||||||
Background {
|
// Background {
|
||||||
id: background
|
// id: background
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/hint/bash
|
||||||
|
|
||||||
# Description:
|
# Description:
|
||||||
# Select which GPU to use for rendering by Hyprland and Niri.
|
# Select which GPU to use for rendering by Hyprland and Niri.
|
||||||
@@ -12,8 +12,11 @@ niri_config_file="$HOME/.config/niri/config/misc.kdl"
|
|||||||
prefer_order=(nvidia intel)
|
prefer_order=(nvidia intel)
|
||||||
|
|
||||||
# Get vendor and path of each GPU
|
# Get vendor and path of each GPU
|
||||||
default_card_path="$(find /dev/dri/card* 2>/dev/null | head -n 1)"
|
# NOTE: use 'find' instead of globs. This file is sourced by both bash and zsh,
|
||||||
default_render_path="$(find /dev/dri/renderD* 2>/dev/null | head -n 1)"
|
# and zsh's NOMATCH aborts the rest of the file on an unmatched glob
|
||||||
|
# (e.g. a machine with no /dev/dri/by-path), leaving nothing exported.
|
||||||
|
default_card_path="$(find /dev/dri -maxdepth 1 -name 'card*' 2>/dev/null | sort | head -n 1)"
|
||||||
|
default_render_path="$(find /dev/dri -maxdepth 1 -name 'renderD*' 2>/dev/null | sort | head -n 1)"
|
||||||
[[ -z "$default_card_path" ]] && default_card_path="/dev/dri/card0"
|
[[ -z "$default_card_path" ]] && default_card_path="/dev/dri/card0"
|
||||||
[[ -z "$default_render_path" ]] && default_render_path="/dev/dri/renderD128"
|
[[ -z "$default_render_path" ]] && default_render_path="/dev/dri/renderD128"
|
||||||
intel_card_path=""
|
intel_card_path=""
|
||||||
@@ -23,7 +26,7 @@ intel_render_path=""
|
|||||||
nvidia_render_path=""
|
nvidia_render_path=""
|
||||||
amd_render_path=""
|
amd_render_path=""
|
||||||
|
|
||||||
for link in /dev/dri/by-path/*-card; do
|
for link in $(find /dev/dri/by-path -maxdepth 1 -name '*-card' 2>/dev/null | sort); do
|
||||||
[[ -e "$link" ]] || continue
|
[[ -e "$link" ]] || continue
|
||||||
card="$(readlink -f "$link")"
|
card="$(readlink -f "$link")"
|
||||||
vfile="/sys/class/drm/$(basename "$card")/device/vendor"
|
vfile="/sys/class/drm/$(basename "$card")/device/vendor"
|
||||||
@@ -36,7 +39,7 @@ for link in /dev/dri/by-path/*-card; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
for link in /dev/dri/by-path/*-render; do
|
for link in $(find /dev/dri/by-path -maxdepth 1 -name '*-render' 2>/dev/null | sort); do
|
||||||
[[ -e "$link" ]] || continue
|
[[ -e "$link" ]] || continue
|
||||||
render="$(readlink -f "$link")"
|
render="$(readlink -f "$link")"
|
||||||
vfile="/sys/class/drm/$(basename "$render")/device/vendor"
|
vfile="/sys/class/drm/$(basename "$render")/device/vendor"
|
||||||
@@ -108,3 +111,5 @@ function update_niri_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
update_niri_config "$niri_config_file" "$primary_render_device"
|
update_niri_config "$niri_config_file" "$primary_render_device"
|
||||||
|
|
||||||
|
unset -f update_niri_config
|
||||||
|
|||||||
@@ -2,6 +2,59 @@
|
|||||||
|
|
||||||
# Login shell only — runs once per session
|
# Login shell only — runs once per session
|
||||||
|
|
||||||
|
append_path() {
|
||||||
|
[[ -z "$1" ]] && return
|
||||||
|
[[ -d "$1" ]] || return
|
||||||
|
case ":$PATH:" in
|
||||||
|
*:"$1":*) ;;
|
||||||
|
*)
|
||||||
|
PATH="${PATH:+$PATH:}$1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
prepend_path() {
|
||||||
|
[[ -z "$1" ]] && return
|
||||||
|
[[ -d "$1" ]] || return
|
||||||
|
case ":$PATH:" in
|
||||||
|
*:"$1":*) ;;
|
||||||
|
*)
|
||||||
|
PATH="$1${PATH:+:$PATH}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# .profile shared between shells
|
||||||
|
|
||||||
|
[[ -f "$HOME/.profile" ]] && . "$HOME/.profile"
|
||||||
|
|
||||||
|
# XDG, better than not set
|
||||||
|
|
||||||
|
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
|
||||||
|
export XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
|
||||||
|
export XDG_STATE_HOME=${XDG_STATE_HOME:-$HOME/.local/state}
|
||||||
|
export XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
|
||||||
|
|
||||||
|
# Locale, better than not set
|
||||||
|
|
||||||
|
if [[ -z "$LANG" ]]; then
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OCaml env
|
||||||
|
|
||||||
|
(( $+commands[opam] )) && eval "$(opam env)"
|
||||||
|
|
||||||
|
# Other paths
|
||||||
|
|
||||||
|
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
||||||
|
prepend_path "$HOME/.local/share/fnm/aliases/default/bin" # 'fnm env' is eval'ed in .zshrc
|
||||||
|
prepend_path "$HOME/.cargo/bin"
|
||||||
|
prepend_path "$HOME/go/bin"
|
||||||
|
prepend_path "$HOME/.local/bin"
|
||||||
|
prepend_path "$HOME/.local/scripts"
|
||||||
|
prepend_path "$HOME/.local/share/fnm"
|
||||||
|
export PATH
|
||||||
|
|
||||||
# GPG agent for SSH
|
# GPG agent for SSH
|
||||||
|
|
||||||
if (( $+commands[gpgconf] )) && (( $+commands[gpg-connect-agent] )) &&
|
if (( $+commands[gpgconf] )) && (( $+commands[gpg-connect-agent] )) &&
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/hint/zsh
|
|
||||||
|
|
||||||
append_path() {
|
|
||||||
[[ -z "$1" ]] && return
|
|
||||||
[[ -d "$1" ]] || return
|
|
||||||
case ":$PATH:" in
|
|
||||||
*:"$1":*) ;;
|
|
||||||
*)
|
|
||||||
PATH="${PATH:+$PATH:}$1"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
prepend_path() {
|
|
||||||
[[ -z "$1" ]] && return
|
|
||||||
[[ -d "$1" ]] || return
|
|
||||||
case ":$PATH:" in
|
|
||||||
*:"$1":*) ;;
|
|
||||||
*)
|
|
||||||
PATH="$1${PATH:+:$PATH}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# XDG, better than not set
|
|
||||||
|
|
||||||
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
|
|
||||||
export XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
|
|
||||||
export XDG_STATE_HOME=${XDG_STATE_HOME:-$HOME/.local/state}
|
|
||||||
export XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
|
|
||||||
|
|
||||||
# Locale, better than not set
|
|
||||||
|
|
||||||
if [[ -z "$LANG" ]]; then
|
|
||||||
export LANG="en_US.UTF-8"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Somewhat expensive
|
|
||||||
|
|
||||||
if [[ -z "$UY_ENV_DONE" ]]; then
|
|
||||||
[[ -f "$HOME/.profile" ]] && . "$HOME/.profile"
|
|
||||||
(( $+commands[opam] )) && eval "$(opam env)"
|
|
||||||
export UY_ENV_DONE=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Paths
|
|
||||||
|
|
||||||
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
|
||||||
prepend_path "$HOME/.local/share/fnm/aliases/default/bin" # 'fnm env' is eval'ed in .zshrc
|
|
||||||
prepend_path "$HOME/.cargo/bin"
|
|
||||||
prepend_path "$HOME/go/bin"
|
|
||||||
prepend_path "$HOME/.local/bin"
|
|
||||||
prepend_path "$HOME/.local/scripts"
|
|
||||||
prepend_path "$HOME/.local/share/fnm"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
unfunction append_path
|
|
||||||
unfunction prepend_path
|
|
||||||
@@ -6,15 +6,12 @@
|
|||||||
"path": "~/Pictures/backgrounds"
|
"path": "~/Pictures/backgrounds"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"excludes": [
|
"excludes": ["nao-stars-crop-adjust-flop.jpg", "miku-gate.jpg", "\\.md$"]
|
||||||
"nao-stars-crop-adjust-flop.jpg",
|
|
||||||
"miku-gate.jpg",
|
|
||||||
"\\.md$"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"onSelected": "qs ipc call background set '{{ path }}'; change-colortheme -c '{{ colorHex }}'",
|
"onSelected": "parra set '{{ path }}'; change-colortheme -c '{{ colorHex }}'",
|
||||||
"onPreview": "exit 0; qs ipc call background preview '{{ path }}'; change-colortheme -c '{{ colorHex }}' quickshell niri",
|
"onPreview": "parra set --no-save '{{ path }}'; change-colortheme -c '{{ colorHex }}' quickshell niri",
|
||||||
|
"onRestore": "parra restore; change-colortheme -c '{{ flavor }}' quickshell niri",
|
||||||
"quitOnSelected": true,
|
"quitOnSelected": true,
|
||||||
"saveState": [
|
"saveState": [
|
||||||
{
|
{
|
||||||
@@ -22,8 +19,7 @@
|
|||||||
"fallback": "#89b4fa",
|
"fallback": "#89b4fa",
|
||||||
"command": "qs ipc call colors get mPrimary"
|
"command": "qs ipc call colors get mPrimary"
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"onRestore": "exit 0; qs ipc call background preview ''; change-colortheme -c '{{ flavor }}' quickshell niri"
|
|
||||||
},
|
},
|
||||||
"cache": {
|
"cache": {
|
||||||
"maxImageEntries": 300
|
"maxImageEntries": 300
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
// "on-click-right": "fuzzel -l 0 -p '>> ' | xargs -r sh -c",
|
// "on-click-right": "fuzzel -l 0 -p '>> ' | xargs -r sh -c",
|
||||||
// "on-click": "fuzzel",
|
// "on-click": "fuzzel",
|
||||||
// "on-click-middle": "pkill -9 fuzzel",
|
// "on-click-middle": "pkill -9 fuzzel",
|
||||||
"on-click": "eww open main --toggle",
|
// "on-click": "eww open main --toggle",
|
||||||
"on-click-right": "pkill rofi || rofi -show drun",
|
"on-click-right": "pkill rofi || rofi -show drun",
|
||||||
"min-length": 2,
|
"min-length": 2,
|
||||||
"max-length": 2
|
"max-length": 2
|
||||||
@@ -71,7 +71,6 @@
|
|||||||
"group/monitors": {
|
"group/monitors": {
|
||||||
"modules": [
|
"modules": [
|
||||||
"network#speed",
|
"network#speed",
|
||||||
"custom/publicip",
|
|
||||||
"temperature",
|
"temperature",
|
||||||
"memory",
|
"memory",
|
||||||
"cpu",
|
"cpu",
|
||||||
@@ -94,16 +93,6 @@
|
|||||||
"tooltip-format-disconnected": " Disconnected",
|
"tooltip-format-disconnected": " Disconnected",
|
||||||
"min-length": 20
|
"min-length": 20
|
||||||
},
|
},
|
||||||
"custom/publicip": {
|
|
||||||
"interval": 30,
|
|
||||||
"return-type": "json",
|
|
||||||
"format": " {text}",
|
|
||||||
"tooltip-format": "{alt}",
|
|
||||||
"max-length": 6,
|
|
||||||
"min-length": 6,
|
|
||||||
"exec": "$HOME/.config/waybar/modules/publicip.sh",
|
|
||||||
"on-click": "rm -f $HOME/.config/waybar/modules/publicip.cache && sleep 0.1"
|
|
||||||
},
|
|
||||||
"temperature": {
|
"temperature": {
|
||||||
"interval": 5,
|
"interval": 5,
|
||||||
"thermal-zone": 6,
|
"thermal-zone": 6,
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# shellcheck disable=SC1091,SC1090
|
|
||||||
|
|
||||||
# Entries in publicip.conf:
|
|
||||||
# IP_QUERY_URL: URL to query public IP of the system.
|
|
||||||
# return: JSON object with "ip" field.
|
|
||||||
# note: This URL will be queried with short intervals (60s for example),
|
|
||||||
# therefore it may not be a good idea to use a public API with
|
|
||||||
# a limited number of calls.
|
|
||||||
# IP_INFO_URL: URL to query IP location.
|
|
||||||
# placeholder: <ip>
|
|
||||||
# return: JSON object with "country_code" field.
|
|
||||||
# note: This URL will only be quetried when public IP changes or when "force" is given as parameter.
|
|
||||||
|
|
||||||
path="$(dirname "$(readlink -f "$0")")"
|
|
||||||
cache_file="$path/publicip.cache"
|
|
||||||
config_file="$path/publicip.conf"
|
|
||||||
time_log="$path/publicip.log"
|
|
||||||
|
|
||||||
[ -f "$config_file" ] || exit 1
|
|
||||||
. "$config_file"
|
|
||||||
[ -z "$IP_QUERY_URL" ] && exit 1
|
|
||||||
[ -z "$IP_INFO_URL" ] && exit 1
|
|
||||||
[ "$1" == "force" ] && rm -f "$cache_file"
|
|
||||||
[ -f "$cache_file" ] && . "$cache_file"
|
|
||||||
|
|
||||||
# Try to check network connectivity before querying
|
|
||||||
if ! ping -c 1 -W 2 1.1.1.1 >/dev/null 2>&1; then
|
|
||||||
# No network, return cached values if available
|
|
||||||
[ -z "$CACHED_IP" ] && CACHED_IP="N/A"
|
|
||||||
[ -z "$CACHED_CODE" ] && CACHED_CODE="N/A"
|
|
||||||
|
|
||||||
echo "$(date +%Y-%m-%dT%H:%M:%S) - Waiting for network" >>"$time_log"
|
|
||||||
|
|
||||||
jq -n --unbuffered --compact-output \
|
|
||||||
--arg ip "$CACHED_IP" \
|
|
||||||
--arg country "$CACHED_CODE" \
|
|
||||||
'{alt: $ip, text: $country}'
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
ip_current=$(curl -s -L -4 "$IP_QUERY_URL" | jq -r '.ip')
|
|
||||||
[ -z "$ip_current" ] && exit 1
|
|
||||||
|
|
||||||
if [ "$ip_current" != "$CACHED_IP" ]; then
|
|
||||||
echo "$(date +%Y-%m-%dT%H:%M:%S) - IP changed: $CACHED_IP -> $ip_current" >>"$time_log"
|
|
||||||
CACHED_IP="$ip_current"
|
|
||||||
|
|
||||||
ip_info_url=${IP_INFO_URL//<ip>/$ip_current}
|
|
||||||
CACHED_CODE=$(curl -s -L "$ip_info_url" | jq -r '.country_code')
|
|
||||||
[ -z "$CACHED_CODE" ] && CACHED_CODE="N/A"
|
|
||||||
|
|
||||||
echo "CACHED_IP=$CACHED_IP" >"$cache_file"
|
|
||||||
echo "CACHED_CODE=$CACHED_CODE" >>"$cache_file"
|
|
||||||
notify-send "New Public IP detected" "New IP: $ip_current\nCountry: $CACHED_CODE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
jq -n --unbuffered --compact-output \
|
|
||||||
--arg ip "$CACHED_IP" \
|
|
||||||
--arg country "$CACHED_CODE" \
|
|
||||||
'{alt: $ip, text: $country}'
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
# Terminate already running bar instances
|
|
||||||
killall -q waybar
|
|
||||||
|
|
||||||
# Wait until the processes have been shut down
|
|
||||||
while pgrep -x waybar -u "$USER" >/dev/null; do sleep 1; done
|
|
||||||
|
|
||||||
# Launch main
|
|
||||||
waybar &
|
|
||||||
+9
-6
@@ -162,9 +162,7 @@ cuda
|
|||||||
curl
|
curl
|
||||||
cython
|
cython
|
||||||
deno
|
deno
|
||||||
device-manager-linux-git
|
|
||||||
devtools
|
devtools
|
||||||
digital
|
|
||||||
direnv
|
direnv
|
||||||
discord
|
discord
|
||||||
dnsmasq
|
dnsmasq
|
||||||
@@ -179,7 +177,6 @@ dwarfs
|
|||||||
ed
|
ed
|
||||||
efibootmgr
|
efibootmgr
|
||||||
element-desktop
|
element-desktop
|
||||||
elisa
|
|
||||||
ethtool
|
ethtool
|
||||||
euphonica-git
|
euphonica-git
|
||||||
eww
|
eww
|
||||||
@@ -256,8 +253,13 @@ hwinfo
|
|||||||
hyperfine
|
hyperfine
|
||||||
hyperv
|
hyperv
|
||||||
hypridle
|
hypridle
|
||||||
|
hyprland
|
||||||
|
hyprland-protocols
|
||||||
|
hyprlax-bin
|
||||||
hyprlock
|
hyprlock
|
||||||
hyprpicker
|
hyprpicker
|
||||||
|
hyprshot
|
||||||
|
hyprshutdown
|
||||||
hyprutils
|
hyprutils
|
||||||
imagemagick
|
imagemagick
|
||||||
inetutils
|
inetutils
|
||||||
@@ -291,7 +293,6 @@ kpeople
|
|||||||
kplotting
|
kplotting
|
||||||
krdc
|
krdc
|
||||||
ktexttemplate
|
ktexttemplate
|
||||||
kvantum
|
|
||||||
lazygit
|
lazygit
|
||||||
lib32-nvidia-utils
|
lib32-nvidia-utils
|
||||||
lib32-opencl-nvidia
|
lib32-opencl-nvidia
|
||||||
@@ -348,6 +349,7 @@ networkmanager-openvpn
|
|||||||
nfs-utils
|
nfs-utils
|
||||||
niri
|
niri
|
||||||
nmap
|
nmap
|
||||||
|
nodejs-dummy
|
||||||
nordvpn-bin
|
nordvpn-bin
|
||||||
noto-fonts-cjk
|
noto-fonts-cjk
|
||||||
ntfsprogs
|
ntfsprogs
|
||||||
@@ -469,7 +471,6 @@ sunshine
|
|||||||
sushi
|
sushi
|
||||||
svt-av1-hdr-git
|
svt-av1-hdr-git
|
||||||
sysbench
|
sysbench
|
||||||
systemc2.3.4
|
|
||||||
tailscale
|
tailscale
|
||||||
tcpdump
|
tcpdump
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
@@ -523,6 +524,7 @@ unrar
|
|||||||
upx
|
upx
|
||||||
usbip
|
usbip
|
||||||
uv
|
uv
|
||||||
|
uwsm
|
||||||
valgrind
|
valgrind
|
||||||
vapoursynth-plugin-vship-cuda-git
|
vapoursynth-plugin-vship-cuda-git
|
||||||
ventoy-bin
|
ventoy-bin
|
||||||
@@ -530,7 +532,6 @@ vesktop-bin
|
|||||||
vicinae
|
vicinae
|
||||||
vim
|
vim
|
||||||
visual-studio-code-bin
|
visual-studio-code-bin
|
||||||
vk-hdr-layer-kwin6-git
|
|
||||||
vlc
|
vlc
|
||||||
voicefox
|
voicefox
|
||||||
vulkan-extra-layers
|
vulkan-extra-layers
|
||||||
@@ -544,6 +545,7 @@ vulkan-swrast
|
|||||||
vulkan-validation-layers
|
vulkan-validation-layers
|
||||||
vvenc
|
vvenc
|
||||||
wallreel
|
wallreel
|
||||||
|
waybar
|
||||||
waydroid
|
waydroid
|
||||||
waydroid-helper
|
waydroid-helper
|
||||||
waypaper
|
waypaper
|
||||||
@@ -569,6 +571,7 @@ x86_energy_perf_policy
|
|||||||
xclip
|
xclip
|
||||||
xdg-desktop-portal-gnome
|
xdg-desktop-portal-gnome
|
||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
xmake
|
xmake
|
||||||
xone-dkms
|
xone-dkms
|
||||||
xorg-bdftopcf
|
xorg-bdftopcf
|
||||||
|
|||||||
Reference in New Issue
Block a user