diff options
Diffstat (limited to '.config')
62 files changed, 1506 insertions, 799 deletions
diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index ea3eb70..0c15a0c 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, - spacing = 16, - s.mylayoutbox, - s.mytaglist, + s.widgets.layout, + }, + { + layout = wibox.layout.fixed.horizontal, + s.widgets.clock, + }, + { + layout = wibox.layout.fixed.horizontal, + spacing = 4, + s.widgets.systray, + s.widgets.brightness, + s.widgets.volume, + s.widgets.battery, }, - s.mytasklist, } end) -- }}} @@ -196,86 +224,46 @@ root.buttons(gears.table.join( -- {{{ Key bindings globalkeys = gears.table.join( - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - {description="show help", group="awesome"}), - awful.key({ modkey, }, "Left", awful.tag.viewprev, - {description = "view previous", group = "tag"}), - awful.key({ modkey, }, "Right", awful.tag.viewnext, - {description = "view next", group = "tag"}), - awful.key({ modkey, }, "Escape", awful.tag.history.restore, - {description = "go back", group = "tag"}), - - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - end, - {description = "focus next by index", group = "client"} - ), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - end, - {description = "focus previous by index", group = "client"} - ), - awful.key({ modkey, }, "w", function () mymainmenu:show() end, - {description = "show main menu", group = "awesome"}), - - - -- Layout manipulation - 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, - {description = "swap with previous client by index", group = "client"}), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_bydirection("right") end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_bydirection("left") end, - {description = "focus the previous screen", group = "screen"}), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - {description = "jump to urgent client", group = "client"}), - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}), - - -- Standard program - awful.key( - { modkey, "Shift" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"} - ), - awful.key( - { modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"} - ), - - awful.key( - { modkey, }, "p", function () awful.spawn("ipass") end, - { description = "Select password", group = "awesome" } - ), - awful.key( - { modkey, }, "o", function () awful.spawn("ipass-otp") end, - { description = "Select password", group = "awesome" } - ), - - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, - {description = "increase master width factor", group = "layout"}), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, - {description = "decrease master width factor", group = "layout"}), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, - {description = "increase the number of master clients", group = "layout"}), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, - {description = "decrease the number of master clients", group = "layout"}), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, - {description = "increase the number of columns", group = "layout"}), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}), - awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, - {description = "select next", group = "layout"}), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, - {description = "select previous", group = "layout"}), + -- Awesome Controls + awful.key({ modkey, }, "s", hotkeys_popup.show_help, {description="show help", group="awesome"}), + awful.key({ modkey, }, "w", function () mymainmenu:show() end, {description = "show main menu", group = "awesome"}), + awful.key({ modkey, "Shift" }, "r", awesome.restart, {description = "reload awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "x", awesome.quit, {description = "quit awesome", group = "awesome"}), + + -- Focus + 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, }, "Tab", function () awful.client.focus.history.previous() if client.focus then client.focus:raise() end end, {description = "go back", group = "client"}), + awful.key({ modkey, }, "j", function () awful.client.focus.byidx(1) end, {description = "focus next by index", group = "client"}), + awful.key({ modkey, }, "k", function () awful.client.focus.byidx(-1) end, {description = "focus previous by index", group = "client"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, {description = "jump to urgent client", group = "client"}), + awful.key({ modkey, "Control" }, "Left", function () awful.screen.focus_bydirection("left") end), + awful.key({ modkey, "Control" }, "Right", function () awful.screen.focus_bydirection("right") end, {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_bydirection("right") end, {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_bydirection("left") end, {description = "focus the previous screen", group = "screen"}), + 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"}), + + -- Tags + awful.key({ modkey, }, "Escape", awful.tag.history.restore, {description = "go back", group = "tag"}), + awful.key({ modkey, }, "Left", awful.tag.viewprev, {description = "view previous", group = "tag"}), + awful.key({ modkey, }, "Right", awful.tag.viewnext, {description = "view next", group = "tag"}), + + -- Layouts + awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, {description = "decrease master width factor", group = "layout"}), + awful.key({ modkey, }, "l", function () awful.tag.incmwfact(0.05) end, {description = "increase master width factor", group = "layout"}), + awful.key({ modkey, }, "space", function () awful.layout.inc(1) end, {description = "select next", group = "layout"}), + awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol(1, nil, true) end, {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, {description = "decrease the number of columns", group = "layout"}), + awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1, nil, true) end, {description = "increase the number of master clients", group = "layout"}), + 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, {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, {description = "decrease the number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, {description = "select previous", group = "layout"}), + + -- Programs + awful.key({ modkey, }, "o", function () awful.spawn("ipass-otp") end, { description = "Select OTP", group = "awesome" }), + awful.key({ modkey, }, "p", function () awful.spawn("ipass") end, { description = "Select password", group = "awesome" }), awful.key({ modkey, "Control" }, "n", function () @@ -417,7 +405,6 @@ awful.rules.rules = { buttons = clientbuttons, screen = awful.screen.preferred, placement = awful.placement.no_overlap+awful.placement.no_offscreen, - opacity = 0.8, }, }, @@ -462,6 +449,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 +458,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 +486,7 @@ awful.rules.rules = { { -- Tag rules for email rule_any = { class = { + "evolution", "thunderbird", "kmail", }, @@ -503,6 +504,7 @@ awful.rules.rules = { "tsmapplication.exe", "lutris", "pathofexile.exe", + "mumble" }, }, properties = { @@ -569,10 +571,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 +648,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..51b7d92 --- /dev/null +++ b/.config/git/authorized_keys @@ -0,0 +1,15 @@ +# Personal keys +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMtUkeSiwk+1UnMfy8Z53cQkKTlBBFZXUuDiXfPcalHj tyil@anoia.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQp0puZEEADKgUF1XYtLPzcYLTGNdDj0WCTf37adaZ2 tyil@caeghi.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHiNIpe2QCOk22YYU/mY7QA2rq0E07wetzj5R1wtWxeC tyil@edephas.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCiQJhuTvL0vZoOAu1L0sU81VV2qH1l4U73bL9RYfrW tyil@faiwoo.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ94ffGPvEb/Hi2B2XSaYjKpMiV93fzGLe0QUlXRJb1L tyil@gaeru.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINRprF4gE0pGiMNSxR8Z0fFsBikoifsm7HpdbHkBsmDg tyil@hurzak.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIVPGs2LkDvdkMzwR1Crk8OblMQD2snClUuIcYgUYcu4 tyil@ludifah.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqLhjoIYRZmkD9sv1l1c03x6EpkadjfrGJ+4gqgkmp5 tyil@mieshu.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNztf75LVF+UvoIDyduHfynZupdC+9g7RaIs6cGgmCa tyil@nouki.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJkjrJ6agLK5Bdg2Y5B+88XDbP5UsQyvdUbd3LrOVmjI tyil@oolah.tyil.net +p.spek@tyil.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7XKD3KxXTe5GlM4w4xdap3VAPvYCi4EowD88ymInFR tyil@plarabe.tyil.net + +# xxllnc +patrick.spek@xxllnc.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7XKD3KxXTe5GlM4w4xdap3VAPvYCi4EowD88ymInFR diff --git a/.config/git/config b/.config/git/config index 6456797..434c4ba 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,16 @@ 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 + +[includeIf "gitdir:**/projects/xxllnc/**/.git"] + path = ~/.config/git/config-xxllnc diff --git a/.config/git/config-xxllnc b/.config/git/config-xxllnc new file mode 100644 index 0000000..e6ae439 --- /dev/null +++ b/.config/git/config-xxllnc @@ -0,0 +1,2 @@ +[user] + email = patrick.spek@xxllnc.nl 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/poezio/plugins/irc.cfg b/.config/poezio/plugins/irc.cfg new file mode 100644 index 0000000..cd578d8 --- /dev/null +++ b/.config/poezio/plugins/irc.cfg @@ -0,0 +1,2 @@ +[irc] +gateway = "biboumi.chat.tyil.nl" diff --git a/.config/poezio/poezio.cfg b/.config/poezio/poezio.cfg new file mode 100644 index 0000000..3e494e3 --- /dev/null +++ b/.config/poezio/poezio.cfg @@ -0,0 +1,557 @@ +# This is the default config for the XMPP client Poezio. +# Comments should be on their own line and NOT at the end +# of a meaningful line. +# Most options are commented in order to not override the +# default value which may have been changed since the time +# the file was copied on setup. + +[Poezio] + +# Jabber identifier. Specify it only if you want to connect using an existing +# account on a server. This is optional and useful only for some features, +# like room administration, nickname registration. +# The 'server' option will be ignored if you specify a JID (Jabber identifier) +# It should be in the form nickname@server.tld or nickname@server.tld/resource +jid = tyil@chat.tyil.nl/oolah + +# A password is needed only if you specified a jid. It will be ignored otherwise +# If you leave this empty, the password will be asked at each startup +password = + +# A command that will be executed if "password" is not set, e.g. a session password +# manager like secret-tool on gnome, or anything you want +eval_password = + +# This identifies this client over time with the server, to let it optimise +# offline storage and various other features. +device_id = pYCr + +# Path to a PEM certificate file to use for certificate authentication +# through SASL External. If set, keyfile MUST be provided as well in +# order to login. +certfile = + +# Path to a PEM private key file to use for certificate authentication +# through SASL External. If set, certfile MUST be provided as well in +# order to login. +keyfile = + +# the nick you will use when joining a room with no associated nick +# If this is empty, the $USER environment variable will be used +default_nick = tyil + +# the rooms you will join automatically on startup, with associated nickname or not +# format : room@server.tld/nickname:room2@server.tld/nickname2 +# default_nick will be used if "/nickname" is not specified +rooms = + +# a list of words (separated by a colon (:)) that will be +# highlighted if said by someone on a room +highlight_on = + +# Colon-separated list of plugins to load on startup +plugins_autoload = irc + +# The server used for anonymous connection. +# Make sure the server you're using accepts anonymous authentication +#server = anon.jeproteste.info + +# TLS Certificate fingerprint +# Do not touch this if you don’t know what you are doing +certificate = 8A:17:AA:81:58:44:B3:29:15:F7:61:BF:0E:A1:D1:75:16:29:61:93:76:A3:46:82:FB:98:11:E8:27:00:84:0E + +# List of ciphers allowed when connecting to the server, +# this list prioritizes forward secrecy and forbids anything +# weaker than 128 bits. +# You should probably leave it as it is +#ciphers = HIGH+kEDH:HIGH+kEECDH:HIGH:!PSK:!SRP:!3DES:!aNULL + +# Skip the TLS certificate fingerprint verification +# Should be false in most cases, as you want to check that the server keeps +# the same certificate. +#ignore_certificate = false + +# Force TLS on by default +#force_encryption = true + +# The interval to send a whitespace keepalive to the server +# 300 should be fine, except for specific services, in that case, change the +# value to the services default. +#whitespace_interval = 300 + +# Path to the certificate authenticating the Authority. +# A server may have several certificates, but if it uses a CA, it will often +# keep the same for obvious reasons, so this is a good option if your server +# does this, rather than skipping all verifications. +# This is not affected by ignore_certificate +# Poezio attempts to guess this value automatically. Set to override this +# behaviour, to the empty string for example, or to another path. +#ca_cert_path = + +# Auto-reconnects you when you get disconnected from the server +auto_reconnect = true + +# The time between the ping sent to the server to check if the connection is alive +#connection_check_interval = 300 + +# The timeout value of those pings +#connection_timeout_delay = 30 + +# Send the initial presence +# true, unless you want to be invisible from your contact list +# warning: this disables any presence sending other than chatrooms or directed +# presences via /presence +#send_initial_presence = true + +# The status (show) poezio will send when connecting. +# can be: xa,dnd,away,available,chat. +# An empty or invalid value will mean available. +#status = + +# The status message you will have upon connection +status_message = + +# Save the last used status in this file (in the status and status_message +# options) +#save_status = true + +# A custom host that will be used instead of the DNS records for the server +# (anonymous or the jid’s) defined above. +# You should not need this in a "normal" use case. +#custom_host = + +# A custom port to use instead of the 5222. +# This option can be combined with custom_host. +# You should not need this in a "normal" use case. +#custom_port = + +# the method that poezio will use to store your bookmarks online +# possible values are: privatexml, pep +# You should not have to modify this, but if you have to, please do. +use_bookmarks_method = + +# use this option to force the use of local bookmarks +# possible values are: anything/false +#use_remote_bookmarks = true + +# Whether you want all bookmarks, even those without +# autojoin, to be open on startup +#open_all_bookmarks = false + +# Will create a bookmark on manual /join, using your preferred +# storage method. Use /leave to remove the bookmark. +#synchronise_open_rooms = true + +# What will be put after the name, when using autocompletion at the +# beginning of the input. A space will always be added after that +after_completion = : + +# Whether or not to add a space after a completion in the middle of the +# input (not at the start of it) +#add_space_after_completion = true + +# The maximum length of the nickname that will be displayed in the +# conversation window. +#max_nick_length = 25 + +# Show the timestamp of each messages, or not +#show_timestamps = true + +# Allow a message to "correct" another message in the display if +# the sender wants it. +#group_corrections = true + +# Words that you want to complete on recent words completion, +# separated by a colon (:). +# e.g. words = "anticonstitutionnellement:I protest:I like bananas:" +#words = + +# XHTML-IM is an XMPP extension letting users send messages +# containing XHTML and CSS formating. We can use this to make +# colored text for example. +#enable_xhtml_im = true + +# If XHTML-IM is enabled, you may want to reject style parsing, to keep +# only semantic elements formatting. +#enable_css_parsing = true + +# Stream Management (XEP-0198) is an extension designed to improve +# the reliability of XMPP in unreliable network conditions (such +# as mobile networks). It can however increase bandwidth usage. +#enable_smacks = false + +# Set a number for this setting. +# The join OR status-change notices will be +# displayed according to this number. +# -1: the notices will ALWAYS be displayed +# 0: the notices will NEVER be displayed +# n: On any other number, the notices will only be displayed +# if the user involved has talked since the last n seconds +# The quit messages will be hidden only if hide_exit_join is 0 +# if the value is incorrect, -1 is assumed +# Default settings are : +# - all quit and join notices will be displayed +# - status changes won't be displayed unless +# the user talked in the last 2 minutes + +#hide_exit_join = -1 + +#hide_status_change = 120 + + +# Some informational messages (error, a contact getting connected, etc) +# are sometimes added to the information buffer. These settings can make +# it grow temporarly so you can read these information when they appear. + +# A list of message types that should make the information buffer grow +# Possible values; error, roster, warning, info, help +#information_buffer_popup_on = error roster warning help info + +# A list of message types separated by colons (":") that should be filtered out from the +# information buffer. +# Possible values; error, roster, warning, info, help +#information_buffer_type_filter = + +# The time the message will be visible. If the message takes more than +# one line, the popup will stay visible two second per additional lines +#popup_time = 4 + +# Whether to hide the list of user in the MultiUserChat tabs or not. Useful +# for example if you want to copy/paste the content of the buffer, or if you +# want to gain space +#hide_user_list = false + +# A list of words (or sentences) separated by colons (":"). All the +# informational messages (described above) containing at least one of those +# values will not be shown. +#filter_info_messages = + +# Set to 'true' if you want to automatically rejoin the +# rooms when you're kicked or banned +autorejoin = true + +# Set to the number of seconds before reconnecting when you are kicked +# or banned. No value, 0, or a negative value means you will be reconnected +# instantly. Only effective if autorejoin is set to true. +#autorejoin_delay = 5 + +# If you want poezio to join +# the room with an alternative nickname when +# your nickname is already in use in the room you +# wanted to join, put a non-empty value. +# Else, poezio won't join the room +# This value will be added to your nickname to +# create the alternative nickname. +# For example, if you set "_", and wanted to use +# the nickname "john", your alternative nickname +# will be "john_" +#alternative_nickname = + +# set to 'true' if you want to save logs of all the messages +# in files. +#use_log = true + +# set to 'false' to not sync the local lgos with the MAM server history +#mam_sync = true + +# The number of lines to preload in a chat buffer when it opens +# (the lines are preloaded from the log files) +# 0 or a negative value disable that option +#load_log = 10 + +# If log_dir is not set, logs will be saved in $XDG_DATA_HOME/poezio/logs, +# i.e. in ~/.local/share/poezio/logs/. So, you should specify the directory +# you want to use instead. This directory will be created if it doesn't exist +#log_dir = + +# Log the errors poezio encounters in log_dir/errors.log +# A false value disables this option. +#log_errors = true + +# If plugins_dir is not set, plugins will be loaded from the plugins/ dir in the +# poezio directory, then $XDG_DATA_HOME/poezio/plugins. +# You can specify another directory to use. It will be created if it doesn't exist +#plugins_dir = + +# If plugins_conf_dir is not set, plugin configs will be loaded from +# $XDG_CONFIG_HOME/poezio/plugins. You can specify another directory here. +#plugins_conf_dir = + +# the full path to the photo (avatar) you want to use +# it should be less than 16Ko +# The avatar is not set by default, because it slows +# poezio's startup a little. Uncomment if you want the default avatar + +#photo = ../data/poezio_80.png + +# If you want to show all the tabs in the Tab bar, even those +# with no activity, set to true. Else, set to false +#show_inactive_tabs = true + +# If you want to highlight tabs where the contact is typing +# possible values: +# - direct: one-to-one chats +# - private: private chats in chatrooms +# - conversation: chats with contacts or other JIDs +# - muc: chatrooms +# - true: all chat tabs +# - false or anything else: no highlighting +#show_composing_tabs = direct + +# Ignore private messages received in chatrooms +#ignore_private = false + +# If you want to show the tab names in the bottom tab bar, set this to true +#show_tab_names = false + +# If you want to disable the numbers in the bottom tab bar, set this to false +# If show_tab_names and show_tab_numbers are both false, the numbers will be +# shown +#show_tab_numbers = true + +# Use the contact name, the nick in the chatroom instead of the full JID to +# display the tab if set to true. +#use_tab_nicks = true + +# If set to false, poezio will first display the bookmark name, or if empty the +# user part of the JID (before the @) when displaying the chatroom tab name. +#show_muc_jid = false + +# If this option is set to false, the contact list will not show the contact +# JIDs when that is possible. +# e.g. instead of: toto (toto@example.org) (2) +# poezio will only show: toto (2) +#show_roster_jids = true + +# Show JIDs in conversation tabs +#show_jid_in_conversations = true + +# show s2s errors in the contact list +#show_s2s_errors = true + +# If set to true, the contact list will display offline contacts too +roster_show_offline = true + +# How to sort the contacts inside the contact list groups. +# They are used sequentially, (from left to right) +# Available sorting methods are: +# - reverse: reverse the sorting +# - jid: sort by JID (alphabetical order) +# - show: sort by show (available/away/xa/…) +# - name: sort by name (if no name, then the bare jid is used) +# - sname: case-sensitive name sorting (uppercase first) +# - resource: sort by resource number +# - online: sort by online presence (online or not) +# You can arrange them however you like, and you have to separate them with +# colons (":"). Keep in mind that if there are more than 3 or 4 your +# sorting is most likely inefficient. +#roster_sort = jid:show + +# How to sort the contact list groups. +# The principles are the same as roster_sort. +# Available methods are: +# - reverse: reverse the sorting +# - name: sort by group name (alphabetical order) +# - sname: case-sensitive name sorting (uppercase first) +# - fold: sort unfolded/folded +# - connected: sort by number of connected contacts +# - size: sort by group size +# - none: put the "none" group (if any) at the end of the list +#roster_group_sort = name + +# The terminal can beep on various event. Put the event you want in a list +# (separated by spaces). +# The events can be +# - highlight (when you are highlighted in a chatroom) +# - private (when a new private message is received, from your contacts or +# someone from a chatroiom) +# - message (any message from a chatroom) +# - invite (when you receive an invitation for joining a chatroom) +#beep_on = highlight private invite disconnect + +# Theme + +# If themes_dir is not set, logs will searched for in $XDG_DATA_HOME/poezio/themes, +# i.e. in ~/.local/share/poezio/themes/. So you should specify the directory you +# want to use instead. This directory will be created at startup if it doesn't +# exist +#themes_dir = + +# The name of the theme file that will be used. The file should be located +# in the theme_dir directory. +# If the file is not found (or no filename is specified) the default +# theme will be used instead +theme = dark + +# Whether to create gaps when moving or closing a tab +# (a gap means that the number of your tabs does not depend of the previous tabs +# but only of the creation order) +#create_gaps = false + +# If Alt-x is pressed and you are already on the tab numbered "x", +# you will go on the previous tab if that option is true +#go_to_previous_tab_on_alt_number = false + +# If true, a vertical list of tabs, with their name, is displayed on the left +# of the screen. Otherwise, it is a horizontal bar with just the tab numbers +# above the input bar. +enable_vertical_tab_list = true + +# Horizontal size of the vertical tab list +#vertical_tab_list_size = 20 + +# If set to desc, the tabs will be displayed from top to bottom in the list, +# if set to asc, they will be displayed from bottom to top. +#vertical_tab_list_sort = desc + +# Show the user list at the bottom when in a chatroom +# (useful when you want to look at the bottom of the screen only) +# possible values: desc, asc +#user_list_sort = desc + +# If _nick, nick_, _nick_, nick__ etc. should have the same color as nick +#nick_color_aliases = true + +# The nick of people who join, part, change their status, etc. in a chatroom +# will be displayed using their nick color if true. +#display_user_color_in_join_part = true + +# Change the tab state when receiving chatroom messages. +# useful if you are connected to a high-volume chatroom and do not +# want it to appear in your tab bar as active. Highlights are still +# shown. +#notify_messages = true + +# Enable Message Carbons (XEP-0280) to deliver message copies from and to +# other resources with carbons enabled. +#enable_carbons = true + +# Acknowledge message delivery receipts (XEP-0184) +#ack_message_receipts = true + +# Ask for message delivery receipts (XEP-0184) +#request_message_receipts = true + +# Display your contacts’ avatar in the roster if true. +#enable_avatars = true + +# Use Unicode half-block (▄) instead of full-block (█) to display images. +# This doubles the vertical resolution and gives square pixels, but may +# cause issues in some terminals. +#image_use_half_blocks = false + +# Extract base64 images received in XHTML-IM messages +# if true. +#extract_inline_images = true + +# The directory where the images will be saved; if unset, +# defaults to $XDG_CACHE_HOME/poezio/images. +#tmp_image_dir = + +# If set to true, use the nickname broadcasted by the user if none has been +# set manually. +#enable_user_nick = true + +# if true, chat states will be sent to the people you are talking to. +# Chat states are, for example, messages informing that you are composing +# a message or that you closed the tab, etc +# Set to false if you don't want people to know these information +# Note that you won’t receive the chat states of your contacts +# if you don't send yours. +#send_chat_states = true + +# if true, information about the software (name and version) +# will be sent if requested by anyone +# Set to false if you don't want people to know these information +#send_poezio_info = true + +# if true, information about the Operation System you're using +# will be sent when requested by anyone +# Set to false if you don't want people to know these information +# Note that this information will not be sent if send_poezio_info is False +#send_os_info = true + +# if true, your current time will be sent if asked +# Set to false if you don't want people to know that information +#send_time = true + +# If true, the history of the similar inputs won't be shared between +# different tabs (as in weechat). +#separate_history = false + +# The language you specify using. +# This *may* be used by an automated entity to send you tailored replies +# If you don't understand, leave en. +#lang = en + +# Configure the number of maximum lines and messages (for each tab) that +# can be kept in memory. If poezio consumes too much memory, lower these +# values +#max_messages_in_memory = 2048 +#max_lines_in_memory = 2048 + +# Show the separator at the bottom of the text buffer, even if no one +# spoke +#show_useless_separator = true + +# Set this to true if you want the commands to be executed remotely +# (with ssh & the daemon), see the documentation of the /link plugin +# for details +#exec_remote = false + +# Path of the FIFO in which the remote commands will be sent. +# The "poezio.fifo" file will be created in this directory +# Used with exec_remote set to true, see the documentation of /link for details +# Defaults to ./ +#remote_fifo_path = ./ + +# Defines if all tabs are resized at the same time (if set to false) +# or if they are really resized only when needed (if set to true). +# “true” should be the most comfortable value +#lazy_resize = true + +# If set to true and if show_tab_names is set, the info bar will only show +# the unique prefix of each tab name instead of the full name. This saves a +# lot of space if many tabs exist or are active. +# Best used with the `/wup` command or the `_go_to_room_name` action to select +# a tab based on the prefix. +#unique_prefix_tab_names = false + +[bindings] +# Bindings are keyboard shortcut aliases. You can use them +# to define your own keys and bind them with some functions +# The syntax is +# key = bind +# where ^x means Control + x +# and M-x means Alt + x +# The example turns Alt + i into a tab key +M-i = ^I + +[var] +# You should not edit this section, it is just used by poezio +# to save various data across restarts +folded_roster_groups = +info_win_height = 0 + +[muc_colors] +# Set color for a nick, under the form +# nick = color + +[#cock.li%irc.darenet.org@biboumi.chat.tyil.nl] +notify_messages = false +[#guardsmanbob%irc.twitch.tv@biboumi.chat.tyil.nl] +notify_messages = false +[#fosdem%irc.libera.chat@biboumi.chat.tyil.nl] +notify_messages = false +[#scriptkitties%irc.libera.chat@biboumi.chat.tyil.nl] +notify_messages = false +[#indieweb%irc.libera.chat@biboumi.chat.tyil.nl] +notify_messages = false +[#scriptkitties%irc.oftc.net@biboumi.chat.tyil.nl] +notify_messages = false +[#scriptkitties%irc.darenet.org@biboumi.chat.tyil.nl] +notify_messages = false +[gajim@conference.gajim.org] +notify_messages = false +[slidge@conference.nicoco.fr] +notify_messages = false 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; +} |