diff options
123 files changed, 1983 insertions, 1158 deletions
@@ -72,6 +72,12 @@ __precmd() PS1+="\001$SHELLC_F_LIGHTGRAY\002:\001$SHELLC_RESET_COLOR_F\002" PS1+="\001$SHELLC_F_BLUE\002\w\001$SHELLC_RESET_COLOR_F\002" + # Add venv indicator + if [[ -n "$PYTHON_VENV_DIR" ]] + then + PS1+="\001$SHELLC_F_CYAN\002#$(awk -F/ '{ print $(NF-1) }' <<< "$PYTHON_VENV_DIR")\001$SHELLC_RESET_COLOR_F\002" + fi + # Add git status if git rev-parse --is-inside-work-tree &> /dev/null then @@ -103,6 +109,8 @@ __precmd() if [[ $previous_exit -ne 0 ]] then PS1+="\001$SHELLC_F_RED\002" + else + PS1+="\001$SHELLC_F_LIGHTGRAY\002" fi PS1+="$(printf "%03i" "$previous_exit")\001$SHELLC_RESET_COLOR_F\002" diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index ea3eb70..045ed80 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -15,6 +15,9 @@ require("awful.hotkeys_popup.keys") -- Custom libraries local charitable = require("charitable") +local widget_battery = require("awesome-wm-widgets.batteryarc-widget.batteryarc") +local widget_brightness = require("awesome-wm-widgets.brightness-widget.brightness") +local widget_volume = require("awesome-wm-widgets.pactl-widget.volume") -- {{{ Error handling -- Check if awesome encountered an error during startup and fell back to @@ -43,23 +46,6 @@ do end -- }}} --- {{{ Background services -function run_once(cmd) - findme = cmd - firstspace = cmd:find(" ") - - if firstspace then - findme = cmd:sub(0, firstspace - 1) - end - - awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")") -end - -run_once("xcompmgr") -run_once("chwp") -run_once("redshift -l 51.50:4.59 -t 6500:2500") --- }}} - -- {{{ Variable definitions beautiful.init(awful.util.getdir("config") .. "/theme.lua") @@ -140,48 +126,90 @@ awful.screen.connect_for_each_screen(function(s) end end - -- Create an imagebox widget which will contain an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(gears.table.join( - awful.button({ }, 1, function () awful.layout.inc( 1) end), - awful.button({ }, 3, function () awful.layout.inc(-1) end), - awful.button({ }, 4, function () awful.layout.inc( 1) end), - awful.button({ }, 5, function () awful.layout.inc(-1) end))) - - -- Create a taglist widget - s.mytaglist = awful.widget.taglist { + s.widgets = {} + s.bars = {} + + -- Create an imagebox widget which will contain an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.widgets.layout = awful.widget.layoutbox(s) + s.widgets.layout:buttons(gears.table.join( + awful.button({ }, 1, function () awful.layout.inc( 1) end), + awful.button({ }, 3, function () awful.layout.inc(-1) end), + awful.button({ }, 4, function () awful.layout.inc( 1) end), + awful.button({ }, 5, function () awful.layout.inc(-1) end)) + ) + + -- Create widgets + s.widgets.battery = widget_battery({ + show_current_level = false, + warning_msg_position = top_right, + }) + s.widgets.brightness = widget_brightness({ + program = "brightnessctl", + tooltip = true, + }) + s.widgets.clock = wibox.widget { + widget = wibox.widget.textclock, + format = "%F %H:%M", + } + s.widgets.systray = wibox.widget.systray() + s.widgets.tags = awful.widget.taglist { screen = s, filter = awful.widget.taglist.filter.all, buttons = taglist_buttons, source = function(screen, args) return tags end, } - - -- Create a tasklist widget - s.mytasklist = awful.widget.tasklist { + s.widgets.tasklist = awful.widget.tasklist { screen = s, filter = awful.widget.tasklist.filter.currenttags, buttons = tasklist_buttons, } + s.widgets.volume = widget_volume({ + tooltip = true, + widget_type = "arc", + }) - -- Create the wibox - s.mytaskbar = awful.wibar({ + -- Create the taskbar + s.bars.bottom = awful.wibar({ position = "bottom", screen = s, bg = beautiful.bg_normal .. "cc", }) -- Add widgets to the wibox - s.mytaskbar:setup { + s.bars.bottom:setup { layout = wibox.layout.align.horizontal, - spacing = 16, + s.widgets.tags, + s.widgets.tasklist, + s.widgets.layout, + } + + -- Create the statbar + s.bars.top = awful.wibar({ + position = "top", + screen = s, + bg = beautiful.bg_normal .. "cc", + }) + + s.bars.top:setup { + layout = wibox.layout.align.horizontal, + expand = "none", + { + layout = wibox.layout.fixed.horizontal, + s.widgets.layout, + }, + { + layout = wibox.layout.fixed.horizontal, + s.widgets.clock, + }, { layout = wibox.layout.fixed.horizontal, - spacing = 16, - s.mylayoutbox, - s.mytaglist, + spacing = 4, + s.widgets.systray, + s.widgets.brightness, + s.widgets.volume, + s.widgets.battery, }, - s.mytasklist, } end) -- }}} @@ -205,6 +233,18 @@ globalkeys = gears.table.join( awful.key({ modkey, }, "Escape", awful.tag.history.restore, {description = "go back", group = "tag"}), + awful.key({ modkey, }, "Down", + function () + awful.client.focus.byidx( 1) + end, + {description = "focus next by index", group = "client"} + ), + awful.key({ modkey, }, "Up", + function () + awful.client.focus.byidx(-1) + end, + {description = "focus previous by index", group = "client"} + ), awful.key({ modkey, }, "j", function () awful.client.focus.byidx( 1) @@ -222,6 +262,13 @@ globalkeys = gears.table.join( -- Layout manipulation + awful.key({ modkey, "Shift" }, "Down", function () awful.client.swap.byidx( 1) end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "Up", function () awful.client.swap.byidx( -1) end, + {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Control" }, "Right", function () awful.screen.focus_bydirection("right") end, + {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "Left", function () awful.screen.focus_bydirection("left") end, awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, {description = "swap with next client by index", group = "client"}), awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, @@ -247,7 +294,7 @@ globalkeys = gears.table.join( {description = "reload awesome", group = "awesome"} ), awful.key( - { modkey, "Shift" }, "q", awesome.quit, + { modkey, "Shift" }, "x", awesome.quit, {description = "quit awesome", group = "awesome"} ), @@ -417,7 +464,6 @@ awful.rules.rules = { buttons = clientbuttons, screen = awful.screen.preferred, placement = awful.placement.no_overlap+awful.placement.no_offscreen, - opacity = 0.8, }, }, @@ -462,6 +508,7 @@ awful.rules.rules = { { -- Remove borders from windows where it doesn't fit (housestyles ought to be banned, tho) rule_any = { class = { + "albert", "nextcloud", } }, @@ -470,11 +517,23 @@ awful.rules.rules = { }, }, + { -- Tag rules for social + rule_any = { + class = { + "irc", + }, + }, + properties = { + tag = "social", + }, + }, + { -- Tag rules for www rule_any = { class = { "chromium", "firefox", + "firefox-esr", "qutebrowser", }, }, @@ -486,6 +545,7 @@ awful.rules.rules = { { -- Tag rules for email rule_any = { class = { + "evolution", "thunderbird", "kmail", }, @@ -503,6 +563,7 @@ awful.rules.rules = { "tsmapplication.exe", "lutris", "pathofexile.exe", + "mumble" }, }, properties = { @@ -569,10 +630,6 @@ awful.rules.rules = { { rule_any = {type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } }, - - -- Set Firefox to always map on the tag named "2" on screen 1. - -- { rule = { class = "Firefox" }, - -- properties = { screen = 1, tag = "2" } }, } -- }}} @@ -650,21 +707,23 @@ end) client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus - c.opacity = 1 - -- Mouse follows focus - if mouse.object_under_pointer() ~= c then - local geometry = c:geometry() - - mouse.coords({ - x = geometry.x + geometry.width/2, - y = geometry.y + geometry.height/2, - }, true) - end +-- -- Mouse follows focus +-- if mouse.object_under_pointer() ~= c then +-- local geometry = c:geometry() +-- +-- mouse.coords({ +-- x = geometry.x + geometry.width/2, +-- y = geometry.y + geometry.height/2, +-- }, true) +-- end end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal - c.opacity = 0.8 end) -- }}} + +awful.util.spawn("systemctl --user import-environment DISPLAY") +awful.util.spawn("systemctl --user import-environment XAUTHORITY") +awful.util.spawn("systemctl --user start awesome-session.target") diff --git a/.config/awesome/theme.lua b/.config/awesome/theme.lua index 61bec2c..25c9167 100644 --- a/.config/awesome/theme.lua +++ b/.config/awesome/theme.lua @@ -28,11 +28,11 @@ theme.border_normal = "#4b5165" theme.border_focus = "#5294e2" theme.border_marked = "#91231c" -theme.taglist_spacing = dpi(4) +theme.taglist_spacing = 0 theme.taglist_bg_occupied = "#4b5165" theme.tasklist_bg_normal = "#4b5165" -theme.tasklist_spacing = dpi(4) +theme.tasklist_spacing = 0 theme.useless_gap = dpi(4) theme.maximized_honor_padding = true diff --git a/.config/environment.d/00-path.conf b/.config/environment.d/00-path.conf new file mode 100644 index 0000000..dd56eec --- /dev/null +++ b/.config/environment.d/00-path.conf @@ -0,0 +1,7 @@ +# Local paths +PATH=/home/tyil/.local/bin:/home/tyil/.config/shell/wrappers.d + +# Default paths +PATH=$PATH:/usr/local/sbin:/user/local/bin +PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin +PATH=$PATH:/opt/bin diff --git a/.config/firefox/chrome/userChrome.css b/.config/firefox/chrome/userChrome.css index e2ab027..d9da526 100644 --- a/.config/firefox/chrome/userChrome.css +++ b/.config/firefox/chrome/userChrome.css @@ -16,3 +16,8 @@ tab-item.unread .label-content { font-style: italic; } + +/* Hide the title/tab bar */ +#TabsToolbar { + display: none; +} diff --git a/.config/firefox/user.js b/.config/firefox/user.js index 08d62a7..c39b87c 100644 --- a/.config/firefox/user.js +++ b/.config/firefox/user.js @@ -1,15 +1,7 @@ // Settings changed after going through properties -user_pref("app.shield.optoutstudies.enabled", false); user_pref("browser.ctrlTab.recentlyUsedOrder", false); user_pref("browser.download.dir", "/home/tyil/downloads/firefox"); user_pref("browser.download.folderList", 2); -user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); -user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); -user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", false); -user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); -user_pref("browser.newtabpage.activity-stream.feeds.topsites", false); -user_pref("browser.newtabpage.activity-stream.showSearch", false); -user_pref("browser.newtabpage.enabled", false); user_pref("browser.search.hiddenOneOffs", "Google,Bing,Amazon.com,eBay,Twitter"); user_pref("browser.search.suggest.enabled", false); user_pref("browser.startup.homepage", "https://searx.tyil.nl"); @@ -19,15 +11,29 @@ user_pref("general.smoothScroll", false); user_pref("media.autoplay.default", 5); // Disable autoplay for both sound and video user_pref("privacy.donottrackheader.enabled", true); -// Unload browser tabs when low on memory -user_pref("browser.tabs.unloadOnLowMemory", true); - -// Make Firefox load userChrome.css again... -user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); - -// Disable whatever trash Firefox devs are pushing these days +// Disable anti-features +user_pref("app.shield.optoutstudies.enabled", false); +user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); +user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", false); +user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); +user_pref("browser.newtabpage.activity-stream.feeds.topsites", false); +user_pref("browser.newtabpage.activity-stream.showSearch", false); +user_pref("browser.newtabpage.enabled", false); user_pref("extensions.pocket.enabled", false); user_pref("media.videocontrols.picture-in-picture.enabled", false); user_pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false); +user_pref("network.captive-portal-service.enabled", false); user_pref("network.trr.mode", 5); // DoH user_pref("pdfjs.disabled", true); + +// Unload browser tabs when low on memory +user_pref("browser.tabs.unloadOnLowMemory", true); + +// Make fullscreen stick to window size +user_pref("full-screen-api.ignore-widgets", true); + +// Undo horrible UI decisions made by the incompetent +user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); // Enable userChrome.css +user_pref("widget.non-native-theme.scrollbar.size.override", 16); // Set the scrollbar width +user_pref("widget.gtk.overlay-scrollbars.enabled", false); // Use normal scrollbars diff --git a/.config/fuzzel/fuzzel.ini b/.config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..1c374a7 --- /dev/null +++ b/.config/fuzzel/fuzzel.ini @@ -0,0 +1,20 @@ +[main] +font = monospace:size=10 +lines = 15 +width = 80 +horizontal-pad = 8 +vertical-pad = 8 + +[colors] +background = 252a35ff +selection = 5294e2ff +text = eeeeeeff +selection-text = eeeeeeff + +[border] +radius = 4 + +[key-bindings] +execute-or-next = none +delete-prev-word = Control+BackSpace Control+w +next = Down Control+n Tab diff --git a/.config/gammastep/config.ini b/.config/gammastep/config.ini new file mode 100644 index 0000000..2933117 --- /dev/null +++ b/.config/gammastep/config.ini @@ -0,0 +1,8 @@ +[general] +temp-day=6500 +temp-night=3000 +location-provider=manual + +[manual] +lat=51.8100 +lon=4.6736 diff --git a/.config/git/authorized_keys b/.config/git/authorized_keys new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/git/authorized_keys diff --git a/.config/git/config b/.config/git/config index 6456797..212776b 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,29 +1,30 @@ [alias] - a = add - b = branch - bc = branch-cleanup - c = commit - ca = commit --amend --reset-author - co = checkout - cob = checkout -b - ct = tag -s - d = diff - fo = fetch origin - l = log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(6)%ad %C(3)%h%Creset %s %C(7)by %C(2)%ae%C(7):%C(5)%G?' - lg = log --graph --abbrev-commit --decorate --date=relative --all + a = add + b = branch + bc = branch-cleanup + c = commit + ca = commit --amend --reset-author + co = checkout + cob = checkout -b + ct = tag -s + d = diff + fo = fetch origin + l = log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(6)%ad %C(3)%h%Creset %s %C(7)by %C(2)%ae%C(7):%C(5)%G?' + lg = log --graph --abbrev-commit --decorate --date=relative --all mirror-add = ! git remote set-url --add --push origin - p = push - pa = push-all - prev = ! git show "HEAD:$1" - r = rebase --rebase-merges -i - ra = commit --amend --no-edit -a - rc = rebase --continue - s = status -s - t = tag --sort=-v:refname - tr = for-each-ref --sort=taggerdate --format '%(tag)' refs/tags - -#[commit] -# gpgsign = true + p = push + pa = push-all + prev = ! git show "HEAD:$1" + r = rebase --rebase-merges -i + ra = commit --amend --no-edit -a + rc = rebase --continue + s = status -s + squash-all = "!f(){ git reset $(git commit-tree HEAD^{tree} \"$@\");};f" + t = tag --sort=-v:refname + tr = for-each-ref --sort=taggerdate --format '%(tag)' refs/tags + +[commit] + gpgsign = true [core] pager = less -R @@ -39,6 +40,12 @@ [difftool] prompt = false +[gpg] + format = ssh + +[gpg "ssh"] + allowedSignersFile = ~/.config/git/authorized_keys + [init] defaultBranch = master @@ -53,9 +60,13 @@ default = current followTags = true -[user] - email = p.spek@tyil.nl - name = Patrick Spek - signingkey = 1660F6A2DFA75347322A4DC07A6AC285E2D98827 [safe] directory = * + +[tag] + gpgsign = true + +[user] + email = p.spek@tyil.nl + name = Patrick Spek + signingKey = ~/.config/git/signingkey # Symlink to the SSH key to be used diff --git a/.config/git/ignore b/.config/git/ignore index b84abd4..b283dac 100644 --- a/.config/git/ignore +++ b/.config/git/ignore @@ -1,8 +1,12 @@ # -# Misc +# Language specific cruft # -# Perl 6 precompilation files +# Python +.venv +__pycache__ + +# Raku .precomp # diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..f0ae6ff --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,143 @@ +monitor=,preferred,auto,1 + +exec-once=waybar -c ~/.config/waybar/config-hyprland.json +exec-once=waybar -c ~/.config/waybar/config.json + +exec-once=dunst +exec-once=ntfy sub --from-config +exec-once=swaybg -i "$(find ~/pictures/wallpapers/1920x1080 | shuf -n 1)" +exec-once=swayidle +exec-once=gammastep +# TODO: polkit agent +# TODO: PipeWire + +exec-once=keepassxc +exec-once=nextcloud +exec-once=nm-applet + +workspace=1,name:work +workspace=2,name:social +workspace=3,name:web +workspace=4,name:email +workspace=5,name:media +workspace=6,name:games +workspace=7,name:vms +workspace=8,name:scratch + +input { + kb_file= + kb_layout= + kb_variant= + kb_model= + kb_options= + kb_rules= + + follow_mouse=1 + + touchpad { + natural_scroll=no + tap-to-click=no + } + + sensitivity=0 # -1.0 - 1.0, 0 means no modification. +} + +general { + main_mod=SUPER + layout=master + + gaps_in=4 + gaps_out=8 + border_size=2 + col.active_border=0xff3381da + col.inactive_border=0xff333333 + + apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) + + damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer +} + +decoration { + rounding=0 + blur=1 + blur_size=3 # minimum 1 + blur_passes=1 # minimum 1 + blur_new_optimizations=1 +} + +animations { + enabled=0 + animation=windows,1,7,default + animation=border,1,10,default + animation=fade,1,10,default + animation=workspaces,1,6,default +} + +dwindle { + pseudotile=0 # enable pseudotiling on dwindle +} + +master { + new_is_master=true + new_on_top=true +} + +gestures { + workspace_swipe=no +} + +# Keybinds +bind=SUPER,RETURN,exec,alacritty +bind=SUPER,X,killactive, +bind=SUPER_SHIFT,X,exit, +bind=SUPER,E,exec,fuzzel +bind=SUPER_SHIFT,S,exec,loginctl lock-session + +bindl=,XF86AudioMute,exec,~/.local/bin/vol toggle +bindel=,XF86AudioRaiseVolume,exec,~/.local/bin/vol inc 5 +bindel=,XF86AudioLowerVolume,exec,~/.local/bin/vol dec 5 +binde=,XF86MonBrightnessUp,exec,~/.local/bin/bl inc 5 +binde=,XF86MonBrightnessDown,exec,~/.local/bin/bl dec 5 +#bind=,Print,exec, +#bind=,XF86AudioMicMute,exec, + +bind=SUPER,J,layoutmsg,cyclenext +bind=SUPER,K,layoutmsg,cycleprev +bind=SUPER,H,splitratio,-0.05 +bind=SUPER,L,splitratio,+0.05 +bind=SUPER_SHIFT,RETURN,layoutmsg,swapwithmaster +bind=SUPER_SHIFT,J,layoutmsg,swapnext +bind=SUPER_SHIFT,K,layoutmsg,swapprev +bind=SUPER_SHIFT,H,layoutmsg,addmaster +bind=SUPER_SHIFT,L,layoutmsg,removemaster +bind=SUPER,SPACE,layoutmsg,orientationnext +bind=SUPER_SHIFT,SPACE,layoutmsg,orientationprev +bind=SUPER,M,fullscreen,1 +bind=SUPER,F,fullscreen,0 + +bind=SUPER,2,exec,~/.local/bin/hyprland-switch-tag 1 +bind=SUPER,3,exec,~/.local/bin/hyprland-switch-tag 2 +bind=SUPER,4,exec,~/.local/bin/hyprland-switch-tag 3 +bind=SUPER,5,exec,~/.local/bin/hyprland-switch-tag 4 +bind=SUPER,6,exec,~/.local/bin/hyprland-switch-tag 5 +bind=SUPER,7,exec,~/.local/bin/hyprland-switch-tag 6 +bind=SUPER,8,exec,~/.local/bin/hyprland-switch-tag 7 +bind=SUPER,9,exec,~/.local/bin/hyprland-switch-tag 8 +bind=SUPER,0,exec,~/.local/bin/hyprland-switch-tag 9 + +bind=SUPER_SHIFT,2,movetoworkspacesilent,1 +bind=SUPER_SHIFT,3,movetoworkspacesilent,2 +bind=SUPER_SHIFT,4,movetoworkspacesilent,3 +bind=SUPER_SHIFT,5,movetoworkspacesilent,4 +bind=SUPER_SHIFT,6,movetoworkspacesilent,5 +bind=SUPER_SHIFT,7,movetoworkspacesilent,6 +bind=SUPER_SHIFT,8,movetoworkspacesilent,7 +bind=SUPER_SHIFT,9,movetoworkspacesilent,8 +bind=SUPER_SHIFT,0,movetoworkspacesilent,9 + +bind=SUPER,mouse_down,workspace,e+1 +bind=SUPER,mouse_up,workspace,e-1 + +# Rules +windowrulev2=workspace 3,class:(firefox) +windowrulev2=workspace 4,class:(thunderbird) diff --git a/.config/kdeglobals b/.config/kdeglobals deleted file mode 100644 index 7442720..0000000 --- a/.config/kdeglobals +++ /dev/null @@ -1,150 +0,0 @@ -[$Version] -update_info=filepicker.upd:filepicker-remove-old-previews-entry,fonts_global.upd:Fonts_Global,fonts_global_toolbar.upd:Fonts_Global_Toolbar,icons_remove_effects.upd:IconsRemoveEffects,kwin.upd:animation-speed,style_widgetstyle_default_breeze.upd:StyleWidgetStyleDefaultBreeze - -[ColorEffects:Disabled] -ChangeSelectionColor= -Color=56,56,56 -ColorAmount=0 -ColorEffect=0 -ContrastAmount=0.65000000000000002 -ContrastEffect=1 -Enable= -IntensityAmount=0.10000000000000001 -IntensityEffect=2 - -[ColorEffects:Inactive] -ChangeSelectionColor=true -Color=112,111,110 -ColorAmount=0.025000000000000001 -ColorEffect=2 -ContrastAmount=0.10000000000000001 -ContrastEffect=2 -Enable=false -IntensityAmount=0 -IntensityEffect=0 - -[Colors:Button] -BackgroundAlternate=64,69,82 -BackgroundNormal=65,72,87 -DecorationFocus=82,148,226 -DecorationHover=82,148,226 -ForegroundActive=61,174,233 -ForegroundInactive=137,141,153 -ForegroundLink=29,153,243 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=211,218,227 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Complementary] -ForegroundLink=29,153,243 -ForegroundVisited=155,89,182 - -[Colors:Selection] -BackgroundAlternate=29,153,243 -BackgroundNormal=82,148,226 -DecorationFocus=82,148,226 -DecorationHover=82,148,226 -ForegroundActive=252,252,252 -ForegroundInactive=147,186,227 -ForegroundLink=20,109,172 -ForegroundNegative=160,48,50 -ForegroundNeutral=182,85,0 -ForegroundNormal=211,218,227 -ForegroundPositive=27,123,67 -ForegroundVisited=155,89,182 - -[Colors:Tooltip] -BackgroundAlternate=47,52,63 -BackgroundNormal=53,57,69 -DecorationFocus=82,148,226 -DecorationHover=82,148,226 -ForegroundActive=61,174,233 -ForegroundInactive=137,141,153 -ForegroundLink=29,153,243 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=211,218,227 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:View] -BackgroundAlternate=64,69,82 -BackgroundNormal=64,69,82 -DecorationFocus=82,148,226 -DecorationHover=82,148,226 -ForegroundActive=61,174,233 -ForegroundInactive=137,141,153 -ForegroundLink=29,153,243 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=211,218,227 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Window] -BackgroundAlternate=47,52,63 -BackgroundNormal=47,52,63 -DecorationFocus=82,148,226 -DecorationHover=82,148,226 -ForegroundActive=61,174,233 -ForegroundInactive=137,141,153 -ForegroundLink=29,153,243 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=211,218,227 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[DirSelect Dialog] -DirSelectDialog Size=844,598 -History Items[$e]=file:$HOME/pictures/wallpapers/1920x1080,file:$HOME/pictures/wallpapers/1920x1080,file:$HOME/pictures/wallpapers/1920x1080 - -[General] -BrowserApplication=chromium.desktop -ColorSchemeHash=fe6711d5312a664b695e8bc1d1d4b53f52ba20f0 -TerminalApplication=alacritty -TerminalService=Alacritty.desktop -XftHintStyle=hintslight -XftSubPixel=none -fixed=Liberation Mono,10,-1,5,50,0,0,0,0,0 -font=Open Sans,10,-1,5,50,0,0,0,0,0 -smallestReadableFont=Open Sans,8,-1,5,50,0,0,0,0,0 - -[KDE] -AnimationDurationFactor=0 -LookAndFeelPackage=com.github.varlesh.arc-dark -SingleClick=false - -[KFileDialog Settings] -Allow Expansion=false -Automatically select filename extension=true -Breadcrumb Navigation=false -Decoration position=2 -LocationCombo Completionmode=5 -PathCombo Completionmode=5 -Show Bookmarks=false -Show Full Path=false -Show Inline Previews=true -Show Preview=false -Show Speedbar=true -Show hidden files=false -Sort by=Name -Sort directories first=true -Sort hidden files last=false -Sort reversed=false -Speedbar Width=138 -View Style=DetailTree - -[Shortcuts] -Quit=Meta+X; Ctrl+Q - -[WM] -activeBackground=47,52,63 -activeBlend=47,52,63 -activeFont=Noto Sans,10,-1,5,75,0,0,0,0,0,Bold -activeForeground=211,218,227 -inactiveBackground=47,52,63 -inactiveBlend=47,52,63 -inactiveForeground=102,106,115 diff --git a/.config/kscreenlockerrc b/.config/kscreenlockerrc deleted file mode 100644 index 3700620..0000000 --- a/.config/kscreenlockerrc +++ /dev/null @@ -1,15 +0,0 @@ -[$Version] -update_info=kscreenlocker.upd:0.1-autolock - -[Daemon] -Timeout=2 - -[Greeter] -WallpaperPlugin=org.kde.color - -[Greeter][Wallpaper][org.kde.color][General] -Color=0,0,0 - -[Greeter][Wallpaper][org.kde.slideshow][General] -SlideInterval=7200 -SlidePaths=/home/tyil/pictures/wallpapers/1920x1080/ diff --git a/.config/ntfy/client.yml b/.config/ntfy/client.yml new file mode 100644 index 0000000..f85515e --- /dev/null +++ b/.config/ntfy/client.yml @@ -0,0 +1 @@ +default-host: https://ntfy.tyil.nl diff --git a/.config/plasma-org.kde.plasma.desktop-appletsrc b/.config/plasma-org.kde.plasma.desktop-appletsrc deleted file mode 100644 index 950a0d8..0000000 --- a/.config/plasma-org.kde.plasma.desktop-appletsrc +++ /dev/null @@ -1,386 +0,0 @@ -[ActionPlugins][0] -RightButton;NoModifier=org.kde.contextmenu -wheel:Vertical;NoModifier=org.kde.switchdesktop - -[ActionPlugins][1] -RightButton;NoModifier=org.kde.contextmenu - -[Containments][2] -activityId= -formfactor=2 -immutability=1 -lastScreen=0 -location=3 -plugin=org.kde.panel -wallpaperplugin=org.kde.image - -[Containments][2][Applets][18] -immutability=1 -plugin=org.kde.plasma.digitalclock - -[Containments][2][Applets][18][Configuration] -PreloadWeight=90 -popupHeight=450 -popupWidth=396 - -[Containments][2][Applets][18][Configuration][Appearance] -dateDisplayFormat=BesideTime -dateFormat=isoDate -displayTimezoneFormat=UTCOffset -showWeekNumbers=true -use24hFormat=2 - -[Containments][2][Applets][18][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][24] -immutability=1 -plugin=org.kde.plasma.panelspacer - -[Containments][2][Applets][25] -immutability=1 -plugin=org.kde.plasma.panelspacer - -[Containments][2][Applets][3] -immutability=1 -plugin=org.kde.plasma.kickoff - -[Containments][2][Applets][3][Configuration] -PreloadWeight=100 -popupHeight=512 -popupWidth=653 - -[Containments][2][Applets][3][Configuration][General] -favoritesPortedToKAstats=true - -[Containments][2][Applets][3][Configuration][Shortcuts] -global=Alt+F1 - -[Containments][2][Applets][3][Shortcuts] -global=Alt+F1 - -[Containments][2][Applets][34] -immutability=1 -plugin=org.kde.plasma.weather - -[Containments][2][Applets][34][Configuration] -PreloadWeight=85 -source=wettercom|weather|Dordrecht, Provincie Zuid-Holland, NL|NL0ZH0034;Dordrecht -updateInterval=30 - -[Containments][2][Applets][34][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][38] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][38][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Hard Disk Activity - -[Containments][2][Applets][38][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][38][Configuration][SensorColors] -disk/all/read=226,160,82 -disk/all/write=0,170,0 - -[Containments][2][Applets][38][Configuration][SensorLabels] -disk/all/write=W - -[Containments][2][Applets][38][Configuration][Sensors] -highPrioritySensorIds=["disk/all/write"] - -[Containments][2][Applets][39] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][39][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Hard Disk Activity - -[Containments][2][Applets][39][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][39][Configuration][SensorColors] -disk/all/read=0,170,0 -disk/all/write=82,148,226 - -[Containments][2][Applets][39][Configuration][SensorLabels] -disk/all/read=R - -[Containments][2][Applets][39][Configuration][Sensors] -highPrioritySensorIds=["disk/all/read"] - -[Containments][2][Applets][40] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][40][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Network speed - -[Containments][2][Applets][40][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][40][Configuration][SensorColors] -network/all/download=82,148,226 -network/all/upload=255,170,0 - -[Containments][2][Applets][40][Configuration][SensorLabels] -network/all/upload=TX - -[Containments][2][Applets][40][Configuration][Sensors] -highPrioritySensorIds=["network/all/upload"] - -[Containments][2][Applets][41] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][41][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Network speed - -[Containments][2][Applets][41][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][41][Configuration][SensorColors] -network/all/download=255,170,0 -network/all/upload=226,160,82 - -[Containments][2][Applets][41][Configuration][SensorLabels] -network/all/download=RX - -[Containments][2][Applets][41][Configuration][Sensors] -highPrioritySensorIds=["network/all/download"] - -[Containments][2][Applets][42] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][42][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Total CPU Use - -[Containments][2][Applets][42][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][42][Configuration][SensorColors] -cpu/all/usage=82,148,226 - -[Containments][2][Applets][42][Configuration][SensorLabels] -cpu/all/usage=CPU\s - -[Containments][2][Applets][42][Configuration][Sensors] -highPrioritySensorIds=["cpu/all/usage"] -lowPrioritySensorIds=["cpu/all/cpuCount","cpu/all/coreCount"] -totalSensors=["cpu/all/usage"] - -[Containments][2][Applets][43] -immutability=1 -plugin=org.kde.plasma.systemmonitor - -[Containments][2][Applets][43][Configuration][Appearance] -chartFace=org.kde.ksysguard.textonly -title=Memory Usage - -[Containments][2][Applets][43][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][2][Applets][43][Configuration][SensorColors] -memory/physical/used=82,148,226 - -[Containments][2][Applets][43][Configuration][SensorLabels] -memory/physical/used=RAM - -[Containments][2][Applets][43][Configuration][Sensors] -highPrioritySensorIds=["memory/physical/used"] -lowPrioritySensorIds=["memory/physical/total"] -totalSensors=["memory/physical/usedPercent"] - -[Containments][2][Applets][6] -immutability=1 -plugin=org.kde.plasma.marginsseparator - -[Containments][2][Applets][7] -immutability=1 -plugin=org.kde.plasma.systemtray - -[Containments][2][Applets][7][Configuration] -PreloadWeight=100 -SystrayContainmentId=8 - -[Containments][2][ConfigDialog] -DialogHeight=74 -DialogWidth=1920 - -[Containments][2][General] -AppletOrder=3;42;43;39;38;41;40;24;18;34;25;6;7 - -[Containments][33] -ItemGeometries-1920x1080= -ItemGeometriesHorizontal= -ItemGeometriesVertical= -activityId=fc2a40a5-dc1a-4653-b26b-b869b4191298 -formfactor=0 -immutability=1 -lastScreen=0 -location=0 -plugin=org.kde.desktopcontainment -wallpaperplugin=org.kde.slideshow - -[Containments][33][ConfigDialog] -DialogHeight=1013 -DialogWidth=1906 - -[Containments][33][General] -ToolBoxButtonState=topcenter -ToolBoxButtonX=562 -ToolBoxButtonY=30 - -[Containments][33][Wallpaper][org.kde.slideshow][General] -Image=/home/tyil/pictures/wallpapers/1920x1080/anime/BlackRockShooter/jqyGYnB.jpg -SlideInterval=7200 -SlidePaths=/home/tyil/pictures/wallpapers/1920x1080/ - -[Containments][8] -activityId= -formfactor=2 -immutability=1 -lastScreen=0 -location=3 -plugin=org.kde.plasma.private.systemtray -popupHeight=432 -popupWidth=432 -wallpaperplugin=org.kde.image - -[Containments][8][Applets][10] -immutability=1 -plugin=org.kde.plasma.clipboard - -[Containments][8][Applets][10][Configuration] -PreloadWeight=55 - -[Containments][8][Applets][11] -immutability=1 -plugin=org.kde.plasma.devicenotifier - -[Containments][8][Applets][12] -immutability=1 -plugin=org.kde.plasma.manage-inputmethod - -[Containments][8][Applets][13] -immutability=1 -plugin=org.kde.plasma.notifications - -[Containments][8][Applets][13][Configuration] -PreloadWeight=65 - -[Containments][8][Applets][14] -immutability=1 -plugin=org.kde.kdeconnect - -[Containments][8][Applets][14][Configuration] -PreloadWeight=60 - -[Containments][8][Applets][15] -immutability=1 -plugin=org.kde.kscreen - -[Containments][8][Applets][16] -immutability=1 -plugin=org.kde.plasma.volume - -[Containments][8][Applets][16][Configuration] -PreloadWeight=65 - -[Containments][8][Applets][16][Configuration][General] -migrated=true - -[Containments][8][Applets][17] -immutability=1 -plugin=org.kde.plasma.vault - -[Containments][8][Applets][20] -immutability=1 -plugin=org.kde.plasma.networkmanagement - -[Containments][8][Applets][20][Configuration] -PreloadWeight=65 - -[Containments][8][Applets][21] -immutability=1 -plugin=org.kde.plasma.bluetooth - -[Containments][8][Applets][22] -immutability=1 -plugin=org.kde.plasma.battery - -[Containments][8][Applets][22][Configuration] -PreloadWeight=55 - -[Containments][8][Applets][22][Configuration][General] -showPercentage=true - -[Containments][8][Applets][27] -immutability=1 -plugin=org.kde.plasma.pass - -[Containments][8][Applets][27][Configuration] -PreloadWeight=100 - -[Containments][8][Applets][27][Configuration][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][8][Applets][27][Shortcuts] -global=Meta+P - -[Containments][8][Applets][28] -immutability=1 -plugin=org.kde.plasma.printmanager - -[Containments][8][Applets][29] -immutability=1 -plugin=org.kde.plasma.nightcolorcontrol - -[Containments][8][Applets][30] -immutability=1 -plugin=org.kde.plasma.keyboardindicator - -[Containments][8][Applets][33] -immutability=1 -plugin=org.kde.plasma.mediacontroller - -[Containments][8][Applets][33][Configuration] -PreloadWeight=5 - -[Containments][8][Applets][35] -immutability=1 -plugin=org.kde.kalendar.contact - -[Containments][8][Applets][9] -immutability=1 -plugin=org.kde.plasma.keyboardlayout - -[Containments][8][ConfigDialog] -DialogHeight=540 -DialogWidth=720 - -[Containments][8][General] -extraItems=org.kde.plasma.keyboardlayout,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.kscreen,org.kde.plasma.networkmanagement,org.kde.plasma.pass,org.kde.plasma.printmanager,org.kde.plasma.nightcolorcontrol,org.kde.plasma.keyboardindicator,org.kde.plasma.volume,org.kde.kdeconnect,org.kde.kalendar.contact -hiddenItems=org.kde.kalendar.contact -knownItems=org.kde.plasma.keyboardlayout,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.kscreen,org.kde.plasma.networkmanagement,org.kde.plasma.pass,org.kde.plasma.printmanager,org.kde.plasma.nightcolorcontrol,org.kde.plasma.keyboardindicator,org.kde.plasma.volume,org.kde.kdeconnect,org.kde.kalendar.contact -shownItems=org.kde.plasma.battery,org.kde.plasma.volume,org.kde.plasma.networkmanagement - -[ScreenMapping] -itemsOnDisabledScreens= diff --git a/.config/plasmanotifyrc b/.config/plasmanotifyrc deleted file mode 100644 index c40bb6a..0000000 --- a/.config/plasmanotifyrc +++ /dev/null @@ -1,5 +0,0 @@ -[Applications][com.nextcloud.desktopclient.nextcloud] -Seen=true - -[Applications][thunderbird] -Seen=true diff --git a/.config/plasmashellrc b/.config/plasmashellrc deleted file mode 100644 index 5d07d31..0000000 --- a/.config/plasmashellrc +++ /dev/null @@ -1,14 +0,0 @@ -[General] -Number of Actions=0 - -[PlasmaTransientsConfig] -PreloadWeight=0 - -[PlasmaViews][Panel 2][Defaults] -thickness=21 - -[PlasmaViews][Panel 2][Horizontal1920] -thickness=21 - -[Updates] -performed=/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/keyboardlayout_remove_shortcut.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/containmentactions_middlebutton.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/digitalclock_migrate_font_settings.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/klipper_clear_config.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/no_middle_click_paste_on_panels.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/systemloadviewer_systemmonitor.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/digitalclock_rename_timezonedisplay_key.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/move_desktop_layout_config.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/unlock_widgets.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/keyboardlayout_migrateiconsetting.js,/run/current-system/sw/share/plasma/shells/org.kde.plasma.desktop/contents/updates/maintain_existing_desktop_icon_sizes.js diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml index 473c5fa..237dd53 100644 --- a/.config/qutebrowser/autoconfig.yml +++ b/.config/qutebrowser/autoconfig.yml @@ -26,6 +26,7 @@ settings: '*://animebytes.tv/*': true '*://bitspyder.net/*': true '*://broadcasthe.net/*': true + '*://diensten.regiobank.nl/*': true '*://gazellegames.net/*': true '*://iptorrents.com/*': true '*://jpopsuki.eu/*': true @@ -60,6 +61,7 @@ settings: content.notifications.enabled: https://fedi.tyil.nl: false https://gazellegames.net: false + https://tv.tyil.nl: true content.webgl: global: false downloads.location.directory: diff --git a/.config/shell/env b/.config/shell/env index b69ce13..fe1e814 100644 --- a/.config/shell/env +++ b/.config/shell/env @@ -7,7 +7,7 @@ export LANG="en_US.UTF-8" export LESSCHARSET="utf-8" # Set favourite applications -export BROWSER="qutebrowser" +export BROWSER="firefox" export EDITOR="vim" export ALTERNATE_EDITOR="ed" diff --git a/.config/shell/functions.d/venv b/.config/shell/functions.d/venv new file mode 100644 index 0000000..c23a02d --- /dev/null +++ b/.config/shell/functions.d/venv @@ -0,0 +1,48 @@ +#!/bin/sh + +venv() { + if ! command -V "venv_$1" | grep -q " function " + then + cat <<EOF +Usage: + venv on + venv off + +Manage the python venv for a given project or directory. + +Commands: + on Enable the venv for \$PWD + off Deactivate the current venv +EOF + + return 1 + fi + + "venv_$1" +} + +venv_on() { + export PYTHON_VENV_DIR="$PWD/.venv" + export VIRTUAL_ENV_DISABLE_PROMPT=1 + + if [ ! -d "$PYTHON_VENV_DIR" ] + then + printf "Initializing venv directory at %s\n" "$PYTHON_VENV_DIR" + python3 -m venv "$PYTHON_VENV_DIR" + fi + + . "$PYTHON_VENV_DIR/bin/activate" +} + +venv_off() { + if [ -z "$PYTHON_VENV_DIR" ] + then + printf "No venv active?\n" + return 1 + fi + + deactivate + + unset PYTHON_VENV_DIR + unset VIRTUAL_ENV_DISABLE_PROMPT +} diff --git a/.config/shell/sources b/.config/shell/sources index 0709911..62a7f7b 100644 --- a/.config/shell/sources +++ b/.config/shell/sources @@ -27,6 +27,13 @@ then PATH="$PATH:/usr/local/share/perl6/vendor/bin" fi +# Python packages +if command -v python >/dev/null 2>&1 +then + PATH="$PATH:$(python -c 'import site; print(":".join(map(lambda x: x + "/usr/bin", site.getsitepackages())))')" + PATH="$PATH:$(python -c 'import site; print(":".join(map(lambda x: x + "/usr/sbin", site.getsitepackages())))')" +fi + # Load color definitions if they exist if [ -f "$HOME/.config/shell/colors/$SHORTSHELL" ] then diff --git a/.config/shell/vendor/bash/feature-auto-completion b/.config/shell/vendor/bash/feature-auto-completion new file mode 160000 +Subproject a18a07b34b37377bb523afa78899259f21d575a diff --git a/.config/shell/vendor/zsh/feature-syntax-highlighting b/.config/shell/vendor/zsh/feature-syntax-highlighting new file mode 160000 +Subproject e0165eaa730dd0fa321a6a6de74f092fe87630b diff --git a/.config/swayidle/config b/.config/swayidle/config new file mode 100644 index 0000000..faee35b --- /dev/null +++ b/.config/swayidle/config @@ -0,0 +1,6 @@ +timeout 30 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' +timeout 45 'loginctl lock-session' + +before-sleep 'loginctl lock-session' + +lock 'swaylock -f -c 000000' diff --git a/.config/swaylock/config b/.config/swaylock/config new file mode 100644 index 0000000..6004b6e --- /dev/null +++ b/.config/swaylock/config @@ -0,0 +1,2 @@ +daemonize +show-failed-attempts diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index 0c5035c..d00104b 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -1,6 +1,6 @@ # spawn applications super + Return - term + ~/.local/bin/term super + alt + Return term -c diff --git a/.config/systemd/user/dapp-.service.d/00-ExecSearchPath.conf b/.config/systemd/user/dapp-.service.d/00-ExecSearchPath.conf new file mode 100644 index 0000000..3fdf3af --- /dev/null +++ b/.config/systemd/user/dapp-.service.d/00-ExecSearchPath.conf @@ -0,0 +1,4 @@ +[Service] +ExecSearchPath=%h/.local/bin +ExecSearchPath=/usr/local/bin +ExecSearchPath=/usr/bin diff --git a/.config/systemd/user/dapp-.service.d/00-WorkingDirectory.conf b/.config/systemd/user/dapp-.service.d/00-WorkingDirectory.conf new file mode 100644 index 0000000..d99a24c --- /dev/null +++ b/.config/systemd/user/dapp-.service.d/00-WorkingDirectory.conf @@ -0,0 +1,2 @@ +[Service] +WorkingDirectory=%h diff --git a/.config/systemd/user/dapp-bg-.service.d/00-Restart.conf b/.config/systemd/user/dapp-bg-.service.d/00-Restart.conf new file mode 100644 index 0000000..8a764e3 --- /dev/null +++ b/.config/systemd/user/dapp-bg-.service.d/00-Restart.conf @@ -0,0 +1,2 @@ +[Service] +Restart=always diff --git a/.config/systemd/user/dapp-bg-chwp.service b/.config/systemd/user/dapp-bg-chwp.service new file mode 100644 index 0000000..0aed15a --- /dev/null +++ b/.config/systemd/user/dapp-bg-chwp.service @@ -0,0 +1,12 @@ +[Unit] +Description=Change the wallpaper used in Xorg +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=oneshot +ExecStart=chwp +Restart=on-failure + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-chwp.service.d/00-Restart.conf b/.config/systemd/user/dapp-bg-chwp.service.d/00-Restart.conf new file mode 100644 index 0000000..eedb19c --- /dev/null +++ b/.config/systemd/user/dapp-bg-chwp.service.d/00-Restart.conf @@ -0,0 +1,2 @@ +[Service] +Restart=on-failure diff --git a/.config/systemd/user/dapp-bg-chwp.timer b/.config/systemd/user/dapp-bg-chwp.timer new file mode 100644 index 0000000..947b3e0 --- /dev/null +++ b/.config/systemd/user/dapp-bg-chwp.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Change the wallpaper on a regular schedule +Requires=dapp-bg-chwp.service + +[Timer] +Unit=dapp-bg-chwp.service +OnUnitInactiveSec=1h + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-dunst.service b/.config/systemd/user/dapp-bg-dunst.service new file mode 100644 index 0000000..d74d5b2 --- /dev/null +++ b/.config/systemd/user/dapp-bg-dunst.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run dunst +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=/usr/bin/dunst + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-ntfy@.service b/.config/systemd/user/dapp-bg-ntfy@.service new file mode 100644 index 0000000..bbf914c --- /dev/null +++ b/.config/systemd/user/dapp-bg-ntfy@.service @@ -0,0 +1,12 @@ +[Unit] +Description=Run ntfy +After=network.target +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=ntfy subscribe "%i" 'notify-send "$t" "$m"' + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-redshift.service b/.config/systemd/user/dapp-bg-redshift.service new file mode 100644 index 0000000..fe996e9 --- /dev/null +++ b/.config/systemd/user/dapp-bg-redshift.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run redshift +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=redshift -l 51.50:4.59 -t 6500:3500 + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-sxhkd.service b/.config/systemd/user/dapp-bg-sxhkd.service new file mode 100644 index 0000000..f345544 --- /dev/null +++ b/.config/systemd/user/dapp-bg-sxhkd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run the Simple X HotKey Daemon +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=/usr/bin/sxhkd + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-bg-xcompmgr.service b/.config/systemd/user/dapp-bg-xcompmgr.service new file mode 100644 index 0000000..153ca81 --- /dev/null +++ b/.config/systemd/user/dapp-bg-xcompmgr.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run the X Compositing Manager +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=xcompmgr + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-.service.d/00-Restart.conf b/.config/systemd/user/dapp-fg-.service.d/00-Restart.conf new file mode 100644 index 0000000..eedb19c --- /dev/null +++ b/.config/systemd/user/dapp-fg-.service.d/00-Restart.conf @@ -0,0 +1,2 @@ +[Service] +Restart=on-failure diff --git a/.config/systemd/user/dapp-fg-chromium.service b/.config/systemd/user/dapp-fg-chromium.service new file mode 100644 index 0000000..48a8283 --- /dev/null +++ b/.config/systemd/user/dapp-fg-chromium.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=chromium + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-firefox.service b/.config/systemd/user/dapp-fg-firefox.service new file mode 100644 index 0000000..0d434cc --- /dev/null +++ b/.config/systemd/user/dapp-fg-firefox.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=firefox + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-gajim.service b/.config/systemd/user/dapp-fg-gajim.service new file mode 100644 index 0000000..0ed24f0 --- /dev/null +++ b/.config/systemd/user/dapp-fg-gajim.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=gajim + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-irc.service b/.config/systemd/user/dapp-fg-irc.service new file mode 100644 index 0000000..91cba0e --- /dev/null +++ b/.config/systemd/user/dapp-fg-irc.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=irc + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-keepassxc.service b/.config/systemd/user/dapp-fg-keepassxc.service new file mode 100644 index 0000000..f93cfac --- /dev/null +++ b/.config/systemd/user/dapp-fg-keepassxc.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=keepassxc + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-networkmanager.service b/.config/systemd/user/dapp-fg-networkmanager.service new file mode 100644 index 0000000..63b74b0 --- /dev/null +++ b/.config/systemd/user/dapp-fg-networkmanager.service @@ -0,0 +1,11 @@ +[Unit] +Description=Manage an x11 application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=nm-applet + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/dapp-fg-nextcloud.service b/.config/systemd/user/dapp-fg-nextcloud.service new file mode 100644 index 0000000..7f175fd --- /dev/null +++ b/.config/systemd/user/dapp-fg-nextcloud.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run the Nextcloud desktop application +After=graphical-session.target +Requires=graphical-session.target + +[Service] +Type=exec +ExecStart=nextcloud + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/plasma-awesome_x11.service b/.config/systemd/user/plasma-awesome_x11.service deleted file mode 100644 index add09db..0000000 --- a/.config/systemd/user/plasma-awesome_x11.service +++ /dev/null @@ -1,11 +0,0 @@ -[Install] -WantedBy=plasma-workspace.target - -[Unit] -Description=AwesomeWM for use as WM for KDE -Before=plasma-workspace.target - -[Service] -ExecStart=%h/.local/bin/awesome -Slice=session.slice -Restart=on-failure diff --git a/.config/systemd/user/plasma-herbstluftwm_x11.service b/.config/systemd/user/plasma-herbstluftwm_x11.service deleted file mode 100644 index d18f09e..0000000 --- a/.config/systemd/user/plasma-herbstluftwm_x11.service +++ /dev/null @@ -1,11 +0,0 @@ -[Install] -WantedBy=plasma-workspace.target - -[Unit] -Description = KDE Plasma with HerbstluftWM -Before = plasma-workspace.target - -[Service] -ExecStart = %h/.local/bin/herbstluftwm -Slice = session.slice -Restart = on-failure diff --git a/.config/systemd/user/plasma-kwin_x11.service b/.config/systemd/user/plasma-kwin_x11.service deleted file mode 120000 index dc1dc0c..0000000 --- a/.config/systemd/user/plasma-kwin_x11.service +++ /dev/null @@ -1 +0,0 @@ -/dev/null
\ No newline at end of file diff --git a/.config/systemd/user/plasma-workspace.target.wants/plasma-awesome_x11.service b/.config/systemd/user/plasma-workspace.target.wants/plasma-awesome_x11.service deleted file mode 120000 index 376c5dd..0000000 --- a/.config/systemd/user/plasma-workspace.target.wants/plasma-awesome_x11.service +++ /dev/null @@ -1 +0,0 @@ -/home/tyil/.config/systemd/user/plasma-awesome_x11.service
\ No newline at end of file diff --git a/.config/systemd/user/wsys-.service.d/00-Target.conf b/.config/systemd/user/wsys-.service.d/00-Target.conf new file mode 100644 index 0000000..d80f469 --- /dev/null +++ b/.config/systemd/user/wsys-.service.d/00-Target.conf @@ -0,0 +1,6 @@ +[Service] +ExecStartPost=systemctl --user --no-block start wsys-xorg.target +ExecStartPost=systemctl --user --no-block start wsys.target + +ExecStopPost=systemctl --user stop wsys.target +ExecStopPost=systemctl --user stop wsys-xorg.target diff --git a/.config/systemd/user/wsys-xorg.service b/.config/systemd/user/wsys-xorg.service new file mode 100644 index 0000000..8c7a43a --- /dev/null +++ b/.config/systemd/user/wsys-xorg.service @@ -0,0 +1,20 @@ +# Ensure you are allowed to run X.org as a regular non-console user! + +# /etc/X11/Xwrapper.conf +# allowed_users=anybody +# needs_root_rights=yes + +[Unit] +Description=Xorg server at display :0 + +Requires=wsys-xorg.socket +After=wsys-xorg.socket +Before=wsys.target + +[Service] +Type=simple +SuccessExitStatus=0 1 + +ExecStart=/usr/bin/Xorg :0 -nolisten tcp -noreset -verbose 2 "vt1" +ExecStartPost=systemctl --user import-environment DISPLAY +ExecStartPost=systemctl --user import-environment XAUTHORITY diff --git a/.config/systemd/user/wsys-xorg.socket b/.config/systemd/user/wsys-xorg.socket new file mode 100644 index 0000000..f471dab --- /dev/null +++ b/.config/systemd/user/wsys-xorg.socket @@ -0,0 +1,5 @@ +[Unit] +Description=Socket for xorg at display :1 + +[Socket] +ListenStream=/tmp/.X11-unix/X1 diff --git a/.config/systemd/user/wsys-xorg.target b/.config/systemd/user/wsys-xorg.target new file mode 100644 index 0000000..248722e --- /dev/null +++ b/.config/systemd/user/wsys-xorg.target @@ -0,0 +1,3 @@ +[Unit] +Before = wsys.target +Description = Window System managed by X.org diff --git a/.config/systemd/user/wsys.target b/.config/systemd/user/wsys.target new file mode 100644 index 0000000..60a9c9f --- /dev/null +++ b/.config/systemd/user/wsys.target @@ -0,0 +1,2 @@ +[Unit] +Description = Window System diff --git a/.config/systemd/user/xss-lock.service b/.config/systemd/user/xss-lock.service new file mode 100644 index 0000000..7b059d6 --- /dev/null +++ b/.config/systemd/user/xss-lock.service @@ -0,0 +1,12 @@ +[Unit] +Description=Start xss-lock +PartOf=graphical-session.target + +[Service] +Type=exec +Environment=DISPLAY=:0 +ExecStart=/usr/bin/xss-lock -- i3lock -c '#000000' -n +Restart=on-failure + +[Install] +WantedBy=desktop-x11.target diff --git a/.config/systemsettingsrc b/.config/systemsettingsrc deleted file mode 100644 index cbb7ae9..0000000 --- a/.config/systemsettingsrc +++ /dev/null @@ -1,21 +0,0 @@ -[KFileDialog Settings] -Recent Files[$e]=redshift.sh,file:$HOME/kde.kksrc,file:$HOME/.local/etc/autostart/redshift.sh -Recent URLs[$e]=file:$HOME/.local/etc/,file:$HOME/,file:$HOME/.local/etc/autostart/ -detailViewIconSize=16 - -[MainWindow] -MenuBar=Disabled -State=AAAA/wAAAAD9AAAAAAAAA/wAAAP6AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAWAG0AYQBpAG4AVABvAG8AbABCAGEAcgAAAAAA/////wAAAAAAAAAA -ToolBarsMovable=Disabled -eDP=eDP -eDP Height 1920x1080 eDP=1018 -eDP Width 1920x1080 eDP=1020 -eDP XPosition 1920x1080 eDP=10 -eDP YPosition 1920x1080 eDP=31 - -[Open-with settings] -CompletionMode=1 -History=qute,ala,thun,next - -[systemsettings_sidebar_mode] -HighlightNonDefaultSettings=true diff --git a/.config/waybar/config-hyprland.json b/.config/waybar/config-hyprland.json new file mode 100644 index 0000000..a82cd37 --- /dev/null +++ b/.config/waybar/config-hyprland.json @@ -0,0 +1,24 @@ +{ + "name": "waybar-bot", + "layer": "top", + "position": "bottom", + "height": 20, + "spacing": 4, + "modules-left": [ + "hyprland/workspaces" + ], + "modules-center": [ + ], + "modules-right": [ + ], + "hyprland/workspaces": { + "persistent-workspaces": { + "*": 9 + }, + "sort": "number" + }, + "hyprland/window": { + "max-length": 200, + "seperate-outputs": true + } +} diff --git a/.config/waybar/config.json b/.config/waybar/config.json new file mode 100644 index 0000000..880565f --- /dev/null +++ b/.config/waybar/config.json @@ -0,0 +1,94 @@ +{ + "name": "waybar-top", + "layer": "top", + "position": "top", + "height": 20, + "spacing": 2, + "modules-left": [ + "cpu", + "memory", + "network" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "pulseaudio", + "temperature", + "backlight", + "battery", + "idle_inhibitor", + "tray" + ], + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "๏ฎ", + "deactivated": "๏ฐ" + } + }, + "tray": { + "spacing": 4 + }, + "clock": { + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "CPU: {load}", + "tooltip": false + }, + "memory": { + "format": "RAM: {used}Gi/{total}Gi" + }, + "temperature": { + "critical-threshold": 80, + "format": "{temperatureC}ยฐC ๐ซ " + }, + "backlight": { + "format": "{percent}% ๐ก", + "on-scroll-up": "bl inc 1", + "on-scroll-down": "bl dec 1" + }, + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% ๐", + "format-charging": "{capacity}% โก", + "format-plugged": "{capacity}% ๐", + "format-alt": "{time} {icon}" + }, + "network": { + "interface": "wlp*", + "interval": 1, + "format": "RX: {bandwidthDownBits} / TX: {bandwidthUpBits}", + "format-wifi": "RX: {bandwidthDownBits} / TX: {bandwidthUpBits}" + }, + "pulseaudio": { + "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", + "on-scroll-up": "vol inc 1", + "on-scroll-down": "vol dec 1", + "on-click-right": "vol toggle" + } +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..e322c10 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,140 @@ +* { + font-family: Monospace; + font-size: 12px; +} + +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window.waybar-top { + border-bottom: 1px solid rgba(100, 114, 125, 0.5); +} + +window.waybar-bot { + border-top: 1px solid rgba(100, 114, 125, 0.5); +} + +window#waybar.hidden { + opacity: 0.2; +} + +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; +} + +#workspaces button { + padding: 0 5px; + 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; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 4px; + color: #ffffff; + background-color: rgba(53, 58, 69, 0.5); +} + +#clock { + background-color: inherit; +} + +#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; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#wireplumber { + color: #000000; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9e22cac --- /dev/null +++ b/.gitmodules @@ -0,0 +1,63 @@ +[submodule ".config/shell/vendor/bash/feature-auto-completion"] + path = .config/shell/vendor/bash/feature-auto-completion + url = https://github.com/scop/bash-completion.git +[submodule ".vim/bundle/feature-camelcasemotion"] + path = .vim/bundle/feature-camelcasemotion + url = https://github.com/tyil/camelcasemotion.git +[submodule ".vim/bundle/feature-rainbow-parenthesis"] + path = .vim/bundle/feature-rainbow-parenthesis + url = https://github.com/luochen1990/rainbow +[submodule ".vim/bundle/syntax-go"] + path = .vim/bundle/syntax-go + url = https://github.com/fatih/vim-go +[submodule ".vim/bundle/syntax-hcl"] + path = .vim/bundle/syntax-hcl + url = https://github.com/jvirtanen/vim-hcl.git +[submodule ".vim/bundle/syntax-helm"] + path = .vim/bundle/syntax-helm + url = https://github.com/towolf/vim-helm +[submodule ".vim/bundle/syntax-ledger"] + path = .vim/bundle/syntax-ledger + url = https://github.com/ledger/vim-ledger +[submodule ".vim/bundle/syntax-markdown"] + path = .vim/bundle/syntax-markdown + url = https://github.com/plasticboy/vim-markdown +[submodule ".vim/bundle/syntax-mustache"] + path = .vim/bundle/syntax-mustache + url = https://github.com/mustache/vim-mustache-handlebars +[submodule ".vim/bundle/syntax-raku"] + path = .vim/bundle/syntax-raku + url = https://github.com/raku/vim-raku.git +[submodule ".vim/bundle/syntax-terraform"] + path = .vim/bundle/syntax-terraform + url = https://github.com/hashivim/vim-terraform +[submodule ".vim/bundle/syntax-todo"] + path = .vim/bundle/syntax-todo + url = https://github.com/freitass/todo.txt-vim.git +[submodule ".vim/bundle/syntax-toml"] + path = .vim/bundle/syntax-toml + url = https://github.com/cespare/vim-toml.git +[submodule ".vim/bundle/theme-codedark"] + path = .vim/bundle/theme-codedark + url = https://github.com/tomasiser/vim-code-dark +[submodule ".vim/bundle/theme-colorsbox"] + path = .vim/bundle/theme-colorsbox + url = https://github.com/mkarmona/colorsbox.git +[submodule ".vim/bundle/theme-jellybeans"] + path = .vim/bundle/theme-jellybeans + url = https://github.com/nanotech/jellybeans.vim.git +[submodule ".vim/bundle/theme-molokai"] + path = .vim/bundle/theme-molokai + url = https://github.com/tomasr/molokai.git +[submodule ".weechat/vendor/protocol-slack"] + path = .weechat/vendor/protocol-slack + url = https://github.com/wee-slack/wee-slack +[submodule ".config/shell/vendor/zsh/feature-syntax-highlighting"] + path = .config/shell/vendor/zsh/feature-syntax-highlighting + url = https://github.com/zsh-users/zsh-syntax-highlighting.git +[submodule ".vim/bundle/syntax-blade"] + path = .vim/bundle/syntax-blade + url = https://github.com/jwalton512/vim-blade +[submodule ".config/awesome/awesome-wm-widgets"] + path = .config/awesome/awesome-wm-widgets + url = https://github.com/streetturtle/awesome-wm-widgets.git diff --git a/.local/bin/bl b/.local/bin/bl index da1980e..ee71504 100755 --- a/.local/bin/bl +++ b/.local/bin/bl @@ -29,13 +29,25 @@ main() case "$1" in inc) - xbacklight -inc ${2:-5} + brightnessctl set +${2:-5}% notify="Brightness increased to $(brightness_level)%" ;; dec) - xbacklight -dec ${2:-5} + if [ $(brightness_level) -lt $(( ${2:-5} + 1 )) ] + then + brightnessctl set 1 + else + brightnessctl set ${2:-5}%- + fi + notify="Brightness lowered to $(brightness_level)%" ;; + set) + [ -z "$2" ] && usage && exit 1 + + brightnessctl set $2% + notify="Brightness set to $(brightness_level)%" + ;; esac notify-send -n 57492 -s -t 2 -i "$(brightness_icon)" "Backlight" "$notify" @@ -43,7 +55,7 @@ main() brightness_level() { - xbacklight -get + awk "BEGIN { printf(\"%d\", ($(brightnessctl get) / $(brightnessctl max)) * 100) }" } brightness_icon() @@ -61,8 +73,16 @@ usage() cat <<EOF Usage: ${0##*/} -h + ${0##*/} inc [level] + ${0##*/} dec [level] + ${0##*/} set <level> + +Alter the backlight intensity. -Nondescript +Subcommands: + inc Increase the volume by level, defaults to 5. + dec Decrease the volume by level, defaults to 5. + set Set the volume to level. Options: -h Show this help text and exit. diff --git a/.local/bin/notify-send b/.local/bin/count index 8dc67a0..cc02a71 100755 --- a/.local/bin/notify-send +++ b/.local/bin/count @@ -13,15 +13,10 @@ main() { # Handle opts - while getopts ":a:hi:n:st:" opt + while getopts ":h" opt do case "$opt" in - a) app=$OPTARG ;; h) usage && exit 0 ;; - i) icon=$OPTARG ;; - n) id=$OPTARG ;; - s) silent=1 ;; - t) timeout=$OPTARG ;; *) printf "Invalid option passed: %s\n" "$OPTARG" >&2 ;; @@ -30,34 +25,7 @@ main() shift $(( OPTIND - 1 )) - [ $# -lt 1 ] && usage && exit 1 - - if [ -z "$id" ] - then - id=$(awk -v min=10 -v max=10000 'BEGIN { srand(); print int(min+rand() * (max-min+1)) }') - fi - - gdbus call \ - --session \ - --dest org.freedesktop.Notifications \ - --object-path /org/freedesktop/Notifications \ - --method org.freedesktop.Notifications.Notify \ - "$app" \ - "$id" \ - "$icon" \ - "$1" \ - "$2" \ - "[]" \ - "{}" \ - "$((${timeout:-10} * 1000))" \ - > /dev/null - - if [[ -z "$silent" ]] - then - printf "%d\n" "$id" - fi - - exit 0 + cat - | sort | uniq -c | sort -h } usage() @@ -66,7 +34,7 @@ usage() Usage: ${0##*/} -h -Nondescript +Count occurrences of unique lines. Options: -h Show this help text and exit. diff --git a/.local/bin/dmenu b/.local/bin/dmenu index 78cdf52..6c1494b 100755 --- a/.local/bin/dmenu +++ b/.local/bin/dmenu @@ -1,8 +1,20 @@ #!/usr/bin/env sh -if ! command -v rofi > /dev/null -then - exec /usr/bin/dmenu "$@" -fi +main() { + if [ -n "$WAYLAND_DISPLAY" ] + then + exec fuzzel --dmenu "$@" + fi -exec rofi -dmenu "$@" + if [ -n "$DISPLAY" ] + then + if command -v rofi > /dev/null + then + exec rofi -dmenu "$@" + fi + + exec /usr/bin/dmenu "$@" + fi +} + +main "$@" diff --git a/.local/bin/hyprland-switch-tag b/.local/bin/hyprland-switch-tag new file mode 100755 index 0000000..06840c9 --- /dev/null +++ b/.local/bin/hyprland-switch-tag @@ -0,0 +1,161 @@ +#!/usr/bin/env bash + +# Pascal Jaeger <pascal.jaeger@leimstift.de> + +# utils +green="\033[0;32m" +red="\033[0;31m" +blue="\033[0;34m" +nocolor="\033[0m" + +#util functions +check() { + command -v "$1" 1>/dev/null +} + +ok() { + echo -e "[$green ๎ฎฑ $nocolor] $*" +} + +err() { + echo -e "[$red ๏ $nocolor] $*" +} +optional() { + echo -e "[$blue ๏ $nocolor] $*" +} + +notify() { + # shellcheck disable=SC2015 + check notify-send && { + notify-send "$@" + } || { + echo "$@" + } +} + +checkUtils() { + # shellcheck disable=SC2015 + check grep && ok "grep" || err "grep" + # shellcheck disable=SC2015 + check grep && ok "cut" || err "cut" + # shellcheck disable=SC2015 + check notify-send && ok "notify-send (Optional)" || optional "notify-send (Optional)" + exit +} + +basicChecks() { + check hyprctl || { + notify "Seriously mate!!" "Start Hyprland before this script" + exit 1 + } + pgrep -x Hyprland &>/dev/null || { + notify "Make Sure Hyprland Session is running." + exit 1 + } +} + +help() { + cat <<EOF + This is a bash script to move arbitrary workspace to arbritrary monitor and to swap workspaces between + monitors if the desired workspace is already active on a monitor for Hyprland using hyprctl. + + flags: + -h: Displays This help menu + -c: Checks for all dependencies + + Usage: try_swap_workspace [WORKSPACE] + bind = ALT,1,exec, /path/to/try_swap_workspace/binary 1 + (where the last 1 is the workspace that should be shown on the currently active monitor) + +EOF +} + +getArgs() { + while [ "$#" -gt 0 ]; do + case "$1" in + -h | --help) + help + exit 0 + ;; + -c) + checkUtils + ;; + (*[!0-9]*) + # contains non-numbers + help + echo "" + echo "Wrong argument given" + exit 1 + ;; + *) + # only nubers left, so good + switch_or_swap "$1" + ;; + esac + shift + done +} + + +#variables +mon_wrkspcs=() + +get_active_mon() { + echo $(($(hyprctl monitors | grep 'focused' | grep -n 'yes' | cut -c1)-1)) +} + +get_workspaces_array() { + local workspaces + workspaces=$(hyprctl monitors | grep 'active workspace' | cut -f3 -d' ') + SAVEIFS=$IFS + IFS=$'\n' + mon_wrkspcs=($workspaces) + IFS=$SAVEIFS +} + +# first argument: workspace to switch to +# second argument: monitor to switch workspace on +switch_workspace() { + local target_wrkspc=$1 + local target_mon=$2 + hyprctl dispatch moveworkspacetomonitor "$target_wrkspc" "$target_mon" + hyprctl dispatch workspace "$target_wrkspc" +} +# first argument: monitor the workspace should go to +# second argument: monitor the workspace is currently displayed on +swap_workspace() { + local target_mon=$1 + local source_mon=$2 + hyprctl dispatch swapactiveworkspaces "$target_mon" "$source_mon" +} + +# first argument: workspace to switch to active monitor +switch_or_swap() { + target_mon=$(get_active_mon) + target_wrkspc=$1 + get_workspaces_array + # check if the workspace is currently displayed on another monitor + local currently_active_on_mon=-1 + for (( i=0; i<${#mon_wrkspcs[@]}; i++ )) + do + if [[ "$target_wrkspc" == "${mon_wrkspcs[$i]}" ]]; then + currently_active_on_mon=$i + fi + done + if [[ $currently_active_on_mon -lt 0 ]]; then + # workspace is not active on any monitor, do a normal switch + ok "switching workspace $target_wrkspc to monitor $target_mon" + switch_workspace "$target_wrkspc" "$target_mon" + else + # workspace is already active on other monitor, swap workspaces between monitor + ok "swapping workspaces between $target_mon to monitor $currently_active_on_mon" + swap_workspace "$target_mon" "$currently_active_on_mon" + fi +} + +main() { + basicChecks + getArgs "$@" +} + +main "$@" diff --git a/.local/bin/import-pape b/.local/bin/import-pape new file mode 100755 index 0000000..b72c169 --- /dev/null +++ b/.local/bin/import-pape @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +readonly PAPEDIR="$HOME/pictures/wallpapers" + +main() { + for s in "$@" + do + local format="$(identify -format "%m" "$s" | awk '{ print(tolower($0)) }')" + local resolution="$(identify -format "%wx%h" "$s")" + local hash="$(sha1sum "$s" | awk '{ print $1 }')" + local destination="$PAPEDIR/$resolution/$hash.$format" + + mkdir -pv -- "$PAPEDIR/$resolution" + printf "Importing %s to %s\n" "$s" "$destination" + mv -- "$s" "$destination" + done +} + +main "$@" diff --git a/.local/bin/ipass b/.local/bin/ipass index b19137a..4f555e4 100755 --- a/.local/bin/ipass +++ b/.local/bin/ipass @@ -1,19 +1,51 @@ #! /usr/bin/env sh -main() -{ +main() { cd -- "$HOME/.password-store" || exit 1 - file="$(find ./* -type f | sed 's-^\./--' | sed 's-\.gpg$--' | dmenu)" - dmenu_exit=$? + if [ -n "$WAYLAND_DISPLAY" ] + then + file="$(pass_list | fuzzel -d)" + pass_get "$file" | wl-copy + + notify "Copied $file to clipboard!" + exit 0 + fi - if [ "$dmenu_exit" -ne 0 ] + if [ -n "$DISPLAY" ] then - exit 2 + file="$(pass_list | dmenu)" + pass_get "$file" | xdotool type --file - + dmenu_exit=$? + + if [ "$dmenu_exit" -ne 0 ] + then + notify "Error typing $file" + exit 2 + fi + + notify "Typing $file" + + exit 0 fi - pass show "$file" | head -n 1 | perl -pe 'chomp' | xdotool type --file - - notify-send -i "dialog-password" "ipass" "$file" + notify "No graphical environment detected" +} + +pass_list() { + find ./* -type f \ + | sed 's-^\./--' \ + | sed 's-\.gpg$--' +} + +pass_get() { + pass show "$1" \ + | head -n 1 \ + | perl -pe 'chomp' +} + +notify() { + notify-send -i "dialog-password" "ipass" "$*" } main "$@" diff --git a/.local/bin/irc b/.local/bin/irc new file mode 120000 index 0000000..3da827c --- /dev/null +++ b/.local/bin/irc @@ -0,0 +1 @@ +../share/wrapper.sh
\ No newline at end of file diff --git a/.local/bin/krokify b/.local/bin/krokify new file mode 100755 index 0000000..a01c1f6 --- /dev/null +++ b/.local/bin/krokify @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import argparse +import base64 +import sys +import zlib + +def main(): + arg_parser = argparse.ArgumentParser( + prog='krokify', + description='Turn a given file into a kroki link', + ) + arg_parser.add_argument("file", default="-", help="Path to the file to krokify, or - to read from stdin") + arg_parser.add_argument("-f", "--format", default="svg", help="Which output format to use") + arg_parser.add_argument("-s", "--service", required=True, help="Which back-end service to use") + arg_parser.add_argument("-u", "--base-url", default="https://kroki.tyil.nl", help="The base URL of the Kroki server") + + args = arg_parser.parse_args() + + if args.file == "-": + stream = sys.stdin + else: + stream = open(args.file, "r") + + url = base64.urlsafe_b64encode(zlib.compress(stream.read().encode('utf-8'), 9)).decode('ascii') + + print(f"{args.base_url}/{args.service}/{args.format}/{url}") + +if __name__ == "__main__": + main() diff --git a/.local/bin/kubectl-rageclean-pod b/.local/bin/kubectl-rageclean-pod new file mode 100755 index 0000000..bbd3ba7 --- /dev/null +++ b/.local/bin/kubectl-rageclean-pod @@ -0,0 +1,17 @@ +#!/usr/bin/env sh + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. + +main() { + kubectl delete pod --force --grace-period=0 "$@" +} + +main "$@" diff --git a/.local/bin/kubectl-secret b/.local/bin/kubectl-secret new file mode 100755 index 0000000..ab2e924 --- /dev/null +++ b/.local/bin/kubectl-secret @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. + +import argparse +import base64 +import sys + +import ruamel.yaml +import ruamel.yaml.scalarstring + +def main(): + argparser = argparse.ArgumentParser(description="Encode or decode Kubernetes Secrets.") + argparser.add_argument("mode", help="Mode of operation, either encode or decode.", choices=["encode", "decode"]) + argparser.add_argument("path", help="Path to the file to operate on. If set to -, STDIN will be used instead.", default="-", nargs="?") + + args = argparser.parse_args() + yaml = ruamel.yaml.YAML() + + # Deduce whether to read from STDIN or open a file handle to a given path + if args.path == "-": + buffer = sys.stdin + else: + buffer = open(args.path) + + # Load the manifest + manifest = yaml.load(buffer.read()) + + # Handle any known potential issues + if not "kind" in manifest: + print("No kind in manifest", file=sys.stderr) + return 3 + + if manifest["kind"] != "Secret": + print("Not a secret", file=sys.stderr) + return 4 + + if not "data" in manifest: + manifest["data"] = {} + + # Call appropriate function with the manifest + manifest = globals()["secret_" + args.mode](manifest) + + # Write the processed manifest back as yaml + yaml.dump(manifest, sys.stdout) + + return 0 + +def secret_decode(manifest): + for key in manifest["data"].keys(): + # Decode the data + manifest["data"][key] = base64.b64decode(manifest["data"][key]).decode("utf-8") + + # Turn this element into a block quoted string if there are newlines + if "\n" in manifest["data"][key]: + manifest["data"][key] = ruamel.yaml.scalarstring.LiteralScalarString(manifest["data"][key]) + + return manifest + +def secret_encode(manifest): + for key in manifest["data"].keys(): + # Encode the data + manifest["data"][key] = base64.b64encode(str(manifest["data"][key]).encode("utf-8")).decode("utf-8") + + return manifest + +if __name__ == '__main__': + sys.exit(main()) diff --git a/.local/bin/media-import b/.local/bin/media-import new file mode 100755 index 0000000..a1a99b2 --- /dev/null +++ b/.local/bin/media-import @@ -0,0 +1,53 @@ +#!/bin/bash + +main() { + # Show help + if (( $# < 2 )) + then + echo "You need help" + return 2 + fi + + # Set the paths + local basedir="${MEDIA_BASEDIR:-/var/media}" + local mediadir="$basedir/$1" ; shift + + # Ask for confirmation through a keypress + printf "Going to import %d URIs to %s...\n" "$#" "$mediadir" + read -s -n1 + + # Loop over all given args + for uri in "$@" + do + case "$uri" in + http://*) import_http "$mediadir" "$uri" ;; + https://*) import_http "$mediadir" "$uri" ;; + *) import_local "$mediadir" "$uri" ;; + esac + done +} + +import_http() { + local dest="$1" ; shift + local uri="$1" ; shift + local temp="$(mktemp)" + + wget -c -O "$temp" "$uri" + + local output="$(import_local "$dest" "$temp" | awk '{ print $NF }')" + + printf "%s -> %s\n" "$uri" "$output" +} + +import_local() { + local dest="$1" ; shift + local uri="$1" ; shift + local hash="$(sha1sum "$uri" | awk '{ print $1 }')" + local ext="$(identify "$uri" | awk '{ print tolower($2) }')" + local out="$dest/$hash.$ext" + + mv -- "$uri" "$out" + printf "%s -> %s\n" "$uri" "$out" +} + +main "$@" diff --git a/.local/bin/updot b/.local/bin/updot new file mode 100755 index 0000000..f0179ad --- /dev/null +++ b/.local/bin/updot @@ -0,0 +1,63 @@ +#!/bin/sh + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. + +main() +{ + DOTFILES_REMOTE="origin" + DOTFILES_BRANCH="master" + + # Handle opts + while getopts ":h" opt + do + case "$opt" in + b) DOTFILES_BRANCH="$OPTARG" ;; + h) usage && exit 0 ;; + u) DOTFILES_REMOTE="$OPTARG" ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done + + shift $(( OPTIND - 1 )) + + # Stash any pending changes + git -C "$HOME" stash + + # Update the main repository + git -C "$HOME" fetch "$DOTFILES_REMOTE" "$DOTFILES_BRANCH" + git -C "$HOME" reset --hard "$DOTFILES_REMOTE/$DOTFILES_BRANCH" + + # Pull updates for all submodules + git -C "$HOME" submodule update --init --recursive --remote + + # Apply the stash + git -C "$HOME" stash apply +} + +usage() +{ + cat <<EOF +Usage: + ${0##*/} -h + ${0##*/} [-b <branch>] [-u <remote>] + +Utility application for dotfile maintenance. + +Options: + -b The name of the branch to use, defaults to "master" + -h Show this help text and exit. + -u The name of the remote to use, defaults to "origin" +EOF +} + +main "$@" diff --git a/.local/bin/vol b/.local/bin/vol index 8993689..84c913e 100755 --- a/.local/bin/vol +++ b/.local/bin/vol @@ -40,6 +40,8 @@ main() notify="Decreased '$DEFAULT_SINK_NAME' ($DEFAULT_SINK_INDEX) to $(volume_level)%" ;; set) + [ -z "$2" ] && usage && exit 1 + pactl set-sink-volume @DEFAULT_SINK@ $2% > /dev/null notify="Set '$DEFAULT_SINK_NAME' ($DEFAULT_SINK_INDEX) to $(volume_level)%" ;; diff --git a/.local/bin/x b/.local/bin/x index d00fda0..a47b1bc 100755 --- a/.local/bin/x +++ b/.local/bin/x @@ -12,7 +12,10 @@ then exit 1 fi - cp -v -- "$HOME/.local/etc/x/xinit.d/$1.rc" "$HOME/.xinitrc" + cat \ + "$HOME/.local/etc/x/xinitrc" \ + "$HOME/.local/etc/x/xinit.d/$1.rc" \ + > "$HOME/.xinitrc" fi # Make sure the xinitrc exists, just in case @@ -23,4 +26,6 @@ then fi # start the X session -exec startx +startx +systemctl --user stop desktop-x11.target +systemctl --user stop desktop.target diff --git a/.local/bin/xdg-open b/.local/bin/xdg-open deleted file mode 120000 index ce4a72b..0000000 --- a/.local/bin/xdg-open +++ /dev/null @@ -1 +0,0 @@ -open
\ No newline at end of file diff --git a/.local/etc/wrapper.d/firefox.sh b/.local/etc/wrapper.d/firefox.sh index a47d1a4..af0905d 100644 --- a/.local/etc/wrapper.d/firefox.sh +++ b/.local/etc/wrapper.d/firefox.sh @@ -3,10 +3,12 @@ WRAPPER_BINS=" /usr/bin/librewolf /usr/bin/librewolf-bin + /usr/bin/firefox + /usr/bin/firefox-esr + /usr/bin/firefox-bin + /run/current-system/sw/bin/firefox " WRAPPER_OPTS=" --profile $HOME/.config/firefox " - -FIREJAIL_PROFILE="$HOME/.local/etc/firejail/firefox.profile" diff --git a/.local/etc/wrapper.d/irc.sh b/.local/etc/wrapper.d/irc.sh new file mode 100644 index 0000000..965abfa --- /dev/null +++ b/.local/etc/wrapper.d/irc.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +WRAPPER_BINS=" + /usr/bin/alacritty +" + +WRAPPER_OPTS=" + --class irc + --command mosh oolah .local/bin/ta irc +" diff --git a/.local/etc/x/autostart b/.local/etc/x/autostart new file mode 100644 index 0000000..f2f32ba --- /dev/null +++ b/.local/etc/x/autostart @@ -0,0 +1,9 @@ +redshift -l 51.50:4.59 -t 6500:3500 +dunst +sxhkd +chwp +xcompmgr +xss-lock -- i3lock -c '#000000' -n +ntfy subscribe --from-config +nm-applet +albert diff --git a/.local/etc/x/xinit.d/awesome.rc b/.local/etc/x/xinit.d/awesome.rc index bd004e8..a5f5e37 100644 --- a/.local/etc/x/xinit.d/awesome.rc +++ b/.local/etc/x/xinit.d/awesome.rc @@ -1,7 +1 @@ -sxhkd & -chwp & -xcompmgr & - -nm-applet & - exec dbus-launch --exit-with-session awesome diff --git a/.local/etc/x/xinitrc b/.local/etc/x/xinitrc index 3b10135..3d0f0d9 100644 --- a/.local/etc/x/xinitrc +++ b/.local/etc/x/xinitrc @@ -1,18 +1,4 @@ -# start dbus if necessary -[ -f "/etc/X11/xinit/xinitrc.d/80-dbus" ] && source /etc/X11/xinit/xinitrc.d/80-dbus - -# start polkit auth agent -eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) -export GNOME_KEYRING_PID -export GNOME_KEYRING_SOCKET -export SSH_AUTH_SOCK - -# Export additional environment vars -export WINIT_X11_SCALE_FACTOR=1 - -# extend the fontpath -xset +fp ~/.fonts/Terminus/BDF -#xset +fp /usr/share/fonts/local +#!/bin/sh # set the default mousepointer xsetroot -cursor_name left_ptr @@ -32,30 +18,11 @@ fi # xkbmap options setxkbmap \ -layout us \ - \ -option compose:menu \ -option caps:escape # add altgr xmodmap -e "keycode 108 = ISO_Level3_Shift" -# Enable sound through PulseAudio -pulseaudio --start - -# set a wallpaper -chwp & - -# Turn off any screen blanking features -xset s off -xset -dpms - -# start background processes -redshift -l 51.50:4.59 & -dunst & -sxhkd & - -# Set up a screenlock -#xss-lock -- physlock -d & - -# Start x11vnc -x11vnc -display "$DISPLAY" & +# Export variables for a better X11 experience +export WINIT_X11_SCALE_FACTOR=1 diff --git a/.local/share/applications/firefox.desktop b/.local/share/applications/firefox.desktop new file mode 100644 index 0000000..0285394 --- /dev/null +++ b/.local/share/applications/firefox.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Exec=$HOME/.local/bin/firefox +Name=Firefox diff --git a/.ssh/authorized_keys b/.ssh/authorized_keys index bdf3cc6..9198118 100644 --- a/.ssh/authorized_keys +++ b/.ssh/authorized_keys @@ -3,17 +3,27 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEeckhvozWNKJssM+PY44fBXkzVeoqg9H8NHreWLUvGY ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID7lMmT3CJEPk1BnpW0UHie6g0LUJ/i45Sp5l4DGocwg root@denahnu.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID2tje8i3DtCmLrc+qJ7d02qQQ0lO7wtwWXO4XthWGra root@edephas.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcFE9oQT3s+vLsv4WNKTn3K0ZhntStXdCHfdBPj/62V root@faiwoo.tyil.net -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICj0hW49y+AGuMN2D672I5K6ZVLPVZLCsd+2MIat54nP root@gaeru.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILmqoy/OXsmmNpxEN/xISbHwDFt2u8f3HmGIvS2CASHm root@gaeru.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOdRI1JSQnDYqoCkCrNz/T9mLSCNb5vRSnNjb/3CGtDK root@hurzak.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC331lDhnHuQl4vkTUU5riqJ72ShdZN6zWdt1E3UJ/CJ root@krohxe.tyil.net -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2UxgdieMtF0a9QXFRb5QVYOwxG9oN1Q85///Y6VCZj root@tyil.email +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJLcXzcOPEYQWEARFgPpZCq2NZhTBWTsIezd4Mrkt0PY root@mieshu.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIh9xYBxb5n2N20Dj03lsij32UkPJ27EMQ/6VdKhjWVJ root@nouki.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII6oh68n5HXeK45YaNnQC0mHufB/bUgsEyE500OW40B1 root@oolah.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBnTRndwR171+hR+3yMpvmbRZoM8QFUE2zdOQZaqd24E root@plarabe.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE7T/5E/oA5ZO1VcIfaQGTvHcKn1dCh5APRLZH4CTNXf root@qohrei.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMtUkeSiwk+1UnMfy8Z53cQkKTlBBFZXUuDiXfPcalHj tyil@anoia.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQp0puZEEADKgUF1XYtLPzcYLTGNdDj0WCTf37adaZ2 tyil@caeghi.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE4sustL8Mw5lQpyuUnmhJgeypvlHy6UFaEKmFCGcltL tyil@denahnu.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHiNIpe2QCOk22YYU/mY7QA2rq0E07wetzj5R1wtWxeC tyil@edephas.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCiQJhuTvL0vZoOAu1L0sU81VV2qH1l4U73bL9RYfrW tyil@faiwoo.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ94ffGPvEb/Hi2B2XSaYjKpMiV93fzGLe0QUlXRJb1L tyil@gaeru.tyil.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINRprF4gE0pGiMNSxR8Z0fFsBikoifsm7HpdbHkBsmDg tyil@hurzak.tyil.net -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE+Ki28DBM3A8QUpxbAlZx2x111+rhn8JPcec67y9xi/ tyil@ivdea.tyil.net -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQDyWbo8Ma60t5wwKK2bdxo03gj2GxxCyn2/V2nNr5Z tyil@tyil.email +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIVPGs2LkDvdkMzwR1Crk8OblMQD2snClUuIcYgUYcu4 tyil@ludifah.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqLhjoIYRZmkD9sv1l1c03x6EpkadjfrGJ+4gqgkmp5 tyil@mieshu.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNztf75LVF+UvoIDyduHfynZupdC+9g7RaIs6cGgmCa tyil@nouki.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJkjrJ6agLK5Bdg2Y5B+88XDbP5UsQyvdUbd3LrOVmjI tyil@oolah.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7XKD3KxXTe5GlM4w4xdap3VAPvYCi4EowD88ymInFR tyil@plarabe.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPyOy5m6FnzyUBHplh8Eukz6rqvMW/mUh1cqUQrO3L/R tyil@qohrei.tyil.net -AAAAB3NzaC1yc2EAAAADAQABAAABAQDLRsHpUMeMrXr1s++ZJ7AQ5bLzBAHOQXkTd34Bin72aRD/iLVrEnxrE7Bk5UzWhvcedHHltpc8sdy0m8UFozprFeogD+1EpfdelycmfEBgzJE+p0+W/qsSMGy9AMgar7cNo8G4/eJr63XjyAdXG7eztmoz5Whgv0qlh2lW2dJ2orrlPF0bUA8tAx0ZAtJqvVEJZlXIlYqHCbYLHrif7w52UWV7UlkOosCl4FDsTO7BGkpRj6A/tGhu7gtTX1P9NQav2KFPvFko+S6jlEwCE1StwbiRop90grdv6OZ5UJe6KE2MEntwoW01y7BnB+lvgMTQyqKLKS1ffEbXIQPhbjBL yubikey (7 835 697) +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2UxgdieMtF0a9QXFRb5QVYOwxG9oN1Q85///Y6VCZj root@tyil.email +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQDyWbo8Ma60t5wwKK2bdxo03gj2GxxCyn2/V2nNr5Z tyil@tyil.email diff --git a/.ssh/config b/.ssh/config index 436ed4c..c0a670d 100644 --- a/.ssh/config +++ b/.ssh/config @@ -5,17 +5,18 @@ Host * IdentityFile ~/.ssh/id.d/%u@%L-ed25519 Host home.tyil.nl - Hostname 10.57.100.7 + Hostname 10.57.0.1 ForwardAgent yes Host git.tyil.nl - Hostname 10.57.100.7 + Hostname 10.57.3.1 User git Host rsync.net User zh1193 Hostname zh1193.rsync.net +# Test cluster # Libvirt VMs Host 192.168.122.* User root diff --git a/.ssh/config.d/tyilnet b/.ssh/config.d/tyilnet index 603c3c1..4bad39d 100644 --- a/.ssh/config.d/tyilnet +++ b/.ssh/config.d/tyilnet @@ -1,39 +1,39 @@ Host anoia - Hostname 10.57.100.3 - -Host bast - Hostname 10.57.100.4 + Hostname fd68:1057:1992:3381::0:3317:4 Host caeghi - Hostname 10.57.20.2 + Hostname fd68:1057:1992:3381::1:1:1 ForwardAgent yes -Host denahnu - Hostname 10.57.20.4 - Host edephas - Hostname 10.57.100.7 - -Host email - Hostname 10.57.20.3 + Hostname fd68:1057:1992:3381::0:3317:1 Host faiwoo - Hostname 10.57.20.5 + Hostname fd68:1057:1992:3381::1:1:2 Host gaeru - Hostname 10.57.20.6 + Hostname fd68:1057:1992:3381::1:2:1 + +Host jaomox + Hostname fd68:1057:1992:3381::3:3:1 -Host hurzak - Hostname 10.57.20.7 +Host ludifah + Hostname fd68:1057:1992:3381::0:3317:2 -Host ivdea - Hostname 10.57.100.8 +Host mieshu + Hostname fd68:1057:1992:3381::3:3317:1 -Host jaomox - Hostname 10.57.21.1 +Host nouki + Hostname fd68:1057:1992:3381::2:3317:1 -Host krohxe - Hostname 10.57.20.8 +Host oolah + Hostname fd68:1057:1992:3381::1:3317:1 -Host ludifah - Hostname 10.57.100.9 +Host plarabe + Hostname fd68:1057:1992:3381::0:3317:3 + +Host qohrei + Hostname fd68:1057:1992:3381::1:1:3 + +Host ricui + Hostname fd68:1057:1992:3381::1:1:4 diff --git a/.ssh/config.d/xxllnc b/.ssh/config.d/xxllnc index 12739e9..47643e6 100644 --- a/.ssh/config.d/xxllnc +++ b/.ssh/config.d/xxllnc @@ -3,9 +3,8 @@ Host *.zsys.nl StrictHostKeyChecking no UserKnownHostsFile /dev/null -Host git.xxllnc.nl +Host git.xxllnc.nl gitlab.com Hostname gitlab.com User git - IdentityFile ~/.ssh/id.d/xxllnc@%L-ed25519 # vim: set ft=sshconfig : diff --git a/.ssh/id.d/root@bast-ed25519.pub b/.ssh/id.d/root@bast-ed25519.pub deleted file mode 100644 index e1d7ab3..0000000 --- a/.ssh/id.d/root@bast-ed25519.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICk/6jLojpp5Jaum8C1trxqtZuLd/GJH8sh0SB/Z/y9J root@bast diff --git a/.ssh/id.d/root@gaeru-ed25519.pub b/.ssh/id.d/root@gaeru-ed25519.pub index 3056a3d..fe3c6a7 100644 --- a/.ssh/id.d/root@gaeru-ed25519.pub +++ b/.ssh/id.d/root@gaeru-ed25519.pub @@ -1 +1 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICj0hW49y+AGuMN2D672I5K6ZVLPVZLCsd+2MIat54nP root@gaeru.tyil.net +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILmqoy/OXsmmNpxEN/xISbHwDFt2u8f3HmGIvS2CASHm root@gaeru.tyil.net diff --git a/.ssh/id.d/root@mieshu-ed25519.pub b/.ssh/id.d/root@mieshu-ed25519.pub new file mode 100644 index 0000000..0faf439 --- /dev/null +++ b/.ssh/id.d/root@mieshu-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJLcXzcOPEYQWEARFgPpZCq2NZhTBWTsIezd4Mrkt0PY root@mieshu.tyil.net diff --git a/.ssh/id.d/root@nouki-ed25519.pub b/.ssh/id.d/root@nouki-ed25519.pub new file mode 100644 index 0000000..a19b34e --- /dev/null +++ b/.ssh/id.d/root@nouki-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIh9xYBxb5n2N20Dj03lsij32UkPJ27EMQ/6VdKhjWVJ root@nouki.tyil.net diff --git a/.ssh/id.d/root@oolah-ed25519.pub b/.ssh/id.d/root@oolah-ed25519.pub new file mode 100644 index 0000000..d4c3c0d --- /dev/null +++ b/.ssh/id.d/root@oolah-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII6oh68n5HXeK45YaNnQC0mHufB/bUgsEyE500OW40B1 root@oolah.tyil.net diff --git a/.ssh/id.d/root@plarabe-ed25519.pub b/.ssh/id.d/root@plarabe-ed25519.pub new file mode 100644 index 0000000..01cdb82 --- /dev/null +++ b/.ssh/id.d/root@plarabe-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMC9ggRv1prBjbIeqh+Q2VgX6tcxk/4UiQh4sZWJT9YI root@plarabe diff --git a/.ssh/id.d/tyil@bast-ed25519.pub b/.ssh/id.d/tyil@bast-ed25519.pub deleted file mode 100644 index 00e492d..0000000 --- a/.ssh/id.d/tyil@bast-ed25519.pub +++ /dev/null @@ -1,5 +0,0 @@ -<<<<<<< HEAD -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAXhPa+EGS4NySl0YqG38xGEab6uqdimseqq4tlLWyV4 tyil@bast.tyil.net -======= -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILE1+6HjG3XvLQDHLwnFzq78SEsPTNa8Wu6+inmTMqu7 tyil@bast ->>>>>>> d8b0063 (Update pubkey for tyil@bast) diff --git a/.ssh/id.d/tyil@gaeru-ed25519.pub b/.ssh/id.d/tyil@gaeru-ed25519.pub new file mode 100644 index 0000000..d5632d9 --- /dev/null +++ b/.ssh/id.d/tyil@gaeru-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ94ffGPvEb/Hi2B2XSaYjKpMiV93fzGLe0QUlXRJb1L tyil@gaeru.tyil.net diff --git a/.ssh/id.d/tyil@mieshu-ed25519.pub b/.ssh/id.d/tyil@mieshu-ed25519.pub new file mode 100644 index 0000000..a70b37c --- /dev/null +++ b/.ssh/id.d/tyil@mieshu-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqLhjoIYRZmkD9sv1l1c03x6EpkadjfrGJ+4gqgkmp5 tyil@mieshu.tyil.net diff --git a/.ssh/id.d/tyil@nouki-ed25519.pub b/.ssh/id.d/tyil@nouki-ed25519.pub new file mode 100644 index 0000000..52f292a --- /dev/null +++ b/.ssh/id.d/tyil@nouki-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNztf75LVF+UvoIDyduHfynZupdC+9g7RaIs6cGgmCa tyil@nouki.tyil.net diff --git a/.ssh/id.d/tyil@oolah-ed25519.pub b/.ssh/id.d/tyil@oolah-ed25519.pub new file mode 100644 index 0000000..dabadac --- /dev/null +++ b/.ssh/id.d/tyil@oolah-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJkjrJ6agLK5Bdg2Y5B+88XDbP5UsQyvdUbd3LrOVmjI tyil@oolah.tyil.net diff --git a/.ssh/id.d/tyil@plarabe-ed25519.pub b/.ssh/id.d/tyil@plarabe-ed25519.pub new file mode 100644 index 0000000..25a5449 --- /dev/null +++ b/.ssh/id.d/tyil@plarabe-ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7XKD3KxXTe5GlM4w4xdap3VAPvYCi4EowD88ymInFR tyil@plarabe diff --git a/.vim/bundle/feature-camelcasemotion b/.vim/bundle/feature-camelcasemotion new file mode 160000 +Subproject dbf66cf6d66f6716b72c6f683624ad694c0b8d4 diff --git a/.vim/bundle/feature-rainbow-parenthesis b/.vim/bundle/feature-rainbow-parenthesis new file mode 160000 +Subproject 61f719aebe0dc5c3048330c50db72cfee1afdd3 diff --git a/.vim/bundle/syntax-blade b/.vim/bundle/syntax-blade new file mode 160000 +Subproject 9534101808cc320eef003129a40cab04b026a20 diff --git a/.vim/bundle/syntax-go b/.vim/bundle/syntax-go new file mode 160000 +Subproject feef9b31507f8e942bcd21f9e1f22d587c83c72 diff --git a/.vim/bundle/syntax-hcl b/.vim/bundle/syntax-hcl new file mode 160000 +Subproject 1e1116c17a5774851360ea8077f349e36fc733c diff --git a/.vim/bundle/syntax-helm b/.vim/bundle/syntax-helm new file mode 160000 +Subproject 86cc6766db60b8cc5731068d0c2111dee1f2b32 diff --git a/.vim/bundle/syntax-ledger b/.vim/bundle/syntax-ledger new file mode 160000 +Subproject 281346a221434574dd7f8767a352b2bf0b218b7 diff --git a/.vim/bundle/syntax-markdown b/.vim/bundle/syntax-markdown new file mode 160000 +Subproject a657e697376909c41475a686eeef7fc7a4972d9 diff --git a/.vim/bundle/syntax-mustache b/.vim/bundle/syntax-mustache new file mode 160000 +Subproject 0153fe03a919add2d6cf2d41b2d5b6e1188bc0e diff --git a/.vim/bundle/syntax-raku b/.vim/bundle/syntax-raku new file mode 160000 +Subproject 84a65c415f966c3cd5536fdbc6d70ee8f0d7350 diff --git a/.vim/bundle/syntax-terraform b/.vim/bundle/syntax-terraform new file mode 160000 +Subproject 21f756b933cd11ac5990a6046fdc7c4e2a6c0ae diff --git a/.vim/bundle/syntax-todo b/.vim/bundle/syntax-todo new file mode 160000 +Subproject 3bb5f9cf0d6c7ee91b476a97054c336104d2b6f diff --git a/.vim/bundle/syntax-toml b/.vim/bundle/syntax-toml new file mode 160000 +Subproject d36caa6b1cf508a4df1c691f915572fc0214325 diff --git a/.vim/bundle/theme-codedark b/.vim/bundle/theme-codedark new file mode 160000 +Subproject 05d7843412c4fb7d1bdafefd04462ac4db841f0 diff --git a/.vim/bundle/theme-colorsbox b/.vim/bundle/theme-colorsbox new file mode 160000 +Subproject 77de081eab27872f94c4eab120e23e4ca5481b7 diff --git a/.vim/bundle/theme-jellybeans b/.vim/bundle/theme-jellybeans new file mode 160000 +Subproject ef83bf4dc8b3eacffc97bf5c96ab2581b415c9f diff --git a/.vim/bundle/theme-molokai b/.vim/bundle/theme-molokai new file mode 160000 +Subproject c67bdfcdb31415aa0ade7f8c003261700a88547 diff --git a/.vim/ftplugin/php.vim b/.vim/ftplugin/php.vim new file mode 100644 index 0000000..b8df966 --- /dev/null +++ b/.vim/ftplugin/php.vim @@ -0,0 +1,3 @@ +set shiftwidth=4 +set tabstop=4 +set expandtab diff --git a/.vim/ftplugin/yaml.vim b/.vim/ftplugin/yaml.vim index 0c0c07f..ae4ce66 100644 --- a/.vim/ftplugin/yaml.vim +++ b/.vim/ftplugin/yaml.vim @@ -1,3 +1,52 @@ set shiftwidth=2 set tabstop=2 set expandtab + +function! GetAncestors(line) + if(indent(a:line) == 0 && a:line == 1) + return '' + endif + + if(indent(a:line) == 0 && a:line > 1) + if(getline(a:line) !~ '^\s*$') " not an empty line + return '' + else + " sometimes there are newlines within a multiline key + return GetAncestors(a:line-1) " return ancestors of previous line + endif + endif + + let lowerIndent = indent(a:line)-1 + " check if line is part of a list + let isList = '' + if(getline(a:line) =~# '^\s*-') + let isList = '[]' + " find the first key above this in the file that has is not a list member + let lastKeyLine = search('^\s\{0,'.indent(a:line).'}[^-]\S\+:', 'bnW') + else + " find the first key above this in the file that has a lower indent or a + " containing list member + let lastKeyLine = search('^\s\{0,'.lowerIndent.'}\(\S\+\|-\s\S\+\):', 'bnW') + let lastKeyLineContent = getline(lastKeyLine) + " check if the containing key is not a member of the same object + if(lastKeyLineContent =~# ':\s.\+$' && lastKeyLineContent =~# '^\s*-') + let lastKeyLine = search('^\s\{0,'.lowerIndent.'}\(\S\+\|-\s\S\+\):\s*$', 'zbnW') + let isList = '[]' + endif + endif + + let key = matchstr(getline(lastKeyLine), '\s*[\-]\?\s*\zs.\+\ze:').isList + + if(indent(lastKeyLine) > 0) + return GetAncestors(lastKeyLine).' . '.key + endif + + return key +endfunction + +augroup YamlRevealer + au! + if(&filetype =~# 'yaml') + autocmd CursorMoved <buffer> redraw | echo GetAncestors(line('.')) + endif +aug END diff --git a/.vim/plugin/k8s-edit-secret.vim b/.vim/plugin/k8s-edit-secret.vim new file mode 100644 index 0000000..1a3e063 --- /dev/null +++ b/.vim/plugin/k8s-edit-secret.vim @@ -0,0 +1,60 @@ +" This program is free software: you can redistribute it and/or modify it under +" the terms of the GNU Affero General Public License as published by the Free +" Software Foundation, either version 3 of the License, or (at your option) any +" later version. +" +" This program is distributed in the hope that it will be useful, but WITHOUT +" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +" FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +" details. + +" Ensure this plugin is only loaded once +if (exists("g:k8s_edit_secret") || &cp || exists("#K8sEditSecret")) + finish +endif + +let g:k8s_edit_secret = "1" + +" Define the file pattern +let g:k8s_edit_secret_file_pattern = get(g:, "k8s_edit_secret_file_pattern", "/tmp/kubectl-edit-*.yaml") + +" Define the decode function +function K8sEditSecretDecode (...) + " Check if the file is really a secret + silent exe "!grep -q \"^kind: Secret$\" \"%:p\"" + + " Not a secret, just read the file as usual + if (v:shell_error) + return + endif + + " Pipe buffer through kubectl secret decode + let view = winsaveview() + silent exe "%!kubectl secret decode" + call winrestview(view) +endfunction + +" Define the encode function +function K8sEditSecretEncode (...) + " Check if the file is really a secret + silent exe "!grep -q \"^kind: Secret$\" \"%:p\"" + + " Not a secret, just read the file as usual + if (v:shell_error) + return + endif + + " Pipe buffer through kubectl secret encode + let view = winsaveview() + silent exe "%!kubectl secret encode" + call winrestview(view) +endfunction + +" Define the autocmd +augroup K8sEditSecret + autocmd! + + " Register autocmd on read/write + exe "autocmd BufWritePre " . g:k8s_edit_secret_file_pattern . " call K8sEditSecretEncode()" + exe "autocmd BufReadPost,BufWritePost " . g:k8s_edit_secret_file_pattern . " call K8sEditSecretDecode()" +augroup END diff --git a/.weechat/trigger.conf b/.weechat/trigger.conf index 847f8c2..b7daf6b 100644 --- a/.weechat/trigger.conf +++ b/.weechat/trigger.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] @@ -19,10 +19,9 @@ flag_conditions = yellow flag_post_action = lightblue flag_regex = lightcyan flag_return_code = lightmagenta +identifier = cyan regex = white replace = cyan -trigger = green -trigger_disabled = red [trigger] beep.arguments = "" @@ -89,6 +88,38 @@ msg_auth.hook = modifier msg_auth.post_action = none msg_auth.regex = "==^(.*(id|identify|set +password|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" msg_auth.return_code = ok +notify_highlight.arguments = "" +notify_highlight.command = "/exec -norc -nosw -bg ntfy pub -p 3 -T "speech_balloon" -t "${buffer.full_name}" -m "${tg_message}" chat" +notify_highlight.conditions = "${tg_highlight} && ${buffer.notify} > 0 && ${tg_prefix_nocolor} !~ ^[[:space:]]+$" +notify_highlight.enabled = on +notify_highlight.hook = print +notify_highlight.post_action = none +notify_highlight.regex = "/.*/${weechat.look.nick_prefix}${tg_prefix_nocolor}${weechat.look.nick_suffix} ${tg_message_nocolor}/" +notify_highlight.return_code = ok +notify_privmsg.arguments = "" +notify_privmsg.command = "/exec -norc -nosw -bg ntfy pub -p 3 -T "speech_balloon" -t "${buffer.full_name}" -m "${tg_message}" chat" +notify_privmsg.conditions = "${tg_tag_notify} == private && ${buffer.notify} > 0" +notify_privmsg.enabled = on +notify_privmsg.hook = print +notify_privmsg.post_action = none +notify_privmsg.regex = "/.*/${tg_message_nocolor}/" +notify_privmsg.return_code = ok +notify_xxllnc_help-platform-xcp.arguments = "" +notify_xxllnc_help-platform-xcp.command = "/exec -norc -nosw -bg ntfy pub -p 5 -T "right_anger_bubble" -t "${buffer.full_name}" -m "${tg_message}" chat" +notify_xxllnc_help-platform-xcp.conditions = "${buffer.full_name} == python.slack.exxellencehq.#help-platform-xcp" +notify_xxllnc_help-platform-xcp.enabled = on +notify_xxllnc_help-platform-xcp.hook = print +notify_xxllnc_help-platform-xcp.post_action = none +notify_xxllnc_help-platform-xcp.regex = "/.*/${tg_prefix_nocolor}: ${tg_message_nocolor}/" +notify_xxllnc_help-platform-xcp.return_code = ok +notify_xxllnc_team-xcp.arguments = "" +notify_xxllnc_team-xcp.command = "/exec -norc -nosw -bg ntfy pub -p 5 -T "right_anger_bubble" -t "${buffer.full_name}" -m "${tg_message}" chat" +notify_xxllnc_team-xcp.conditions = "${buffer.full_name} == python.slack.exxellencehq.&team-xcp && ${tg_prefix_nocolor} != patrick.spek" +notify_xxllnc_team-xcp.enabled = on +notify_xxllnc_team-xcp.hook = print +notify_xxllnc_team-xcp.post_action = none +notify_xxllnc_team-xcp.regex = "/.*/${tg_prefix_nocolor}: ${tg_message_nocolor}/" +notify_xxllnc_team-xcp.return_code = ok relaybot_libera_scriptkitties_gizmo.arguments = "weechat_print" relaybot_libera_scriptkitties_gizmo.command = "" relaybot_libera_scriptkitties_gizmo.conditions = "${tg_tag_host} == bot@darkorb.robotham.dev" diff --git a/.weechat/vendor/protocol-slack b/.weechat/vendor/protocol-slack new file mode 160000 +Subproject 0b5069e600b6fbe72affed97f0b36ef923ba407 diff --git a/.weechat/weechat.conf b/.weechat/weechat.conf index 0433274..ae4e869 100644 --- a/.weechat/weechat.conf +++ b/.weechat/weechat.conf @@ -6,9 +6,11 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # +config_version = 2 + [debug] [startup] @@ -36,6 +38,7 @@ buffer_search_regex = off buffer_search_where = message buffer_time_format = "${color:8}%H%M" buffer_time_same = "" +chat_space_right = off color_basic_force_bold = off color_inactive_buffer = off color_inactive_message = on @@ -56,8 +59,9 @@ day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" eat_newline_glitch = off emphasized_attributes = "" highlight = "" +highlight_disable_regex = "" highlight_regex = "" -highlight_tags = "slack_channel+nick_pingdom,slack_channel+nick_platform,slack_channel+nick_grafana" +highlight_tags = "" hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0" hotlist_buffer_separator = " " hotlist_count_max = 1 @@ -74,6 +78,7 @@ hotlist_suffix = "" hotlist_unique_numbers = on hotlist_update_on_buffer_switch = on input_cursor_scroll = 20 +input_multiline_lead_linebreak = on input_share = none input_share_overwrite = off input_undo_max = 32 @@ -95,7 +100,6 @@ nick_color_hash_salt = "" nick_color_stop_chars = "_|[" nick_prefix = "" nick_suffix = ":" -paste_auto_add_newline = on paste_bracketed = off paste_bracketed_timer_delay = 10 paste_max_lines = 1 @@ -177,6 +181,8 @@ chat_prefix_suffix = 8 chat_read_marker = 9 chat_read_marker_bg = default chat_server = 3 +chat_status_disabled = red +chat_status_enabled = green chat_tags = 9 chat_text_found = 11 chat_text_found_bg = 13 @@ -204,7 +210,8 @@ status_filter = 2 status_more = 11 status_mouse = 2 status_name = white -status_name_ssl = 2 +status_name_insecure = lightmagenta +status_name_tls = white status_nicklist_count = default status_number = default status_time = default @@ -437,8 +444,8 @@ irc.bitlbee.#secretaries = message irc.bitlbee.#supportcenter = message irc.bitlbee.#theladies = message irc.bitlbee.patrick = message -irc.darenet.#computertech = highlight irc.darenet.#DareNET = highlight +irc.darenet.#computertech = highlight irc.darenet.#dnet.lua = highlight irc.darenet.#dronebl = highlight irc.darenet.#help = message @@ -480,7 +487,7 @@ irc.oftc.#debian-mentors = highlight irc.rizon.#/g/technology = highlight irc.rizon.#computertech = highlight irc.rizon.#nerds = highlight -irc.rizon.#scriptkitties = message +irc.rizon.#scriptkitties = none irc.rizon.#xmas = highlight irc.technet.#computertech = highlight irc.technet.#nitemare = highlight @@ -491,11 +498,11 @@ irc.twitch.#guardsmanbob = highlight irc.twitch.#mrllamasc = highlight irc.twitch.#sovietwomble = highlight irc.twitch.#wintergaming = highlight -python.matrix.matrix_org.!ddzRCzutkWCgzgivqI:matrix.org = none python.matrix.matrix_org.!NaLbfexyNIBQDbzGwB:bonifacelabs.ca = highlight python.matrix.matrix_org.!YfFXwehASBiYzWXVUj:matrix.org = none -python.matrix.matrix_org.!yIUYRaVMuLMdcfxSBy:libera.chat = highlight python.matrix.matrix_org.!ZNbQEkfWfdwLeUksKM:matrix.org = message +python.matrix.matrix_org.!ddzRCzutkWCgzgivqI:matrix.org = none +python.matrix.matrix_org.!yIUYRaVMuLMdcfxSBy:libera.chat = highlight python.slack-debug = none python.slack.exxellencehq.#devops-ci = highlight python.slack.exxellencehq.#devops-info = highlight @@ -504,34 +511,58 @@ python.slack.exxellencehq.#zs-devops-alerts-lab = highlight python.slack.exxellencehq.#zs-devops-ci-lab = highlight [filter] -irc_smart = on;*;irc_smart_filter;* animebytes.OlolEeLFai = on;irc.animebytes.*;nick_OlolEeLFai;* animebytes.riria = on;irc.animebytes.*;nick_riria;* animebytes.riria_ = on;irc.animebytes.*;nick_riria_;* animebytes.vice = on;irc.animebytes.*;nick_vice;* animebytes.vonf = on;irc.animebytes.*;nick_vonf;* +bitlbee.disroot.marmulak = on;irc.bitlbee.#disroot;nick_marmulak;* +darenet.brandon = on;irc.darenet.*;nick_brandon;* +darenet.drnrelay.status = on;irc.darenet.#dronebl;nick_drnrelay;^\*\*\* darenet.puddin = on;irc.darenet.*;nick_puddin;* +irc.irc-nerds = on;irc.irc-nerds.*;nick_mouses;* +irc_smart = on;*;irc_smart_filter;* +libera.ampersam = on;irc.libera.*;nick_ampersam;* +libera.curvechacha25519 = on;irc.libera.*;nick_curvechacha25519;* +libera.diffiehellman = on;irc.libera.*;nick_diffiehellman;* +libera.mnrmnaugh = on;irc.libera.*;nick_mnrmnaugh;* +libera.monopoly = on;irc.libera.*;nick_monopoly;* +libera.pinecone = on;irc.libera.*;nick_pinecone;* +oftc.harmen = on;irc.oftc.*;nick_harmen;* +perl.mst = on;irc.perl.*;nick_mst;* rizon.99dog = on;irc.rizon.*;nick_`99dog;* rizon.RestedAlteran = on;irc.rizon.*;nick_restedalteran;* +rizon.ahsoka = on;irc.rizon.*;nick_ahsoka;* rizon.anshin = on;irc.rizon.*;nick_anshin;* rizon.autisomosis = on;irc.rizon.*;nick_autismosis;* +rizon.brandon = on;irc.rizon.*;nick_brandon;* rizon.candygumdrop = on;irc.rizon.*;nick_candygumdrop;* +rizon.crow = on;irc.rizon.*;nick_crow;* rizon.densaakalte = on;irc.rizon.*;nick_densaakalte;* rizon.eleeko = on;irc.rizon.*;nick_eleeko;* rizon.ellenor = on;irc.rizon.*;nick_ellenor;* rizon.flap.discord = on;irc.rizon.*;nick_discord-relay;^<flap> +rizon.foxy = on;irc.rizon.*;nick_foxy;* rizon.fs = on;irc.rizon.*;nick_fs;* +rizon.gb.welcome = on;irc.rizon.#ComputerTech;*;Welcome to #computertech rizon.happybox = on;irc.rizon.*;nick_happybox;* rizon.jubajuba = on;irc.rizon.*;nick_jubajuba;* +rizon.karma = on;irc.rizon.*;nick_karma;* +rizon.karma.trigger = on;irc.rizon.#ComputerTech;*;\!jizz rizon.kenster = on;irc.rizon.*;nick_kenster;* rizon.lighto = on;irc.rizon.*;nick_lighto;* rizon.mabynogy = on;irc.rizon.*;nick_mabynogy;* rizon.maznaz = on;irc.rizon.*;nick_maznaz;* rizon.meekcell = on;irc.rizon.*;nick_meekcell;* rizon.mikoolo = on;irc.rizon.*;nick_mikoolo;* +rizon.mr_cat = on;irc.rizon.*;nick_mr_cat;* rizon.mrfifths = on;irc.rizon.*;nick_mrfifths;* +rizon.naemuti = on;irc.rizon.*;nick_naemuti;* +rizon.naemutti = on;irc.rizon.*;nick_naemutti;* +rizon.phonekait = on;irc.rizon.*;nick_phonekait;* rizon.s7sost = on;irc.rizon.*;nick_s7sost;* rizon.short_circuit = on;irc.rizon.*;nick_short_circuit;* +rizon.sorcerer = on;irc.rizon.*;nick_sorcerer;* rizon.stoned_immaculate = on;irc.rizon.*;nick_stoned_immaculate;* rizon.trentski = on;irc.rizon.*;nick_trentski;* rizon.trivia = on;irc.rizon.*;nick_trivia;* @@ -544,79 +575,57 @@ twitch.guardsmanbob.!# = on;irc.twitch.#guardsmanbob;*;^\![0-3] twitch.guardsmanbob.!pick = on;irc.twitch.#guardsmanbob;*;\!pick.* twitch.guardsmanbob.!rate = on;irc.twitch.#guardsmanbob;*;\!rate.* twitch.guardsmanbob.!wins = on;irc.twitch.#guardsmanbob;*;\!wins.* -darenet.brandon = on;irc.darenet.*;nick_brandon;* -perl.mst = on;irc.perl.*;nick_mst;* -bitlbee.disroot.marmulak = on;irc.bitlbee.#disroot;nick_marmulak;* -rizon.brandon = on;irc.rizon.*;nick_brandon;* -rizon.karma = on;irc.rizon.*;nick_karma;* -rizon.gb.welcome = on;irc.rizon.#ComputerTech;*;Welcome to #computertech -rizon.karma.trigger = on;irc.rizon.#ComputerTech;*;\!jizz -rizon.sorcerer = on;irc.rizon.*;nick_sorcerer;* -rizon.crow = on;irc.rizon.*;nick_crow;* -rizon.naemutti = on;irc.rizon.*;nick_naemutti;* -rizon.foxy = on;irc.rizon.*;nick_foxy;* -rizon.naemuti = on;irc.rizon.*;nick_naemuti;* -darenet.drnrelay.status = on;irc.darenet.#dronebl;nick_drnrelay;^\*\*\* -rizon.phonekait = on;irc.rizon.*;nick_phonekait;* -libera.monopoly = on;irc.libera.*;nick_monopoly;* -libera.diffiehellman = on;irc.libera.*;nick_diffiehellman;* -libera.pinecone = on;irc.libera.*;nick_pinecone;* -libera.ampersam = on;irc.libera.*;nick_ampersam;* -oftc.harmen = on;irc.oftc.*;nick_harmen;* -libera.mnrmnaugh = on;irc.libera.*;nick_mnrmnaugh;* -libera.curvechacha25519 = on;irc.libera.*;nick_curvechacha25519;* -rizon.mr_cat = on;irc.rizon.*;nick_mr_cat;* -irc.irc-nerds = on;irc.irc-nerds.*;nick_mouses;* -rizon.ahsoka = on;irc.rizon.*;nick_ahsoka;* [key] -ctrl-? = "/input delete_previous_char" -ctrl-A = "/input move_beginning_of_line" -ctrl-B = "/input move_previous_char" -ctrl-C_ = "/input insert \x1F" -ctrl-Cb = "/input insert \x02" -ctrl-Cc = "/input insert \x03" -ctrl-Ci = "/input insert \x1D" -ctrl-Co = "/input insert \x0F" -ctrl-Cr = "/input insert \x12" -ctrl-Cu = "/input insert \x15" -ctrl-Cv = "/input insert \x16" -ctrl-D = "/input delete_next_char" -ctrl-E = "/input move_end_of_line" -ctrl-F = "/input move_next_char" -ctrl-H = "/input delete_previous_char" -ctrl-I = "/input complete_next" -ctrl-J = "/buffer +1" -ctrl-K = "/buffer -1" -ctrl-L = "/window refresh" -ctrl-M = "/input return" -ctrl-N = "/buffer +1" -ctrl-P = "/buffer -1" -ctrl-R = "/input search_text" -ctrl-Sctrl-U = "/input set_unread" -ctrl-T = "/input transpose_chars" -ctrl-U = "/input delete_beginning_of_line" -ctrl-W = "/input delete_previous_word" -ctrl-X = "/input switch_active_buffer" -ctrl-Y = "/input clipboard_paste" -meta-meta-OP = "/bar scroll buflist * b" -meta-meta-OQ = "/bar scroll buflist * e" -meta-meta2-11~ = "/bar scroll buflist * b" -meta-meta2-12~ = "/bar scroll buflist * e" -meta-meta2-1~ = "/window scroll_top" -meta-meta2-23~ = "/bar scroll nicklist * b" -meta-meta2-24~ = "/bar scroll nicklist * e" -meta-meta2-4~ = "/window scroll_bottom" -meta-meta2-5~ = "/window scroll_up" -meta-meta2-6~ = "/window scroll_down" -meta-meta2-7~ = "/window scroll_top" -meta-meta2-8~ = "/window scroll_bottom" -meta-meta2-A = "/buffer -1" -meta-meta2-B = "/buffer +1" -meta-meta2-C = "/buffer +1" -meta-meta2-D = "/buffer -1" +backspace = "/input delete_previous_char" +ctrl-_ = "/input undo" +ctrl-a = "/input move_beginning_of_line" +ctrl-b = "/input move_previous_char" +ctrl-c,_ = "/input insert \x1F" +ctrl-c,b = "/input insert \x02" +ctrl-c,c = "/input insert \x03" +ctrl-c,i = "/input insert \x1D" +ctrl-c,o = "/input insert \x0F" +ctrl-c,r = "/input insert \x12" +ctrl-c,u = "/input insert \x15" +ctrl-c,v = "/input insert \x16" +ctrl-d = "/input delete_next_char" +ctrl-down = "/input history_global_next" +ctrl-e = "/input move_end_of_line" +ctrl-f = "/input move_next_char" +ctrl-f1 = "/bar scroll buflist * -100%" +ctrl-f2 = "/bar scroll buflist * +100%" +ctrl-k = "/buffer -1" +ctrl-l = "/window refresh" +ctrl-left = "/input move_previous_word" +ctrl-n = "/buffer +1" +ctrl-p = "/buffer -1" +ctrl-r = "/input search_text" +ctrl-right = "/input move_next_word" +ctrl-s,ctrl-u = "/allbuf /buffer set unread" +ctrl-t = "/input transpose_chars" +ctrl-u = "/input delete_beginning_of_line" +ctrl-up = "/input history_global_previous" +ctrl-w = "/input delete_previous_word" +ctrl-x = "/buffer switch" +ctrl-y = "/input clipboard_paste" +delete = "/input delete_next_char" +down = "/input history_next" +end = "/input move_end_of_line" +f1 = "/bar scroll buflist * -100%" +f10 = "/bar scroll title * +30%" +f11 = "/bar scroll nicklist * -100%" +f12 = "/bar scroll nicklist * +100%" +f2 = "/bar scroll buflist * +100%" +f5 = "/buffer -1" +f6 = "/buffer +1" +f7 = "/window -1" +f8 = "/window +1" +f9 = "/bar scroll title * -30%" +home = "/input move_beginning_of_line" +left = "/input move_previous_char" meta-- = "/filter toggle @" -meta-/ = "/input jump_last_buffer_displayed" +meta-/ = "/buffer jump last_displayed" meta-0 = "/buffer *10" meta-1 = "/buffer *1" meta-2 = "/buffer *2" @@ -627,249 +636,197 @@ meta-6 = "/buffer *6" meta-7 = "/buffer *7" meta-8 = "/buffer *8" meta-9 = "/buffer *9" -meta-< = "/input jump_previously_visited_buffer" +meta-< = "/buffer jump prev_visited" meta-= = "/filter toggle" -meta-> = "/input jump_next_visited_buffer" +meta-> = "/buffer jump next_visited" meta-B = "/buflist toggle" -meta-OA = "/input history_global_previous" -meta-OB = "/input history_global_next" -meta-OC = "/input move_next_word" -meta-OD = "/input move_previous_word" -meta-OF = "/input move_end_of_line" -meta-OH = "/input move_beginning_of_line" -meta-OP = "/bar scroll buflist * -100%" -meta-OQ = "/bar scroll buflist * +100%" -meta-Oa = "/input history_global_previous" -meta-Ob = "/input history_global_next" -meta-Oc = "/input move_next_word" -meta-Od = "/input move_previous_word" -meta2-11^ = "/bar scroll buflist * -100%" -meta2-11~ = "/bar scroll buflist * -100%" -meta2-12^ = "/bar scroll buflist * +100%" -meta2-12~ = "/bar scroll buflist * +100%" -meta2-15~ = "/buffer -1" -meta2-17~ = "/buffer +1" -meta2-18~ = "/window -1" -meta2-19~ = "/window +1" -meta2-1;3A = "/buffer -1" -meta2-1;3B = "/buffer +1" -meta2-1;3C = "/buffer +1" -meta2-1;3D = "/buffer -1" -meta2-1;3F = "/window scroll_bottom" -meta2-1;3H = "/window scroll_top" -meta2-1;3P = "/bar scroll buflist * b" -meta2-1;3Q = "/bar scroll buflist * e" -meta2-1;5A = "/input history_global_previous" -meta2-1;5B = "/input history_global_next" -meta2-1;5C = "/input move_next_word" -meta2-1;5D = "/input move_previous_word" -meta2-1;5P = "/bar scroll buflist * -100%" -meta2-1;5Q = "/bar scroll buflist * +100%" -meta2-1~ = "/input move_beginning_of_line" -meta2-200~ = "/input paste_start" -meta2-201~ = "/input paste_stop" -meta2-20~ = "/bar scroll title * -30%" -meta2-21~ = "/bar scroll title * +30%" -meta2-23;3~ = "/bar scroll nicklist * b" -meta2-23~ = "/bar scroll nicklist * -100%" -meta2-24;3~ = "/bar scroll nicklist * e" -meta2-24~ = "/bar scroll nicklist * +100%" -meta2-3~ = "/input delete_next_char" -meta2-4~ = "/input move_end_of_line" -meta2-5;3~ = "/window scroll_up" -meta2-5~ = "/window page_up" -meta2-6;3~ = "/window scroll_down" -meta2-6~ = "/window page_down" -meta2-7~ = "/input move_beginning_of_line" -meta2-8~ = "/input move_end_of_line" -meta2-A = "/input history_previous" -meta2-B = "/input history_next" -meta2-C = "/input move_next_char" -meta2-D = "/input move_previous_char" -meta2-F = "/input move_end_of_line" -meta2-G = "/window page_down" -meta2-H = "/input move_beginning_of_line" -meta2-I = "/window page_up" -meta2-Z = "/input complete_previous" -meta2-[E = "/buffer -1" meta-_ = "/input redo" -meta-a = "/input jump_smart" +meta-a = "/buffer jump smart" meta-b = "/input move_previous_word" meta-d = "/input delete_next_word" +meta-down = "/buffer +1" meta-e = "/buffer *13" +meta-end = "/window scroll_bottom" meta-f = "/input move_next_word" -meta-h = "/input hotlist_clear" +meta-f1 = "/bar scroll buflist * b" +meta-f11 = "/bar scroll nicklist * b" +meta-f12 = "/bar scroll nicklist * e" +meta-f2 = "/bar scroll buflist * e" +meta-h = "/hotlist clear" +meta-home = "/window scroll_top" meta-i = "/buffer *18" -meta-jmeta-f = "/buffer -" -meta-jmeta-l = "/input jump_last_buffer" -meta-jmeta-r = "/server raw" -meta-jmeta-s = "/server jump" -meta-j01 = "/buffer 1" -meta-j02 = "/buffer 2" -meta-j03 = "/buffer 3" -meta-j04 = "/buffer 4" -meta-j05 = "/buffer 5" -meta-j06 = "/buffer 6" -meta-j07 = "/buffer 7" -meta-j08 = "/buffer 8" -meta-j09 = "/buffer 9" -meta-j10 = "/buffer 10" -meta-j11 = "/buffer 11" -meta-j12 = "/buffer 12" -meta-j13 = "/buffer 13" -meta-j14 = "/buffer 14" -meta-j15 = "/buffer 15" -meta-j16 = "/buffer 16" -meta-j17 = "/buffer 17" -meta-j18 = "/buffer 18" -meta-j19 = "/buffer 19" -meta-j20 = "/buffer 20" -meta-j21 = "/buffer 21" -meta-j22 = "/buffer 22" -meta-j23 = "/buffer 23" -meta-j24 = "/buffer 24" -meta-j25 = "/buffer 25" -meta-j26 = "/buffer 26" -meta-j27 = "/buffer 27" -meta-j28 = "/buffer 28" -meta-j29 = "/buffer 29" -meta-j30 = "/buffer 30" -meta-j31 = "/buffer 31" -meta-j32 = "/buffer 32" -meta-j33 = "/buffer 33" -meta-j34 = "/buffer 34" -meta-j35 = "/buffer 35" -meta-j36 = "/buffer 36" -meta-j37 = "/buffer 37" -meta-j38 = "/buffer 38" -meta-j39 = "/buffer 39" -meta-j40 = "/buffer 40" -meta-j41 = "/buffer 41" -meta-j42 = "/buffer 42" -meta-j43 = "/buffer 43" -meta-j44 = "/buffer 44" -meta-j45 = "/buffer 45" -meta-j46 = "/buffer 46" -meta-j47 = "/buffer 47" -meta-j48 = "/buffer 48" -meta-j49 = "/buffer 49" -meta-j50 = "/buffer 50" -meta-j51 = "/buffer 51" -meta-j52 = "/buffer 52" -meta-j53 = "/buffer 53" -meta-j54 = "/buffer 54" -meta-j55 = "/buffer 55" -meta-j56 = "/buffer 56" -meta-j57 = "/buffer 57" -meta-j58 = "/buffer 58" -meta-j59 = "/buffer 59" -meta-j60 = "/buffer 60" -meta-j61 = "/buffer 61" -meta-j62 = "/buffer 62" -meta-j63 = "/buffer 63" -meta-j64 = "/buffer 64" -meta-j65 = "/buffer 65" -meta-j66 = "/buffer 66" -meta-j67 = "/buffer 67" -meta-j68 = "/buffer 68" -meta-j69 = "/buffer 69" -meta-j70 = "/buffer 70" -meta-j71 = "/buffer 71" -meta-j72 = "/buffer 72" -meta-j73 = "/buffer 73" -meta-j74 = "/buffer 74" -meta-j75 = "/buffer 75" -meta-j76 = "/buffer 76" -meta-j77 = "/buffer 77" -meta-j78 = "/buffer 78" -meta-j79 = "/buffer 79" -meta-j80 = "/buffer 80" -meta-j81 = "/buffer 81" -meta-j82 = "/buffer 82" -meta-j83 = "/buffer 83" -meta-j84 = "/buffer 84" -meta-j85 = "/buffer 85" -meta-j86 = "/buffer 86" -meta-j87 = "/buffer 87" -meta-j88 = "/buffer 88" -meta-j89 = "/buffer 89" -meta-j90 = "/buffer 90" -meta-j91 = "/buffer 91" -meta-j92 = "/buffer 92" -meta-j93 = "/buffer 93" -meta-j94 = "/buffer 94" -meta-j95 = "/buffer 95" -meta-j96 = "/buffer 96" -meta-j97 = "/buffer 97" -meta-j98 = "/buffer 98" -meta-j99 = "/buffer 99" +meta-j,0,1 = "/buffer 1" +meta-j,0,2 = "/buffer 2" +meta-j,0,3 = "/buffer 3" +meta-j,0,4 = "/buffer 4" +meta-j,0,5 = "/buffer 5" +meta-j,0,6 = "/buffer 6" +meta-j,0,7 = "/buffer 7" +meta-j,0,8 = "/buffer 8" +meta-j,0,9 = "/buffer 9" +meta-j,1,0 = "/buffer 10" +meta-j,1,1 = "/buffer 11" +meta-j,1,2 = "/buffer 12" +meta-j,1,3 = "/buffer 13" +meta-j,1,4 = "/buffer 14" +meta-j,1,5 = "/buffer 15" +meta-j,1,6 = "/buffer 16" +meta-j,1,7 = "/buffer 17" +meta-j,1,8 = "/buffer 18" +meta-j,1,9 = "/buffer 19" +meta-j,2,0 = "/buffer 20" +meta-j,2,1 = "/buffer 21" +meta-j,2,2 = "/buffer 22" +meta-j,2,3 = "/buffer 23" +meta-j,2,4 = "/buffer 24" +meta-j,2,5 = "/buffer 25" +meta-j,2,6 = "/buffer 26" +meta-j,2,7 = "/buffer 27" +meta-j,2,8 = "/buffer 28" +meta-j,2,9 = "/buffer 29" +meta-j,3,0 = "/buffer 30" +meta-j,3,1 = "/buffer 31" +meta-j,3,2 = "/buffer 32" +meta-j,3,3 = "/buffer 33" +meta-j,3,4 = "/buffer 34" +meta-j,3,5 = "/buffer 35" +meta-j,3,6 = "/buffer 36" +meta-j,3,7 = "/buffer 37" +meta-j,3,8 = "/buffer 38" +meta-j,3,9 = "/buffer 39" +meta-j,4,0 = "/buffer 40" +meta-j,4,1 = "/buffer 41" +meta-j,4,2 = "/buffer 42" +meta-j,4,3 = "/buffer 43" +meta-j,4,4 = "/buffer 44" +meta-j,4,5 = "/buffer 45" +meta-j,4,6 = "/buffer 46" +meta-j,4,7 = "/buffer 47" +meta-j,4,8 = "/buffer 48" +meta-j,4,9 = "/buffer 49" +meta-j,5,0 = "/buffer 50" +meta-j,5,1 = "/buffer 51" +meta-j,5,2 = "/buffer 52" +meta-j,5,3 = "/buffer 53" +meta-j,5,4 = "/buffer 54" +meta-j,5,5 = "/buffer 55" +meta-j,5,6 = "/buffer 56" +meta-j,5,7 = "/buffer 57" +meta-j,5,8 = "/buffer 58" +meta-j,5,9 = "/buffer 59" +meta-j,6,0 = "/buffer 60" +meta-j,6,1 = "/buffer 61" +meta-j,6,2 = "/buffer 62" +meta-j,6,3 = "/buffer 63" +meta-j,6,4 = "/buffer 64" +meta-j,6,5 = "/buffer 65" +meta-j,6,6 = "/buffer 66" +meta-j,6,7 = "/buffer 67" +meta-j,6,8 = "/buffer 68" +meta-j,6,9 = "/buffer 69" +meta-j,7,0 = "/buffer 70" +meta-j,7,1 = "/buffer 71" +meta-j,7,2 = "/buffer 72" +meta-j,7,3 = "/buffer 73" +meta-j,7,4 = "/buffer 74" +meta-j,7,5 = "/buffer 75" +meta-j,7,6 = "/buffer 76" +meta-j,7,7 = "/buffer 77" +meta-j,7,8 = "/buffer 78" +meta-j,7,9 = "/buffer 79" +meta-j,8,0 = "/buffer 80" +meta-j,8,1 = "/buffer 81" +meta-j,8,2 = "/buffer 82" +meta-j,8,3 = "/buffer 83" +meta-j,8,4 = "/buffer 84" +meta-j,8,5 = "/buffer 85" +meta-j,8,6 = "/buffer 86" +meta-j,8,7 = "/buffer 87" +meta-j,8,8 = "/buffer 88" +meta-j,8,9 = "/buffer 89" +meta-j,9,0 = "/buffer 90" +meta-j,9,1 = "/buffer 91" +meta-j,9,2 = "/buffer 92" +meta-j,9,3 = "/buffer 93" +meta-j,9,4 = "/buffer 94" +meta-j,9,5 = "/buffer 95" +meta-j,9,6 = "/buffer 96" +meta-j,9,7 = "/buffer 97" +meta-j,9,8 = "/buffer 98" +meta-j,9,9 = "/buffer 99" +meta-j,meta-f = "/buffer -" +meta-j,meta-l = "/buffer +" +meta-j,meta-r = "/server raw" +meta-j,meta-s = "/server jump" meta-k = "/input grab_key_command" meta-l = "/window bare" +meta-left = "/buffer -1" meta-n = "/window scroll_next_highlight" meta-o = "/buffer *19" meta-p = "/window scroll_previous_highlight" +meta-pgdn = "/window scroll_down" +meta-pgup = "/window scroll_up" meta-q = "/buffer *11" meta-r = "/input delete_line" +meta-right = "/buffer +1" meta-s = "/mute aspell toggle" meta-t = "/buffer *15" meta-u = "/window scroll_unread" +meta-up = "/buffer -1" meta-w = "/buffer *12" -meta-wmeta-meta2-A = "/window up" -meta-wmeta-meta2-B = "/window down" -meta-wmeta-meta2-C = "/window right" -meta-wmeta-meta2-D = "/window left" -meta-wmeta2-1;3A = "/window up" -meta-wmeta2-1;3B = "/window down" -meta-wmeta2-1;3C = "/window right" -meta-wmeta2-1;3D = "/window left" -meta-wmeta-b = "/window balance" -meta-wmeta-s = "/window swap" -meta-x = "/input zoom_merged_buffer" +meta-w,meta-b = "/window balance" +meta-w,meta-down = "/window down" +meta-w,meta-left = "/window left" +meta-w,meta-right = "/window right" +meta-w,meta-s = "/window swap" +meta-w,meta-up = "/window up" +meta-x = "/buffer zoom" meta-y = "/buffer *16" meta-z = "/window zoom" -ctrl-_ = "/input undo" +pgdn = "/window page_down" +pgup = "/window page_up" +return = "/input return" +right = "/input move_next_char" +shift-tab = "/input complete_previous" +tab = "/input complete_next" +up = "/input history_previous" [key_search] -ctrl-I = "/input search_switch_where" -ctrl-J = "/input search_stop" -ctrl-M = "/input search_stop" -ctrl-Q = "/input search_stop" -ctrl-R = "/input search_switch_case" -meta2-A = "/input search_previous" -meta2-B = "/input search_next" +ctrl-q = "/input search_stop" +ctrl-r = "/input search_switch_case" +down = "/input search_next" meta-c = "/input search_switch_case" +return = "/input search_stop" +tab = "/input search_switch_where" +up = "/input search_previous" [key_cursor] -ctrl-J = "/cursor stop" -ctrl-M = "/cursor stop" -meta-meta2-A = "/cursor move area_up" -meta-meta2-B = "/cursor move area_down" -meta-meta2-C = "/cursor move area_right" -meta-meta2-D = "/cursor move area_left" -meta2-1;3A = "/cursor move area_up" -meta2-1;3B = "/cursor move area_down" -meta2-1;3C = "/cursor move area_right" -meta2-1;3D = "/cursor move area_left" -meta2-A = "/cursor move up" -meta2-B = "/cursor move down" -meta2-C = "/cursor move right" -meta2-D = "/cursor move left" @chat(python.*):D = "hsignal:slack_cursor_delete" @chat(python.*):L = "hsignal:slack_cursor_linkarchive" @chat(python.*):M = "hsignal:slack_cursor_message" @chat(python.*):R = "hsignal:slack_cursor_reply" @chat(python.*):T = "hsignal:slack_cursor_thread" @chat(python.matrix.*):r = "hsignal:matrix_cursor_reply" +@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" +@chat:m = "hsignal:chat_quote_message;/cursor stop" +@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" @item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}" @item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}" @item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}" @item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop" @item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}" -@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" -@chat:m = "hsignal:chat_quote_message;/cursor stop" -@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" +down = "/cursor move down" +left = "/cursor move left" +meta-down = "/cursor move area_down" +meta-left = "/cursor move area_left" +meta-right = "/cursor move area_right" +meta-up = "/cursor move area_up" +return = "/cursor stop" +right = "/cursor move right" +up = "/cursor move up" [key_mouse] +@*:button3 = "/cursor go ${_x},${_y}" @bar(buffers):ctrl-wheeldown = "hsignal:buffers_mouse" @bar(buffers):ctrl-wheelup = "hsignal:buffers_mouse" @bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse" @@ -879,6 +836,8 @@ meta2-D = "/cursor move left" @bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" @bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%" @bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b" +@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" +@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" @chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}" @chat(fset.fset):button2* = "hsignal:fset_mouse" @chat(fset.fset):wheeldown = "/fset -down 5" @@ -888,6 +847,15 @@ meta2-D = "/cursor move left" @chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}" @chat(script.scripts):wheeldown = "/script down 5" @chat(script.scripts):wheelup = "/script up 5" +@chat:button1 = "/window ${_window_number}" +@chat:button1-gesture-left = "/window ${_window_number};/buffer -1" +@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" +@chat:button1-gesture-right = "/window ${_window_number};/buffer +1" +@chat:button1-gesture-right-long = "/window ${_window_number};/buffer +" +@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" +@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" +@chat:wheeldown = "/window scroll_down -window ${_window_number}" +@chat:wheelup = "/window scroll_up -window ${_window_number}" @item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}" @item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}" @item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}" @@ -901,15 +869,3 @@ meta2-D = "/cursor move left" @item(buflist2):button2* = "hsignal:buflist_mouse" @item(buflist3):button1* = "hsignal:buflist_mouse" @item(buflist3):button2* = "hsignal:buflist_mouse" -@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" -@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" -@chat:button1 = "/window ${_window_number}" -@chat:button1-gesture-left = "/window ${_window_number};/buffer -1" -@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" -@chat:button1-gesture-right = "/window ${_window_number};/buffer +1" -@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer" -@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" -@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" -@chat:wheeldown = "/window scroll_down -window ${_window_number}" -@chat:wheelup = "/window scroll_up -window ${_window_number}" -@*:button3 = "/cursor go ${_x},${_y}" @@ -126,6 +126,14 @@ function precmd() # {{{ sshd|*/sshd|mosh*) HOSTNAME_COLOR="%F{6}" ;; esac # }}} + + # Color last directory name in case of python venv + PROMPT_PATH='%F{4}%~%k' + + if [[ -n "$PYTHON_VENV_DIR" ]] + then + PROMPT_PATH+='%F{6}#'"$(awk -F/ '{ print $(NF-1) }' <<< "$PYTHON_VENV_DIR")" + fi } # }}} @@ -162,7 +170,8 @@ PROMPT='%(!.%F{1}.%F{2})%n%F{8}' PROMPT=$PROMPT'@' PROMPT=$PROMPT'${HOSTNAME_COLOR}%M%F{8}' PROMPT=$PROMPT':' -PROMPT=$PROMPT'%F{4}%~%k${PGIT}' +PROMPT=$PROMPT'${PROMPT_PATH}' +PROMPT=$PROMPT'%k${PGIT}' PROMPT=$PROMPT' ' PROMPT=$PROMPT'%(?.%F{7}.%F{1})${EXITCODE}%k' PROMPT=$PROMPT' ${vi_mode}ยป%b %f${CURSOR_STYLE}' @@ -42,6 +42,7 @@ Other dependencies may exist. - Icons: [ACYLS](https://github.com/worron/ACYLS) - Colors: + - Text: `#eeeeee` - Dark: `#252a35` - Light: `#4b5165` - Focus: `#5294e2` |