Compare commits

...

60 Commits

Author SHA1 Message Date
d0429d44a3 nvim: update to v0.11 2025-11-08 16:01:49 +02:00
33f87bc232 add wal 2025-10-04 23:01:26 +03:00
9726936f96 add mic mute button support 2025-09-12 22:43:52 +03:00
eb3fbb2047 sway: support screenshare 2025-08-30 16:37:08 +03:00
b64f4f3af4 polybar: remove wlan and eth modules 2025-08-30 16:36:54 +03:00
8336aed99b nvim: change tabstop size for gleam 2025-08-30 16:36:38 +03:00
3730973a77 i3: update startup and music player 2025-08-30 16:36:19 +03:00
91b3537d89 gtk3: change theme 2025-08-30 16:35:59 +03:00
90bbd37e14 fish: clean up xdg + remove old aliases 2025-08-30 16:35:38 +03:00
eead409480 x11: create config directory 2025-08-30 16:19:10 +03:00
ff836e7ea2 dots: remove old notes 2025-06-22 19:04:58 +03:00
bd192e3d2f gtk: use catppuccin 2025-06-20 19:37:00 +03:00
ef13f19d90 sway: switch to misc wayland native apps 2025-06-20 19:36:10 +03:00
f1ab7300e8 polybar: fix broken font 2025-06-20 19:35:46 +03:00
e8a527e15d zellij: add catppuccin themes 2025-06-20 19:35:29 +03:00
52da056884 waybar: remove network 2025-06-20 19:35:16 +03:00
c462171b4f nvim: lots of random lsps and coloring configuration 2025-06-20 19:28:33 +03:00
842859344e nvim: update diagnostic mappings to not use Trouble by default 2025-06-08 18:02:44 +00:00
dd2b6da3a8 waybar: almost finish polybar clone 2025-02-01 21:06:03 +02:00
55837f4a0a nvim: pylsp + catpuccin 2025-02-01 21:05:49 +02:00
3d7c530095 sway: add everything 2025-02-01 21:05:31 +02:00
c38495c56b waybar: update config to be similar to polybar 2025-01-31 10:57:51 +02:00
d46b5bc1b2 add waybar and sway 2025-01-17 20:54:59 +02:00
7e5f42cd3e nvim: luasnip 2024-12-06 14:01:53 +02:00
68784e1fc5 userdirs: put documents in ~/.local/share 2024-11-19 20:19:50 +02:00
e448f093cf xinitrc: add some random wms. i don't really use this anymore 2024-11-19 20:19:18 +02:00
816b9ae215 sxhkd: use rofi -drun 2024-11-19 20:19:01 +02:00
e98ba9e7f4 polybar: add pipewire buffer size module 2024-11-19 20:18:42 +02:00
532f2eb9ee fish: xdg cleanup 2024-11-19 20:18:13 +02:00
6c4159d112 i3: make rofi run with -drun 2024-11-19 20:17:50 +02:00
8e916634f5 bspwm: focus follows mouse 2024-11-19 20:17:35 +02:00
cf824134f2 bspwm: update config to feel exactly like herbstluftwm 2024-11-08 13:57:05 +02:00
c28f82f6cf i3: make config more similar to herbstluft one 2024-11-08 11:56:55 +02:00
78bbc87a9a polybar: change date format to day-month-year 2024-11-08 11:56:13 +02:00
f355989ee5 i3: picom on startup 2024-11-08 11:55:10 +02:00
beceda2bfd herbstluftwm: back to firefox 2024-11-08 11:54:51 +02:00
41f2212d4e gtk: switch to everforest 2024-11-08 11:54:35 +02:00
e6522b7a0f fish: pikaur -> paru 2024-11-08 11:54:16 +02:00
e4ffb81e35 wal: update everforest theme 2024-11-08 11:53:47 +02:00
245d410f48 meta: add file 2024-11-02 19:26:20 +02:00
3f3ea931d8 wal: add everforest theme 2024-10-26 11:45:11 +03:00
c8c7352437 nvim: update which-key to match spec 2024-10-12 18:32:58 +03:00
9db6d0de25 nvim: updates + treesitter context 2024-09-23 20:22:08 +03:00
f1639f1775 zellij: fix movement keybind 2024-08-10 10:54:21 +03:00
65023e6fe1 bspwm: add workspace bindings 2024-08-10 10:50:26 +03:00
e71c317999 zellij: add zellij 2024-08-10 10:50:03 +03:00
e6a8c11193 qtile: add autostart 2024-08-03 17:50:23 +03:00
4725ea90f7 bspwm: add 2024-08-03 17:50:11 +03:00
c321a599e4 qtile: update config to match awesome 2024-08-03 17:49:08 +03:00
7a01bda031 herbstluftwm: minor changes in config as i go back to using it :D 2024-08-03 17:48:22 +03:00
d045f8dde4 user dirs update 2024-07-27 15:57:30 +03:00
90e743aceb fzfsample: add midi file support 2024-07-27 15:57:11 +03:00
d41238d59d polybar: add mpd module 2024-07-27 15:56:53 +03:00
12497b52f3 picom: add zrhythm rule 2024-07-27 15:56:39 +03:00
2e1ce7c1b6 ncmpcpp: update song list format 2024-07-27 15:56:23 +03:00
307924993b i3: add i3 2024-07-27 15:56:13 +03:00
1a0ee98d70 gtk: random settings 2024-07-27 15:55:50 +03:00
1bfc38b24c fish: use starship 2024-07-27 15:55:33 +03:00
198811bbef awesome: idk 2024-07-27 15:55:13 +03:00
edc05887fb xinitrc: add a bunch of wms 2024-07-27 15:54:24 +03:00
65 changed files with 2532 additions and 348 deletions

View File

@ -5,5 +5,11 @@ setxkbmap -layout eu,il -option grp:alt_shift_toggle
xsetwacom set "Wacom One by Wacom S Pen stylus" MapToOutput 1920x1200+2560+0
xsetwacom set "Wacom One by Wacom S Pen stylus" Rotate half
xset r rate 300 50
# exec herbstluftwm
exec awesome
exec herbstluftwm
# qtile start
# exec gnome-session
# exec xfce4-session
# exec awesome
# exec bspwm
# exec i3
# exec leftwm

422
.config/awesome/old/rc.lua Normal file
View File

@ -0,0 +1,422 @@
pcall(require, "luarocks.loader")
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
local menubar = require("menubar")
require("awful.hotkeys_popup.keys")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors,
})
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function(err)
-- Make sure we don't go into an endless error loop
if in_error then
return
end
in_error = true
naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = tostring(err),
})
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "kitty"
browser = "firefox"
calc = "rofi -show calc"
file_manager = "thunar"
launcher = "rofi -show run"
music_player = terminal .. " -e ncmpcpp"
screen_locker = "i3lock -c 000000"
mod = "Mod4"
awful.layout.layouts = {
-- awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.corner.nw,
-- awful.layout.suit.corner.ne,
-- awful.layout.suit.corner.sw,
-- awful.layout.suit.corner.se,
}
local tag_names = { "a", "s", "d", "f", "g", "z", "x", "c", "v", "b" }
-- Widgets
local mydate = wibox.widget.textclock("%H:%M")
mydate.font = "mononoki 12"
awful.screen.connect_for_each_screen(function(s)
-- Each screen has its own tag table.
awful.tag(tag_names, s, awful.layout.layouts[1])
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- 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({
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons,
})
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist({
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons,
})
-- Create the wibox
s.mywibox = awful.wibar({
position = "top",
screen = s,
height = 29,
})
-- Add widgets to the wibox
s.mywibox:setup({
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
})
end)
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({}, 3, function()
mymainmenu:toggle()
end),
awful.button({}, 4, awful.tag.viewnext),
awful.button({}, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = gears.table.join(
-- basics
awful.key({ mod }, "t", awesome.restart),
-- focus
awful.key({ mod }, "h", awful.client.focus.bydirection("left")),
awful.key({ mod }, "j", awful.client.focus.bydirection("down")),
awful.key({ mod }, "k", awful.client.focus.bydirection("up")),
awful.key({ mod }, "l", awful.client.focus.bydirection("right")),
-- shift
awful.key({ mod, "Shift" }, "h", awful.client.swap.bydirection("left")),
awful.key({ mod, "Shift" }, "j", awful.client.swap.bydirection("down")),
awful.key({ mod, "Shift" }, "k", awful.client.swap.bydirection("up")),
awful.key({ mod, "Shift" }, "l", awful.client.swap.bydirection("right")),
-- cycle
awful.key({ mod }, "m", function()
awful.screen.focus_relative(1)
end),
-- cycle layouts
awful.key({ mod }, "Tab", function()
awful.layout.inc(1)
end),
-- Standard program
awful.key({ mod }, "Return", function()
awful.spawn(terminal)
end),
awful.key({ mod, "Control" }, "l", function()
awful.tag.incmwfact(0.05)
end),
awful.key({ mod, "Control" }, "h", function()
awful.tag.incmwfact(-0.05)
end),
awful.key({ mod, "Shift" }, "h", function()
awful.tag.incnmaster(1, nil, true)
end),
awful.key({ mod, "Shift" }, "l", function()
awful.tag.incnmaster(-1, nil, true)
end),
awful.key({ mod, "Control" }, "h", function()
awful.tag.incncol(1, nil, true)
end),
awful.key({ mod, "Control" }, "l", function()
awful.tag.incncol(-1, nil, true)
end),
awful.key({ mod, "Shift" }, "Tab", function()
awful.layout.inc(-1)
end),
awful.key({ mod }, "space", function()
awful.spawn("rofi -show run")
end),
awful.key({ mod }, "1", function()
awful.spawn("thunar")
end),
awful.key({ mod }, "2", function()
awful.spawn("firefox")
end),
awful.key({ mod }, "3", function()
awful.spawn("rofi -show calc")
end),
awful.key({ mod }, "4", function()
awful.spawn("kitty -e ncmpcpp")
end),
awful.key({ mod }, "0", function()
awful.spawn("i3lock -c 000000")
end),
awful.key({ mod, "Control" }, "n", function()
local c = awful.client.restore()
-- Focus restored client
if c then
c:emit_signal("request::activate", "key.unminimize", { raise = true })
end
end, { description = "restore minimized", group = "client" })
)
clientkeys = gears.table.join(
-- basics
awful.key({ mod }, "w", function(c)
c:kill()
end),
-- window attributes
awful.key({ mod, "Control" }, "e", function(c)
c.fullscreen = not c.fullscreen
c:raise()
end),
awful.key({ mod, "Control" }, "q", awful.client.floating.toggle),
awful.key({ mod, "Control" }, "Return", function(c)
c:swap(awful.client.getmaster())
end, { description = "move to master", group = "client" }),
awful.key({ mod }, "o", function(c)
c:move_to_screen()
end, { description = "move to screen", group = "client" }),
awful.key({ mod }, "t", function(c)
c.ontop = not c.ontop
end, { description = "toggle keep on top", group = "client" }),
awful.key({ mod }, "n", function(c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end, { description = "minimize", group = "client" }),
awful.key({ mod }, "m", function(c)
c.maximized = not c.maximized
c:raise()
end, { description = "(un)maximize", group = "client" }),
awful.key({ mod, "Control" }, "m", function(c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end, { description = "(un)maximize vertically", group = "client" }),
awful.key({ mod, "Shift" }, "m", function(c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end, { description = "(un)maximize horizontally", group = "client" })
)
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
-- for
local tags = { "a", "s", "d", "f", "g", "z", "x", "c", "v", "b" }
for i, tag_name in ipairs(tags) do
globalkeys = gears.table.join(
globalkeys,
-- View tag only.
awful.key({ mod }, tag_name, function()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
tag:view_only()
end
end),
-- Toggle tag display.
awful.key({ mod, "Control" }, tag_name, function()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
awful.tag.viewtoggle(tag)
end
end),
-- Move client to tag.
awful.key({ mod, "Shift" }, tag_name, function()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:move_to_tag(tag)
end
end
end),
-- Toggle tag on focused client.
awful.key({ mod, "Control", "Shift" }, tag_name, function()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:toggle_tag(tag)
end
end
end)
)
end
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{
rule = {},
properties = {
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap + awful.placement.no_offscreen,
},
},
-- Floating clients.
{
rule_any = {
instance = {
"DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class.
"pinentry",
},
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"MessageWin", -- kalarm.
"Sxiv",
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui",
"veromix",
"xtightvncviewer",
},
-- Note that the name property shown in xprop might be set slightly after creation of the client
-- and the name shown there might not match defined rules here.
name = {
"Event Tester", -- xev.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
},
},
properties = { floating = true },
},
-- Add titlebars to normal clients and dialogs
{ rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = true } },
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function(c)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- if not awesome.startup then awful.client.setslave(c) end
if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c)
end
end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", { raise = false })
end)
client.connect_signal("focus", function(c)
c.border_color = beautiful.border_focus
end)
client.connect_signal("unfocus", function(c)
c.border_color = beautiful.border_normal
end)
-- }}}
--
-- local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default")
-- beautiful.init(theme_path)
-- beautiful.init(gears.filesystem.get_themes_dir() .. "xresources/theme.lua")
local mytheme = require("theme")
beautiful.init(mytheme)

View File

@ -0,0 +1,118 @@
---------------------------------------------
-- Awesome theme which follows xrdb config --
-- by Yauhen Kirylau --
---------------------------------------------
local theme_assets = require("beautiful.theme_assets")
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local xrdb = xresources.get_current_theme()
local gfs = require("gears.filesystem")
local themes_path = gfs.get_themes_dir()
-- inherit default theme
local theme = dofile(themes_path .. "default/theme.lua")
-- load vector assets' generators for this theme
theme.font = "mononoki 12"
theme.bg_normal = xrdb.color0
theme.bg_focus = xrdb.color8
theme.bg_urgent = xrdb.color1
theme.bg_minimize = xrdb.color7
theme.bg_systray = theme.bg_normal
theme.fg_normal = xrdb.foreground
theme.fg_focus = theme.bg_normal
theme.fg_urgent = theme.bg_normal
theme.fg_minimize = theme.bg_normal
theme.useless_gap = dpi(6)
theme.border_width = dpi(4)
theme.border_normal = xrdb.color0
theme.border_focus = theme.bg_focus
theme.border_marked = xrdb.color10
-- There are other variable sets
-- overriding the default one when
-- defined, the sets are:
-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
-- tasklist_[bg|fg]_[focus|urgent]
-- titlebar_[bg|fg]_[normal|focus]
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
-- Example:
--theme.taglist_bg_focus = "#ff0000"
theme.tooltip_fg = theme.fg_normal
theme.tooltip_bg = theme.bg_normal
-- Variables set for theming the menu:
-- menu_[bg|fg]_[normal|focus]
-- menu_[border_color|border_width]
theme.menu_submenu_icon = themes_path .. "default/submenu.png"
theme.menu_height = dpi(16)
theme.menu_width = dpi(100)
-- You can add as many variables as
-- you wish and access them by using
-- beautiful.variable in your rc.lua
--theme.bg_widget = "#cc0000"
-- Recolor Layout icons:
theme = theme_assets.recolor_layout(theme, theme.fg_normal)
-- Recolor titlebar icons:
--
local function darker(color_value, darker_n)
local result = "#"
for s in color_value:gmatch("[a-fA-F0-9][a-fA-F0-9]") do
local bg_numeric_value = tonumber("0x" .. s) - darker_n
if bg_numeric_value < 0 then
bg_numeric_value = 0
end
if bg_numeric_value > 255 then
bg_numeric_value = 255
end
result = result .. string.format("%2.2x", bg_numeric_value)
end
return result
end
theme = theme_assets.recolor_titlebar(theme, theme.fg_normal, "normal")
theme = theme_assets.recolor_titlebar(theme, darker(theme.fg_normal, -60), "normal", "hover")
theme = theme_assets.recolor_titlebar(theme, xrdb.color1, "normal", "press")
theme = theme_assets.recolor_titlebar(theme, theme.fg_focus, "focus")
theme = theme_assets.recolor_titlebar(theme, darker(theme.fg_focus, -60), "focus", "hover")
theme = theme_assets.recolor_titlebar(theme, xrdb.color1, "focus", "press")
-- Define the icon theme for application icons. If not set then the icons
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
theme.icon_theme = nil
-- Generate Awesome icon:
theme.awesome_icon = theme_assets.awesome_icon(theme.menu_height, theme.bg_focus, theme.fg_focus)
-- Generate taglist squares:
local taglist_square_size = dpi(4)
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(taglist_square_size, theme.fg_normal)
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(taglist_square_size, theme.fg_normal)
-- Try to determine if we are running light or dark colorscheme:
local bg_numberic_value = 0
for s in theme.bg_normal:gmatch("[a-fA-F0-9][a-fA-F0-9]") do
bg_numberic_value = bg_numberic_value + tonumber("0x" .. s)
end
local is_dark_bg = (bg_numberic_value < 383)
-- Generate wallpaper:
local wallpaper_bg = xrdb.color8
local wallpaper_fg = xrdb.color7
local wallpaper_alt_fg = xrdb.color12
if not is_dark_bg then
wallpaper_bg, wallpaper_fg = wallpaper_fg, wallpaper_bg
end
theme.wallpaper = function(s)
return theme_assets.wallpaper(wallpaper_bg, wallpaper_fg, wallpaper_alt_fg, s)
end
return theme

View File

@ -15,7 +15,8 @@ local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
local volume_widget = require("awesome-wm-widgets.volume-widget.volume")
local volume_widget = require("awesome-wm-widgets.pactl-widget.volume")
local mpdarc_widget = require("awesome-wm-widgets.mpdarc-widget.mpdarc")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
@ -58,7 +59,7 @@ beautiful.init(theme)
-- This is used later as the default terminal and editor to run.
terminal = "kitty"
browser = "firefox"
browser = "brave"
calculator = "rofi -show calc"
file_manager = "pcmanfm"
launcher = "rofi -show run"
@ -84,7 +85,7 @@ awful.layout.layouts = {
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
-- awful.layout.suit.magnifier,
awful.layout.suit.corner.nw,
awful.layout.suit.floating,
-- awful.layout.suit.corner.ne,
@ -241,7 +242,7 @@ awful.screen.connect_for_each_screen(function(s)
widget = wibox.widget.separator,
orientation = "vertical",
forced_width = 4,
forced_height = 4,
forced_height = 2,
span_ration = 0.5,
-- color =
})
@ -249,30 +250,25 @@ awful.screen.connect_for_each_screen(function(s)
-- Add widgets to the wibox
s.mywibar:setup({
layout = wibox.layout.align.horizontal,
{
expand = "none",
{ -- left widgets
layout = wibox.layout.fixed.horizontal,
s.mytaglist,
},
{
layout = wibox.layout.align.horizontal,
nil,
{
widget = wibox.container.margin,
margins = 5,
{
widget = mytextclock,
},
},
nil,
},
{
{ -- middle widgets
layout = wibox.layout.fixed.horizontal,
spacing = 5,
separator,
mytextclock,
},
{ -- right widgets
layout = wibox.layout.fixed.horizontal,
-- spacing = 5,
-- mpdarc_widget,
-- separator,
volume_widget({
volume_widget = "icon_and_text",
widget_type = "icon_and_text",
}),
separator,
separator,
mykeyboardlayout,
separator,
s.mylayoutbox,
@ -563,7 +559,8 @@ awful.rules.rules = {
"Wpa_gui",
"veromix",
"xtightvncviewer",
"Cadence",
"PipeControl",
"Untitled1 — A PipeWire Graph Qt GUI Interface",
},
-- Note that the name property shown in xprop might be set slightly after creation of the client
@ -589,13 +586,13 @@ awful.rules.rules = {
}
-- }}}
client.connect_signal("property::floating", function(c)
if c.floating then
c.ontop = true
else
c.ontop = false
end
end)
-- client.connect_signal("property::floating", function(c)
-- if c.floating then
-- c.ontop = true
-- else
-- c.ontop = false
-- end
-- end)
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function(c)
@ -626,6 +623,14 @@ client.connect_signal("request::titlebars", function(c)
)
end)
-- client.connect_signal("property::floating", function(c)
-- if c.floating then
-- c.ontop = true
-- else
-- c.ontop = false
-- end
-- end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", { raise = false })

37
.config/bspwm/bspwmrc Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env sh
# Load colors from wal
[ -f "${HOME}/.cache/wal/colors.sh" ] && . "${HOME}/.cache/wal/colors.sh"
bspc config focus_follows_pointer true
# Set bspwm settings
bspc monitor -d a s d f g z x c v b
bspc config border_width 2
bspc config window_gap 12
bspc config split_ratio 0.5
bspc config border_color_normal $color0
bspc config border_color_focus $color8
bspc config border_color_urgent $color1
# Set bspwm rules
bspc rule -a "Cadence" floating=on
bspc rule -a "Lxpolkit" floating=on
bspc rule -a "Dragon-drag-and-drop" floating=on
bspc rule -a "dialog" floating=on
bspc rule -a "notification" manage=off
bspc rule -a "dock" manage=off
bspc rule -a "desktop" manage=off
# Startup applications
sxhkd &
# dunst &
mpd &
flameshot &
lxpolkit &
picom --experimental-backends &
wal -R
~/.fehbg
# Panel
${HOME}/.config/bspwm/panel

4
.config/bspwm/panel Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
polybar-msg cmd quit
polybar main 2>&1 & disown

View File

@ -0,0 +1,31 @@
# cleanup
set -Ux ANDROID_HOME "$XDG_DATA_HOME"/android
set -Ux CARGO_HOME "$XDG_DATA_HOME"/cargo
set -Ux CUDA_CACHE_PATH "$XDG_CACHE_HOME"/nv
set -Ux GDBHISTFILE "$XDG_DATA_HOME"/gdb/history
set -Ux GNUPGHOME "$XDG_DATA_HOME"/gnupg
set -Ux GOPATH "$XDG_DATA_HOME"/go
set -Ux ICEAUTHORITY "$XDG_CACHE_HOME"/ICEauthority
set -Ux IPYTHONDIR "$XDG_CONFIG_HOME"/ipython
set -Ux LESSHISTFILE -
set -Ux MYPY_CACHE_DIR "$XDG_CACHE_HOME"/mypy
set -Ux NPM_CONFIG_USERCONFIG "$XDG_CONFIG_HOME"/npm/npmrc
set -Ux PASSWORD_STORE_DIR "$XDG_DATA_HOME"/pass
set -Ux RUSTUP_HOME "$XDG_DATA_HOME"/rustup
set -Ux SQLITE_HISTORY "$XDG_CACHE_HOME"/sqlite_history
set -Ux UNCRUSTIFY_CONFIG "$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg
set -Ux XAUTHORITY "$XDG_RUNTIME_DIR"/Xauthority
set -Ux _JAVA_OPTIONS -Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
set -Ux ERRFILE "$XDG_CACHE_HOME/X11/xsession-errors"
set -Ux XAUTHORITY "$XDG_RUNTIME_DIR"/Xauthority
set -Ux RUSTUP_HOME "$XDG_DATA_HOME"/rustup
set -Ux CARGO_HOME "$XDG_DATA_HOME"/cargo
set -Ux XINITRC "$XDG_CONFIG_HOME"/X11/xinitrc
set -Ux ANDROID_USER_HOME "$XDG_DATA_HOME"/android
set -Ux DOCKER_CONFIG "$XDG_CONFIG_HOME"/docker
set -Ux GNUPGHOME "$XDG_DATA_HOME"/gnupg
set -Ux GTK2_RC_FILES "$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
set -Ux MINIKUBE_HOME "$XDG_DATA_HOME"/minikube
set -Ux _JAVA_OPTIONS '-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java'
set -Ux PYENV_ROOT "$XDG_DATA_HOME"/pyenv
set -Ux PYTHONSTARTUP "$XDG_CONFIG_HOME"/python/pythonrc

View File

@ -16,30 +16,11 @@ set -Ux XDG_CONFIG_HOME "$HOME/.config"
set -Ux XDG_DATA_HOME "$HOME/.local/share"
set -Ux XDG_CACHE_HOME "$HOME/.cache"
# cleanup
set -Ux ANDROID_HOME "$XDG_DATA_HOME"/android
set -Ux CARGO_HOME "$XDG_DATA_HOME"/cargo
set -Ux CUDA_CACHE_PATH "$XDG_CACHE_HOME"/nv
set -Ux GDBHISTFILE "$XDG_DATA_HOME"/gdb/history
set -Ux GNUPGHOME "$XDG_DATA_HOME"/gnupg
set -Ux GOPATH "$XDG_DATA_HOME"/go
set -Ux ICEAUTHORITY "$XDG_CACHE_HOME"/ICEauthority
set -Ux IPYTHONDIR "$XDG_CONFIG_HOME"/ipython
set -Ux LESSHISTFILE -
set -Ux MYPY_CACHE_DIR "$XDG_CACHE_HOME"/mypy
set -Ux NPM_CONFIG_USERCONFIG "$XDG_CONFIG_HOME"/npm/npmrc
set -Ux PASSWORD_STORE_DIR "$XDG_DATA_HOME"/pass
set -Ux RUSTUP_HOME "$XDG_DATA_HOME"/rustup
set -Ux SQLITE_HISTORY "$XDG_CACHE_HOME"/sqlite_history
set -Ux UNCRUSTIFY_CONFIG "$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg
set -Ux XAUTHORITY "$XDG_RUNTIME_DIR"/Xauthority
set -Ux _JAVA_OPTIONS -Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
# wine prefix
set -Ux WINEPREFIX "$XDG_DATA_HOME/wine/"
# set -Ux WINEPREFIX "$XDG_DATA_HOME/wine/"
# kvantum
set -Ux QT_STYLE_OVERRIDE kvantum
set -Ux QT_QPA_PLATFORMTHEME qt5ct
# use nvim for stuff
set -Ux EDITOR nvim
@ -47,3 +28,8 @@ set -Ux MANPAGER nvimpager
# zoxide
set -Ux _ZO_MAXAGE 100000
# kubectl
set -Ux KUBECONFIG ~/.kube/config
starship init fish | source

View File

@ -0,0 +1,65 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export ANDROID_HOME:/home/trt/\x2elocal/share/android
SETUVAR --export ANDROID_USER_HOME:/home/trt/\x2elocal/share/android
SETUVAR --export CARGO_HOME:/home/trt/\x2elocal/share/cargo
SETUVAR --export --path CUDA_CACHE_PATH:/home/trt/\x2ecache/nv
SETUVAR --export DOCKER_CONFIG:/home/trt/\x2econfig/docker
SETUVAR --export EDITOR:nvim
SETUVAR --export ERRFILE:/home/trt/\x2ecache/X11/xsession\x2derrors
SETUVAR --export GDBHISTFILE:/home/trt/\x2elocal/share/gdb/history
SETUVAR --export GNUPGHOME:/home/trt/\x2elocal/share/gnupg
SETUVAR --export --path GOPATH:/home/trt/\x2elocal/share/go
SETUVAR --export GTK2_RC_FILES:/home/trt/\x2econfig/gtk\x2d2\x2e0/gtkrc
SETUVAR --export ICEAUTHORITY:/home/trt/\x2ecache/ICEauthority
SETUVAR --export IPYTHONDIR:/home/trt/\x2econfig/ipython
SETUVAR --export KUBECONFIG:/home/trt/\x2ekube/config
SETUVAR --export LESSHISTFILE:\x2d
SETUVAR --export MANPAGER:nvimpager
SETUVAR --export MINIKUBE_HOME:/home/trt/\x2elocal/share/minikube
SETUVAR --export MYPY_CACHE_DIR:/home/trt/\x2ecache/mypy
SETUVAR --export NPM_CONFIG_USERCONFIG:/home/trt/\x2econfig/npm/npmrc
SETUVAR --export PASSWORD_STORE_DIR:/home/trt/\x2elocal/share/pass
SETUVAR --export PYENV_ROOT:/home/trt/\x2elocal/share/pyenv
SETUVAR --export PYTHONSTARTUP:/home/trt/\x2econfig/python/pythonrc
SETUVAR --export QT_QPA_PLATFORMTHEME:qt5ct
SETUVAR --export RUSTUP_HOME:/home/trt/\x2elocal/share/rustup
SETUVAR --export SQLITE_HISTORY:/home/trt/\x2ecache/sqlite_history
SETUVAR --export UNCRUSTIFY_CONFIG:/home/trt/\x2econfig/uncrustify/uncrustify\x2ecfg
SETUVAR --export XAUTHORITY:/run/user/1000/Xauthority
SETUVAR --export XDG_CACHE_HOME:/home/trt/\x2ecache
SETUVAR --export XDG_CONFIG_HOME:/home/trt/\x2econfig
SETUVAR --export XDG_DATA_HOME:/home/trt/\x2elocal/share
SETUVAR --export XINITRC:/home/trt/\x2econfig/X11/xinitrc
SETUVAR --export _JAVA_OPTIONS:\x2dDjava\x2eutil\x2eprefs\x2euserRoot\x3d\x22\x24XDG_CONFIG_HOME\x22/java
SETUVAR --export _ZO_MAXAGE:100000
SETUVAR __fish_initialized:3800
SETUVAR fish_color_autosuggestion:brblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:normal
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:yellow\x1e\x2di
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_user_paths:/home/trt/\x2econfig/scripts/util\x1e/home/trt/\x2econfig/scripts/applications\x1e/home/trt/\x2elocal/share/go/bin\x1e/home/trt/\x2elocal/bin

View File

@ -0,0 +1,20 @@
function fish_prompt --description 'Informative prompt'
#Save the return status of the previous command
set -l last_pipestatus $pipestatus
set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
if functions -q fish_is_root_user; and fish_is_root_user
printf '%s@%s %s%s%s# ' $USER (prompt_hostname) (set -q fish_color_cwd_root
and set_color $fish_color_cwd_root
or set_color $fish_color_cwd) \
(prompt_pwd) (set_color normal)
else
set -l status_color (set_color $fish_color_status)
set -l statusb_color (set_color --bold $fish_color_status)
set -l pipestatus_string (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
printf '[%s] %s%s@%s %s%s %s%s%s \n> ' (date "+%H:%M:%S") (set_color brblue) \
$USER (prompt_hostname) (set_color $fish_color_cwd) $PWD $pipestatus_string \
(set_color normal)
end
end

View File

@ -1,4 +1,4 @@
function p --wraps=pikaur --description 'alias p pikaur'
pikaur $argv
paru $argv
end

View File

@ -1,4 +0,0 @@
function pm --wraps=pulsemixer --description 'alias pm=pulsemixer'
pulsemixer $argv
end

View File

@ -1,4 +0,0 @@
function py --wraps=python --description 'alias py=python'
python $argv
end

View File

@ -0,0 +1,3 @@
function adb
env HOME="$XDG_DATA_HOME/android" adb $argv
end

View File

@ -1,4 +1,4 @@
function yeet --wraps='pikaur -Rsn' --description 'alias yeet=pikaur -Rsn'
pikaur -Rsn $argv
paru -Rsn $argv
end

View File

@ -1,14 +1,17 @@
[Settings]
gtk-button-images=0
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-theme-name=Catppuccin-Dark-Macchiato
gtk-icon-theme-name=Papirus-Dark
gtk-menu-images=0
gtk-theme-name=wal
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-font-name=Sans 9
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=0
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1

View File

@ -47,7 +47,7 @@ screen_locker="i3lock -c 000000"
# basics
hc keybind "$M-w" close_and_remove
hc keybind "$M-e" close
hc keybind "$M-t" reload
hc keybind "$M-$C-r" reload
hc keybind "$M-q" spawn exitmenu
# focus
@ -195,7 +195,7 @@ hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
hc rule class=Cadence floating=on
hc rule class=Lxpolkit floating=on
hc rule class=Dragon-drag-and-drop floating=on
hc rule class=Dragon-drop floating=on
#
# settings
@ -215,7 +215,7 @@ hc detect_monitors
# "$panel" "$monitor" &
# done
pidof dunst || dunst &
# pidof dunst || dunst &
pidof mpd || mpd &
pidof flameshot || flameshot &
pidof lxpolkit || lxpolkit &

View File

@ -1,9 +1,9 @@
#!/bin/bash
pidof dunst || dunst &
pidof mpd || mpd &
pidof flameshot || flameshot &
pidof lxpolkit || lxpolkit &
pidof picom || picom --experimental-backends &
# pidof mpd || mpd &
# pidof flameshot || flameshot &
# pidof lxpolkit || lxpolkit &
# pidof picom || picom &
wal -R
~/.fehbg
systemctl --user enable --now awatcher

View File

@ -6,8 +6,7 @@ set $calculator "rofi -show calc"
set $calendar "$terminal -e nvim +Agenda"
set $feed_reader "$terminal -e newsboat"
set $file_manager thunar
set $launcher "rofi -show run"
set $music_player "$terminal -e ncmpcpp"
set $music_player "kitty -e rmpc"
set $screen_locker "i3lock -c 000000"
@ -41,7 +40,7 @@ tiling_drag modifier titlebar
# basics
bindsym $mod+w kill
bindsym $mod+t reload
bindsym $mod+r reload
# focus
bindsym $mod+h focus left
@ -66,9 +65,9 @@ bindsym $mod+Control+k resize grow up 2 px or 2 ppt
bindsym $mod+Control+l resize grow right 2 px or 2 ppt
# cycle layouts
# bindsym $mod+s layout stacking
# bindsym $mod+w layout tabbed
# bindsym $mod+e layout toggle split
bindsym $mod+Control+e layout stacking
bindsym $mod+Control+r layout tabbed
bindsym $mod+Control+t layout toggle split
# window attributes
bindsym $mod+Control+w fullscreen toggle
@ -79,7 +78,8 @@ bindsym $mod+Control+q floating toggle
#
bindsym $mod+Return exec $terminal
bindsym $mod+space exec --no-startup-id $launcher
bindsym $mod+space exec --no-startup-id "rofi -show drun"
bindsym $mod+Control+space exec --no-startup-id "rofi -show run"
bindsym $mod+grave exec flameshot gui
bindsym $mod+1 exec $file_manager
@ -136,6 +136,8 @@ bindsym $mod+Shift+c move container to workspace $ws8
bindsym $mod+Shift+v move container to workspace $ws9
bindsym $mod+Shift+b move container to workspace $ws10
bindsym $mod+p move workspace to output right
#
# theme
#
@ -149,11 +151,11 @@ set_from_resource $color1 i3wm.color1 #000000
set_from_resource $color8 i3wm.color8 #000000
# class border backgr. text indicator child_border
client.focused $color8 $color0 $color0 $color0 $color8
client.focused_inactive $color8 $color0 $color0 $color0 $color0
client.unfocused $color0 $color0 $color0 $color0 $color0
client.urgent $color1 $color0 $color0 $color0 $color0
client.placeholder $color1 $color0 $color0 $color0 $color0
client.focused $color8 $color0 $color6 $color0 $color8
client.focused_inactive $color8 $color0 $color6 $color0 $color0
client.unfocused $color0 $color0 $color6 $color0 $color0
client.urgent $color1 $color0 $color6 $color0 $color0
client.placeholder $color1 $color0 $color6 $color0 $color0
client.background $color0

View File

@ -1,28 +0,0 @@
alsa-plugins
ams-lv2
ardour
aubio
bshapr
calf
carla
distrho-ports
dragonfly-reverb
ebumeter
eq10q
fluidsynth
geonkick
guitarix
jack_mixer
lsp-plugins
ninjas2
noise-repellent
qjackctl
samplv1
sfizz
surge
tap-plugins
vamp-plugin-sdk
wolf-shaper
x42-plugins
zam-plugins
zyn-fusion

View File

@ -1,49 +0,0 @@
colorpicker
dunst
dzen2
engrampa
feh
firefox
flameshot
fzf
gvfs
herbstluftwm
htop
i3lock-color
kitty
libqalculate
lxappearance-gtk3
lxqt-policykit
lxsession-gtk3
mpd
ncmpcpp
neovim-qt
nerd-fonts-mononoki
newsboat
nvimpager-git
openssh
pamixer
papirus-icon-theme
picom-git
pipewire
pipewire-alsa
pipewire-jack
python-pywal
qpwgraph
qtile
ripgrep
rofi
rofi-calc
themix-theme-oomox-git
thunar
thunar-archive-plugin
thunar-volman
ttf-dejavu
ttf-mononoki
vimiv
wireplumber
xclip
xorg
xorg-server
xorg-xinit
xournalpp

View File

@ -18,7 +18,7 @@ lines_scrolled = "3"
# colors
#
song_list_format = " %f $R %b %l "
# song_list_format = " %f $R %b %l "
playlist_display_mode = classic
progressbar_color = white:b

View File

@ -1,54 +1,59 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"bufferline.nvim": { "branch": "main", "commit": "81820cac7c85e51e4cf179f8a66d13dbf7b032d9" },
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"bufresize.nvim": { "branch": "master", "commit": "3b19527ab936d6910484dcc20fb59bdb12322d8b" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"catppuccin": { "branch": "main", "commit": "234fc048de931a0e42ebcad675bf6559d75e23df" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
"formatter.nvim": { "branch": "master", "commit": "ad246d34ce7a32f752071ed81b09b94e6b127fad" },
"friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" },
"gitlab.nvim": { "branch": "main", "commit": "dc70c978103e9960ab39feceb67d2f724b12d0c3" },
"gitsigns.nvim": { "branch": "main", "commit": "39b5b6f48bde0595ce68007ffce408c5d7ac1f79" },
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
"lazy.nvim": { "branch": "main", "commit": "d901d2166fef0304e360316e7a04316f11ab62d0" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
"mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" },
"maximize.nvim": { "branch": "master", "commit": "02588e7b20df1a0692aa96f83cc4670199f74d71" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"formatter.nvim": { "branch": "master", "commit": "b9d7f853da1197b83b8edb4cc4952f7ad3a42e41" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitlab.nvim": { "branch": "main", "commit": "e29909cd1064a7b53c3150bff49449a548dadf8d" },
"gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" },
"gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" },
"image.nvim": { "branch": "master", "commit": "446a8a5cc7a3eae3185ee0c697732c32a5547a0b" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"maximize.nvim": { "branch": "master", "commit": "d688b66344b03ee6e5a32a0a40af85d174490af8" },
"mbc-colorscheme.nvim": { "branch": "main", "commit": "02c404d2a58acf527a0de600678c612335cc8416" },
"mini.bracketed": { "branch": "main", "commit": "abbaf7711dffabf7db180c6d61deb4a321b2a2cd" },
"neogen": { "branch": "main", "commit": "6de0add4805165317ab7d3d36b5cef48b1b865f3" },
"neogit": { "branch": "master", "commit": "a20031fb5d7d12148764764059243135085e5c9b" },
"neotest": { "branch": "master", "commit": "26ed90509c377d10dbdebd25b7094a886323b32b" },
"neotest-python": { "branch": "master", "commit": "2e83d2bc00acbcc1fd529dbf0a0e677cabfe6b50" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
"nvim-bqf": { "branch": "main", "commit": "1b24dc6050c34e8cd377b6b4cd6abe40509e0187" },
"nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" },
"mini.bracketed": { "branch": "main", "commit": "e50e3abcf6a3a5d234f58e4a247dfb3035f30a65" },
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
"neogit": { "branch": "master", "commit": "d2a2ae4415872fbddb2441920ab109ee52fd4916" },
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
"nvim-bqf": { "branch": "main", "commit": "a77b17e39b1b707b6feee86a36c83703c1534c08" },
"nvim-cmp": { "branch": "main", "commit": "106c4bcc053a5da783bf4a9d907b6f22485c2ea0" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-dap": { "branch": "master", "commit": "6f79b822997f2e8a789c6034e147d42bc6706770" },
"nvim-dap-go": { "branch": "main", "commit": "3999f0744e80d2dba5775189fc7c7a5e9846053e" },
"nvim-dap-python": { "branch": "master", "commit": "d777c2b32ed39f61209c09bede28d7491621a631" },
"nvim-lint": { "branch": "master", "commit": "efc6fc83f0772283e064c53a8f9fb5645bde0bc0" },
"nvim-lspconfig": { "branch": "master", "commit": "cf97d2485fc3f6d4df1b79a3ea183e24c272215e" },
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
"nvim-tree.lua": { "branch": "master", "commit": "2086e564c4d23fea714e8a6d63b881e551af2f41" },
"nvim-treesitter": { "branch": "master", "commit": "a8c082b4f5b3b70bde2ffb08cc112dfd7e515fb3" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" },
"nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
"obsidian.nvim": { "branch": "main", "commit": "f0bc495b4a3852a83b48636e9f564586f5e2d29e" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"refactoring.nvim": { "branch": "master", "commit": "d07218748c48e756c27aa6859bfa6e62a3d271af" },
"nvim-dap": { "branch": "master", "commit": "e97dc47e134ffb33da008658fecfae8f8547c528" },
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
"nvim-dap-python": { "branch": "master", "commit": "64652d1ae1db80870d9aac7132d76e37acd86a26" },
"nvim-lint": { "branch": "master", "commit": "8b349e822a36e9480aed96c6dd2f757f80524a35" },
"nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" },
"nvim-surround": { "branch": "main", "commit": "fcfa7e02323d57bfacc3a141f8a74498e1522064" },
"nvim-tree.lua": { "branch": "master", "commit": "321bc61580fd066b76861c32de3319c3a6d089e7" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-context": { "branch": "master", "commit": "ec308c7827b5f8cb2dd0ad303a059c945dd21969" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"refactoring.nvim": { "branch": "master", "commit": "6784b54587e6d8a6b9ea199318512170ffb9e418" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"term-edit.nvim": { "branch": "master", "commit": "32e802c6ea08304db6cbbf44e6ca9805b8c2ad51" },
"toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" },
"trouble.nvim": { "branch": "main", "commit": "e32c194558ebeb433ccfd580a34c66770bc102bd" },
"vim-vsnip": { "branch": "master", "commit": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9" },
"term-edit.nvim": { "branch": "master", "commit": "29c4584c2cef44a3fdcc55860957d081b892a569" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"wal-colors.nvim": { "branch": "main", "commit": "f0f052ae2dd5054200b98ff308c864579c2983ea" },
"which-key.nvim": { "branch": "main", "commit": "ca2d995c1f7d1ba4ce54a9936a6cdd8cfa594f2d" }
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View File

@ -40,6 +40,7 @@ vim.keymap.set("n", "<leader>C", ":ToggleTerm<CR>", { desc = "Toggle Terminal" }
vim.keymap.set("n", "<leader>ac", "<cmd>Telescope find_files cwd=~/.config/nvim<CR>", { desc = "Find Config Files" })
vim.keymap.set("n", "<leader>an", "<cmd>NoNeckPain<CR>", { desc = "No Neck Pain" })
vim.keymap.set("n", "<leader>ag", "<cmd>Neogit<CR>", { desc = "Neogit" })
vim.keymap.set("n", "<leader>af", "<cmd>NvimTreeFindFile<CR>", { desc = "Find File In File Manager" })
vim.keymap.set("n", "<leader>am", function()
require("maximize").toggle()
end, { desc = "Maximize" })
@ -62,7 +63,8 @@ vim.keymap.set("n", "<leader>gr", "<cmd>Telescope lsp_references<CR>", { desc =
vim.keymap.set("n", "<leader>gq", "<cmd>Telescope diagnostics<CR>", { desc = "Show Diagnostics" })
vim.keymap.set("n", "<leader>gs", "<cmd>LspRestart<CR>", { desc = "Restart LSP" })
vim.keymap.set("n", "<leader>gf", "<cmd>Format<CR>", { desc = "Format" })
vim.keymap.set("n", "<leader>ge", "<cmd>Trouble diagnostics<CR>", { desc = "Toggle Trouble" })
vim.keymap.set("n", "<leader>ge", function() vim.diagnostic.open_float() end , { desc = "Show Diagnostic" })
vim.keymap.set("n", "<leader>gE", "<cmd>Trouble diagnostics<CR>", { desc = "Toggle Trouble" })
vim.keymap.set("n", "<leader>ga", function()
vim.lsp.buf.code_action()
end, { desc = "Code Actions" })

View File

@ -30,6 +30,15 @@ vim.api.nvim_create_autocmd({ "FocusGained", "BufEnter", "CursorHold", "CursorHo
vim.api.nvim_create_autocmd("TextYankPost", {
pattern = "*",
callback = function()
require("vim.highlight").on_yank({ "IncSearch", 1000 })
vim.highlight.on_yank({ "IncSearch", 1000 })
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "gleam",
callback = function()
vim.bo.shiftwidth = 2
vim.bo.tabstop = 2
vim.bo.expandtab = true
end,
})

View File

@ -0,0 +1,8 @@
return {
"catppuccin/nvim",
name = "catppuccin",
config = function()
pcall(vim.cmd, "colorscheme catppuccin-mocha")
end,
priority = 1000,
}

View File

@ -5,10 +5,10 @@ return {
end,
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-vsnip",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-nvim-lsp-signature-help",
"saadparwaiz1/cmp_luasnip",
"onsails/lspkind.nvim",
},
opts = function()
@ -16,12 +16,13 @@ return {
local cmp = require("cmp")
local neogen = require("neogen")
local luasnip = require("luasnip")
local lspkind = require("lspkind")
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
luasnip.lsp_expand(args.body)
end,
},
mapping = {
@ -35,34 +36,36 @@ return {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
}),
["<tab>"] = cmp.mapping(function(fallback)
if neogen.jumpable() then
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.locally_jumpable(1) then
luasnip.jump(1)
elseif neogen.jumpable() then
neogen.jump_next()
else
fallback()
end
end, {
"i",
"s",
}),
["<S-tab>"] = cmp.mapping(function(fallback)
if neogen.jumpable(true) then
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
elseif neogen.jumpable() then
neogen.jump_prev()
else
fallback()
end
end, {
"i",
"s",
}),
end, { "i", "s" }),
},
sources = {
{ name = "nvim_lsp" },
{ name = "nvim_lsp_signature_help" },
{ name = "path" },
{ name = "buffer", keyword_length = 5 },
{ name = "vsnip" },
{ name = "orgmode" },
{ name = "luasnip" },
},
formatting = {
format = lspkind.cmp_format({

View File

@ -11,7 +11,7 @@ return {
},
go = {
require("formatter.filetypes.go").gofumpt,
require("formatter.filetypes.go").goimports_reviser,
-- require("formatter.filetypes.go").goimports_reviser,
},
json = {
require("formatter.filetypes.json").jq,
@ -40,6 +40,21 @@ return {
yaml = {
require("formatter.filetypes.yaml").yamlfmt,
},
elixir = {
require("formatter.filetypes.elixir").mixformat,
},
gleam = {
function()
return {
exe = "gleam",
args = {
"format",
"--stdin",
},
stdin = true,
}
end,
},
},
})
end,

View File

@ -0,0 +1,7 @@
return {
"ellisonleao/gruvbox.nvim",
-- config = function()
-- pcall(vim.cmd, "colorscheme gruvbox")
-- end,
priority = 1000,
}

View File

@ -0,0 +1,7 @@
return {
"3rd/image.nvim",
build = false, -- so that it doesn't build the rock https://github.com/3rd/image.nvim/issues/91#issuecomment-2453430239
opts = {
processor = "magick_cli",
}
}

View File

@ -3,31 +3,33 @@ return {
"neovim/nvim-lspconfig",
config = function()
local lsp = require("lspconfig")
lsp.pyright.setup({})
lsp.gopls.setup({})
lsp.rust_analyzer.setup({})
lsp.clangd.setup({})
lsp.tsserver.setup({})
lsp.lua_ls.setup({
settings = {
Lua = {
runtime = {
version = "LuaJIT",
},
diagnostics = {
globals = { "vim" },
},
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
},
telemetry = {
enable = false,
},
},
},
})
lsp.helm_ls.setup({
filetypes= { "helm", "yaml" },
-- lsp.pylsp.setup({})
vim.lsp.enable("pyright")
vim.lsp.enable("gopls")
vim.lsp.enable("rust_analyzer")
vim.lsp.enable("clangd")
vim.lsp.enable("ts_ls")
vim.lsp.enable("gleam")
-- lsp.lua_ls.setup({
-- settings = {
-- Lua = {
-- runtime = {
-- version = "LuaJIT",
-- },
-- diagnostics = {
-- globals = { "vim" },
-- },
-- workspace = {
-- library = vim.api.nvim_get_runtime_file("", true),
-- },
-- telemetry = {
-- enable = false,
-- },
-- },
-- },
-- })
vim.lsp.config("helm_ls", {
filetypes = { "helm", "yaml" },
})
end,
},

View File

@ -0,0 +1,14 @@
return {
"L3MON4D3/LuaSnip",
version = "v2.*",
-- install jsregexp (optional!).
build = "make install_jsregexp",
dependencies = {
"rafamadriz/friendly-snippets",
},
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
}

View File

@ -1,8 +1,4 @@
return {
"declancm/maximize.nvim",
config = function()
require("maximize").setup({
default_keymaps = false,
})
end,
config = true,
}

View File

@ -3,8 +3,8 @@ return {
dependencies = {
{ "mbrea-c/wal-colors.nvim" },
},
config = function()
pcall(vim.cmd, "colorscheme mbc")
end,
-- config = function()
-- pcall(vim.cmd, "colorscheme mbc")
-- end,
priority = 1000,
}

View File

@ -0,0 +1,6 @@
return {
"nvim-treesitter/nvim-treesitter-context",
setup = function()
require("nvim-treesitter-context").setup()
end,
}

View File

@ -1,19 +0,0 @@
return {
"hrsh7th/vim-vsnip",
dependencies = {
"rafamadriz/friendly-snippets",
},
config = function()
-- jumpable mappings
vim.api.nvim_exec(
[[
imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
]],
false
)
end,
}

View File

@ -5,16 +5,20 @@ return {
},
config = function()
local wk = require("which-key")
wk.register({
a = { name = "actions" },
c = { name = "terminal" },
d = { name = "debug" },
f = { name = "files" },
g = { name = "lsp" },
n = { name = "testing" },
r = { name = "refactoring" },
t = { name = "telescope" },
v = { name = "vcs" },
}, { prefix = "<leader>" })
wk.add({
{ "<leader>a", group = "actions" },
{ "<leader>c", group = "terminal" },
{ "<leader>d", group = "debug" },
{ "<leader>f", group = "files" },
{ "<leader>g", group = "lsp" },
{ "<leader>n", group = "testing" },
{ "<leader>r", group = "refactoring" },
{ "<leader>t", group = "telescope" },
{ "<leader>v", group = "vcs" },
})
end,
dependencies = {
"echasnovski/mini.icons",
},
}

View File

@ -0,0 +1 @@
HexDocs

Binary file not shown.

View File

@ -3,6 +3,7 @@ opacity-rule = [
"90:class_g = 'dzen'",
"90:class_g = 'Thunar'",
"90:class_g = 'Polybar'",
"100:class_g = 'Zrythm'",
];
# Blur

View File

@ -28,11 +28,11 @@ module-margin = 1
separator = |
separator-foreground = ${colors.disabled}
font-0 = mononoki-12;1
font-0 = MononokiNerdFontMono-Regular-12;1
modules-left = ewmh
modules-center = date
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth
modules-right = mpd filesystem pipewire_buffer_size pulseaudio xkeyboard memory cpu
cursor-click = pointer
cursor-scroll = ns-resize
@ -43,10 +43,16 @@ enable-ipc = true
; wm-restack = generic
; wm-restack = bspwm
; wm-restack = i3
wm-restack = i3
; override-redirect = true
[module/pipewire_buffer_size]
type = custom/script
exec = ~/.config/polybar/pipewire_buffer_size.sh
interval = 10
click-right = ~/.config/polybar/pipewire_buffer_size.sh click
[module/info-hlwm-workspaces]
type = custom/script
exec = ~/.config/polybar/info-hlwm-workspaces/info-hlwm-workspaces.sh
@ -132,11 +138,20 @@ type = internal/date
interval = 1
date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
date-alt = %d-%m-%Y %H:%M:%S
label = %date%
label-foreground = ${colors.foreground}
[module/mpd]
type = internal/mpd
host = 127.0.0.1
port = 6600
interval = 2
label-song = %artist% - %title%
[settings]
screenchange-reload = true
pseudo-transparency = false

View File

@ -0,0 +1,18 @@
#!/bin/bash
BUFFER_SIZES=("64" "128" "256" "512" "1024" "2048" "4096")
current_buffer_size=$(pw-metadata -n settings 0 clock.force-quantum | grep -oP "value:'\K[0-9]+")
if [[ $1 == "click" ]]; then
new_buffer_size=$(echo "${BUFFER_SIZES[@]}" | tr ' ' '\n' | xmenu)
if [[ -n $new_buffer_size ]]; then
pw-metadata -n settings 0 clock.force-quantum "$new_buffer_size"
current_buffer_size=$new_buffer_size
fi
exit 0
fi
echo "$current_buffer_size"

View File

@ -1,5 +1,7 @@
#!/bin/bash
wal -R &
~/.fehbg
polybar & disown
# pidof picom || picom --experimental-backends &
# pidof dunst || dunst &
# pidof mpd || mpd &

View File

@ -2,7 +2,7 @@ import os
import subprocess
from typing import List # noqa: F401
from libqtile import layout
from libqtile.config import Click, Drag, Group, Match
from libqtile.config import Click, Drag, Group, Match, Screen
from libqtile.lazy import lazy
from libqtile.config import EzKey as Keybind
from libqtile import hook
@ -14,62 +14,55 @@ from libqtile import hook
mod = "mod4"
terminal = "kitty"
launcher = "rofi -show run"
file_manager = "thunar"
browser = "firefox"
file_manager = "nemo"
browser = "brave"
calculator = "rofi -show calc"
music_player = f"{terminal} -e ncmpcpp"
screen_locker = "i3lock -c 000000"
scripts = os.path.expanduser('~/.config/qtile/scripts')
scripts = os.path.expanduser("~/.config/qtile/scripts")
#
# keybinds
#
def next_screen(qtile):
qtile.cmd_next_screen()
keys = [
# basics
Keybind("M-w", lazy.window.kill()),
Keybind("M-t", lazy.restart()),
Keybind("M-C-r", lazy.reload_config()),
Keybind("M-q", lazy.spawn(os.path.join(scripts, "exitmenu"))),
# focus
Keybind("M-h", lazy.layout.left()),
Keybind("M-j", lazy.layout.down()),
Keybind("M-k", lazy.layout.up()),
Keybind("M-l", lazy.layout.right()),
# shift
Keybind("M-S-h", lazy.layout.shuffle_left()),
Keybind("M-S-j", lazy.layout.shuffle_down()),
Keybind("M-S-k", lazy.layout.shuffle_up()),
Keybind("M-S-l", lazy.layout.shuffle_right()),
# resize
Keybind("M-C-h", lazy.layout.grow_left()),
Keybind("M-C-j", lazy.layout.grow_down()),
Keybind("M-C-k", lazy.layout.grow_up()),
Keybind("M-C-l", lazy.layout.grow_right()),
# cycle
Keybind("M-n", lazy.group.next_window()),
Keybind("M-m", lazy.function(next_screen)),
# window attributes
Keybind("M-C-q", lazy.window.toggle_floating()),
Keybind("M-C-w", lazy.window.toggle_fullscreen()),
# cycle layouts
Keybind("M-<Tab>", lazy.next_layout()),
# toggles
Keybind("M-S-w", lazy.spawn(os.path.join(scripts, "togglemaster"))),
# # media
# Keybind("XF86AudioMute", lazy.spawn("pulsemixer --toggle-mute")),
# Keybind("XF86AudioLowerVolume", lazy.spawn("pulsemixer --change-volume -5")),
# Keybind("XF86AudioRaiseVolume", lazy.spawn("pulsemixer --change-volume +5")),
# Keybind("XF86MonBrightnessDown", lazy.spawn("light -U 5")),
# Keybind("XF86MonBrightnessUp", lazy.spawn("light -A 5")),
# app launchers
Keybind("M-<Return>", lazy.spawn(terminal)),
Keybind("M-<space>", lazy.spawn(launcher)),
@ -89,10 +82,12 @@ keys = [
groups = [Group(i) for i in "asdfgzxcvb"]
for i in groups:
keys.extend([
Keybind(f"M-{i.name}", lazy.group[i.name].toscreen()),
Keybind(f"M-S-{i.name}", lazy.window.togroup(i.name)),
])
keys.extend(
[
Keybind(f"M-{i.name}", lazy.group[i.name].toscreen()),
Keybind(f"M-S-{i.name}", lazy.window.togroup(i.name)),
]
)
#
# theme
@ -100,11 +95,11 @@ for i in groups:
# load wal colors
colors = []
walpath = os.path.expanduser('~/.cache/wal/colors')
with open(walpath, 'r') as file:
walpath = os.path.expanduser("~/.cache/wal/colors")
with open(walpath, "r") as file:
for _ in range(8):
colors.append(file.readline().strip())
colors.append('#ffffff')
colors.append("#ffffff")
lazy.reload()
layout_theme = {
@ -125,21 +120,18 @@ layouts = [
layout.Max(**layout_theme),
]
#
# bar
#
# Drag floating layouts.
mouse = [
Drag([mod],
"Button1",
lazy.window.set_position_floating(),
start=lazy.window.get_position()),
Drag([mod],
"Button3",
lazy.window.set_size_floating(),
start=lazy.window.get_size()),
Click([mod], "Button2", lazy.window.bring_to_front())
Drag(
[mod],
"Button1",
lazy.window.set_position_floating(),
start=lazy.window.get_position(),
),
Drag(
[mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()
),
Click([mod], "Button2", lazy.window.bring_to_front()),
]
dgroups_key_binder = None
@ -147,20 +139,25 @@ dgroups_app_rules = [] # type: List
follow_mouse_focus = True
bring_front_click = False
cursor_warp = False
floating_layout = layout.Floating(float_rules=[
# Run the utility of `xprop` to see the wm class and name of an X client.
*layout.Floating.default_float_rules,
Match(wm_class='confirmreset'), # gitk
Match(wm_class='makebranch'), # gitk
Match(wm_class='maketag'), # gitk
Match(wm_class='ssh-askpass'), # ssh-askpass
Match(title='branchdialog'), # gitk
Match(title='pinentry'), # GPG key password entry
])
floating_layout = layout.Floating(
**layout_theme,
float_rules=[
# Run the utility of `xprop` to see the wm class and name of an X client.
*layout.Floating.default_float_rules,
Match(wm_class="confirmreset"), # gitk
Match(wm_class="makebranch"), # gitk
Match(wm_class="maketag"), # gitk
Match(wm_class="ssh-askpass"), # ssh-askpass
Match(title="branchdialog"), # gitk
Match(title="pinentry"), # GPG key password entry
],
)
screens = [Screen()]
# autostart script
@hook.subscribe.startup_complete
def autostart():
autostart = os.path.expanduser('~/.config/qtile/autostart.sh')
autostart = os.path.expanduser("~/.config/qtile/autostart.sh")
subprocess.call([autostart])

View File

@ -16,7 +16,7 @@ parser.add_argument("-e", "--pattern", action="append", help="search for string"
parser.add_argument("-r", "--random", action="store_true", help="random order for args")
args = parser.parse_args()
files = subprocess.getoutput(r"fd \(wav\|mp3\)$ .", errors="replace").splitlines()
files = subprocess.getoutput(r"fd \(wav\|mp3\|mid\)$ .", errors="replace").splitlines()
if args.random:
random.shuffle(files)

10
.config/sway/autostart.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
# pidof mpd || mpd &
# pidof flameshot || flameshot &
# pidof lxpolkit || lxpolkit &
# pidof picom || picom &
# wal -R
# pkill swaybg; swaybg -i ~/docs/bg/catpuccin/cat-bg-black3-fg-rosewater.png -m fill
pkill swaybg; swaybg -i ~/docs/bg/catpuccin/cat-bg-black3-fg-rosewater.png -m fill
systemctl --user enable --now awatcher

180
.config/sway/config Normal file
View File

@ -0,0 +1,180 @@
include "$HOME/.cache/wal/colors-sway"
include ~/.config/sway/outputs
set $mod Mod4
set $terminal kitty
set $browser firefox
set $calculator "rofi -show calc"
set $calendar "$terminal -e nvim +Agenda"
set $feed_reader "$terminal -e newsboat"
set $file_manager nemo
set $music_player "kitty -e rmpc"
set $screen_locker "swaylock -c 000000"
font pango:mononoki 12
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
# tiling_drag modifier titlebar
# basics
bindsym $mod+w kill
bindsym $mod+r reload
# focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# shift
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# frame splitting
bindsym $mod+o split h
bindsym $mod+u split v
# resize
bindsym $mod+Control+h resize grow left 2 px or 2 ppt
bindsym $mod+Control+j resize grow down 2 px or 2 ppt
bindsym $mod+Control+k resize grow up 2 px or 2 ppt
bindsym $mod+Control+l resize grow right 2 px or 2 ppt
# cycle layouts
bindsym $mod+Control+e layout stacking
bindsym $mod+Control+r layout tabbed
bindsym $mod+Control+t layout toggle split
# window attributes
bindsym $mod+Control+w fullscreen toggle
bindsym $mod+Control+q floating toggle
#
# launchers
#
bindsym $mod+Return exec $terminal
bindsym $mod+space exec --no-startup-id "rofi -show drun"
bindsym $mod+grave exec grim -g "$(slurp)" - | swappy -f -
bindsym $mod+1 exec $file_manager
bindsym $mod+2 exec $browser
bindsym $mod+3 exec $calculator
bindsym $mod+4 exec $music_player
bindsym $mod+5 exec $calendar
bindsym $mod+6 exec $virt-manager
bindsym $mod+0 exec $screen_locker
# change focus between tiling / floating windows
# bindsym $mod+space focus mode_toggle
# focus the parent container
# bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "a"
set $ws2 "s"
set $ws3 "d"
set $ws4 "f"
set $ws5 "g"
set $ws6 "z"
set $ws7 "x"
set $ws8 "c"
set $ws9 "v"
set $ws10 "b"
# switch to workspace
bindsym $mod+a workspace $ws1
bindsym $mod+s workspace $ws2
bindsym $mod+d workspace $ws3
bindsym $mod+f workspace $ws4
bindsym $mod+g workspace $ws5
bindsym $mod+z workspace $ws6
bindsym $mod+x workspace $ws7
bindsym $mod+c workspace $ws8
bindsym $mod+v workspace $ws9
bindsym $mod+b workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+a move container to workspace $ws1
bindsym $mod+Shift+s move container to workspace $ws2
bindsym $mod+Shift+d move container to workspace $ws3
bindsym $mod+Shift+f move container to workspace $ws4
bindsym $mod+Shift+g move container to workspace $ws5
bindsym $mod+Shift+z move container to workspace $ws6
bindsym $mod+Shift+x move container to workspace $ws7
bindsym $mod+Shift+c move container to workspace $ws8
bindsym $mod+Shift+v move container to workspace $ws9
bindsym $mod+Shift+b move container to workspace $ws10
bindsym $mod+p move workspace to output right
#
# theme
#
gaps inner 12
default_border pixel 2
# set_from_resource $color0 sway.color0 #000000
# set_from_resource $color1 sway.color1 #000000
# set_from_resource $color8 sway.color8 #000000
# class border backgr. text indicator child_border
client.focused $color8 $color0 $color6 $color0 $color8
client.focused_inactive $color8 $color0 $color6 $color0 $color0
client.unfocused $color0 $color0 $color6 $color0 $color0
client.urgent $color1 $color0 $color6 $color0 $color0
client.placeholder $color1 $color0 $color6 $color0 $color0
client.background $color0
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# bar {
# status_command i3status
# }
exec_always --no-startup-id $HOME/.config/sway/autostart.sh
exec_always --no-startup-id $HOME/.config/sway/panel.sh
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
input "type:keyboard" {
repeat_rate 45
repeat_delay 300
xkb_layout "eu,il"
xkb_options "grp:alt_shift_toggle"
}
for_window [class="REAPER" title="^(?!.*REAPER).*$"] floating enable
for_window [class="REAPER" title=".*REAPER - .*" instance="REAPER"] floating disable

20
.config/sway/outputs Normal file
View File

@ -0,0 +1,20 @@
# Generated by nwg-displays on 2025-01-25 at 11:05:15. Do not edit manually.
output "HDMI-A-1" {
mode 2560x1080@74.991Hz
pos 1920 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" {
mode 1920x1080@60.0Hz
pos 0 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}

6
.config/sway/panel.sh Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
pkill waybar
waybar
# polybar-msg cmd quit
# polybar main 2>&1 & disown

0
.config/sway/workspaces Normal file
View File

113
.config/sxhkd/sxhkdrc Executable file
View File

@ -0,0 +1,113 @@
# Keybindings
# Basic
super + w
bspc node -c
super + ctrl + r
bspc wm -r
# Focus
super + h
bspc node -f west
super + j
bspc node -f south
super + k
bspc node -f north
super + l
bspc node -f east
# Shift
super + shift + h
bspc node -s west
super + shift + j
bspc node -s south
super + shift + k
bspc node -s north
super + shift + l
bspc node -s east
# Split focused frame
super + y
bspc node -p west
super + u
bspc node -p south
super + i
bspc node -p north
super + o
bspc node -p east
# Desktop
super + {a,s,d,f,g,z,x,c,v,b}
set d '{a,s,d,f,g,z,x,c,v,b}'; \
bspc desktop -f "$d.local" || bspc desktop -s "$d"
# this is running on fish for some reason
super + shift + {a,s,d,f,g,z,x,c,v,b}
bspc node -d {a,s,d,f,g,z,x,c,v,b}
# Monitor
super + m
bspc monitor -f next
# Resize
super + ctrl + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# Cycle layouts
super + Tab
bspc desktop -l next
# Window attributes
super + ctrl + e
bspc node -t floating
super + ctrl + w
bspc node -t fullscreen
super + ctrl + q
bspc node -t tiled
# Media keys
XF86AudioMute
pulsemixer --toggle-mute
XF86AudioLowerVolume
pulsemixer --change-volume -5
XF86AudioRaiseVolume
pulsemixer --change-volume +5
XF86MonBrightnessDown
light -U 5
XF86MonBrightnessUp
light -A 5
# Application launchers
super + Return
kitty
super + space
rofi -show drun
super + control + space
rofi -show run
super + grave
flameshot gui
super + 1
nemo
super + 2
firefox
super + 3
rofi -show calc
super + 4
kitty -e nmcpcpp
super + 0
i3lock

View File

@ -1,2 +1,15 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DOWNLOAD_DIR="/hdd/download"
XDG_MUSIC_DIR="$HOME/docs/music"
XDG_DESKTOP_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/.local/share/documents"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"

View File

@ -0,0 +1,25 @@
{
"special": {
"background": "#1e2030",
"foreground": "#cad3f5",
"cursor": "#f4dbd6"
},
"colors": {
"color0": "#24273a",
"color1": "#ed8796",
"color2": "#f5a97f",
"color3": "#eed49f",
"color4": "#a6da95",
"color5": "#8bd5ca",
"color6": "#8aadf4",
"color7": "#c6a0f6",
"color8": "#363a4f",
"color9": "#ed8796",
"color10": "#f5a97f",
"color11": "#eed49f",
"color12": "#a6da95",
"color13": "#8bd5ca",
"color14": "#8aadf4",
"color15": "#c6a0f6"
}
}

View File

@ -0,0 +1,25 @@
{
"special": {
"background": "#272e33",
"foreground": "#d3c6aa",
"cursor": "#4f5b58"
},
"colors": {
"color0": "#343f44",
"color1": "#e67e80",
"color2": "#e69875",
"color3": "#dbbc7f",
"color4": "#a7c080",
"color5": "#83c092",
"color6": "#7fbbb3",
"color7": "#d3c6aa",
"color8": "#4f585e",
"color9": "#e67e80",
"color10": "#e69875",
"color11": "#dbbc7f",
"color12": "#a7c080",
"color13": "#83c092",
"color14": "#7fbbb3",
"color15": "#d3c6aa"
}
}

152
.config/waybar/config.jsonc Normal file
View File

@ -0,0 +1,152 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 29, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 4, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": [
"sway/workspaces"
// "sway/mode",
// "sway/scratchpad",
// "custom/media"
],
"modules-center": [
// "sway/window"
"clock"
],
"modules-right": [
"mpd",
"custom/separator",
"custom/pipewire-buffer",
"custom/separator",
"pulseaudio",
"custom/separator",
"sway/language",
"custom/separator",
"memory",
"custom/separator",
"cpu"
// "custom/separator",
// "network"
],
"custom/separator": {
"format": "|",
"interval": "once",
"tooltip": false
},
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "warp-on-scroll": false,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"mpd": {
"format": "{artist} - {title}",
"format-disconnected": "Disconnected ",
"format-paused": "MPD paused",
"unknown-tag": "N/A",
"interval": 5,
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "CPU {usage}%"
},
"memory": {
"format": "MEM {}%"
},
"custom/pipewire_buffer_size": {
"exec": "~/.config/waybar/pipewire_buffer_size.sh",
"interval": 10,
"on-click": "~/.config/waybar/pipewire_buffer_size.sh click"
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%)",
"format-ethernet": "{ipaddr}/{cidr}",
"tooltip-format": "{ifname} via {gwaddr}",
"format-linked": "{ifname} (No IP)",
"format-disconnected": "Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "VOL {volume}% {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": "MUTED {icon} {format_source}",
"format-muted": "MUTED {format_source}",
"format-source": "MIC",
"format-source-muted": "MUTED",
"on-click": "pavucontrol"
},
"custom/pipewire-buffer": {
"format": "BUF {}",
"tooltip": false,
"on-click": "$HOME/.config/waybar/pipewire_buffer_size.sh",
"menu-file": "$HOME/.config/waybar/pipewire_buffer_menu.xml",
"menu-actions": {
"buffer_64": "$HOME/.config/waybar/set_pipewire_buffer.sh 64",
"buffer_128": "$HOME/.config/waybar/set_pipewire_buffer.sh 128",
"buffer_256": "$HOME/.config/waybar/set_pipewire_buffer.sh 256",
"buffer_512": "$HOME/.config/waybar/set_pipewire_buffer.sh 512",
"buffer_1024": "$HOME/.config/waybar/set_pipewire_buffer.sh 1024",
"buffer_2048": "$HOME/.config/waybar/set_pipewire_buffer.sh 2048",
"buffer_4096": "$HOME/.config/waybar/set_pipewire_buffer.sh 4096",
"buffer_8192": "$HOME/.config/waybar/set_pipewire_buffer.sh 8192"
},
"exec": "$HOME/.config/waybar/get_pipewire_buffer.sh",
"interval": 10
}
}

View File

@ -0,0 +1,2 @@
#!/bin/bash
pw-metadata -n settings 0 clock.force-quantum | grep -oP "value:'\K[0-9]+"

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkMenu" id="menu">
<child>
<object class="GtkMenuItem" id="suspend">
<property name="label">Suspend</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="hibernate">
<property name="label">Hibernate</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="shutdown">
<property name="label">Shutdown</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
</child>
<child>
<object class="GtkMenuItem" id="reboot">
<property name="label">Reboot</property>
</object>
</child>
</object>
</interface>

View File

@ -0,0 +1,12 @@
#!/bin/bash
BUFFER_SIZES=("64" "128" "256" "512" "1024" "2048" "4096" "8192")
new_buffer_size=$(echo "${BUFFER_SIZES[@]}" | tr ' ' '\n' | wofi --show dmenu)
if [[ -n $new_buffer_size ]]; then
pw-metadata -n settings 0 clock.force-quantum "$new_buffer_size"
current_buffer_size=$new_buffer_size
fi
exit 0

View File

@ -0,0 +1,4 @@
#!/bin/bash
BUFFER_SIZE=$1
pw-metadata -n settings 0 clock.force-quantum $BUFFER_SIZE

55
.config/waybar/style.css Normal file
View File

@ -0,0 +1,55 @@
@import url("../../.cache/wal/colors-waybar.css");
* {
font-family: "mononoki Nerd Font";
font-size: 16;
}
#waybar {
background-color: @background;
color: @foreground;
}
#mpd {
color: @color1;
}
#custom-pipewire-buffer {
color: @color2;
}
#pulseaudio {
color: @color3;
}
#language {
color: @color4;
}
#memory {
color: @color5;
}
#cpu {
color: @color6;
}
#network {
color: @color1;
}
#workspaces button {
color: @foreground;
}
#workspaces button.active {
color: @color4;
}
#workspaces button.visible {
color: @color4;
}
#workspaces button.urgent {
background-color: @color6;
}

407
.config/zellij/config.kdl Normal file
View File

@ -0,0 +1,407 @@
//
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/trt/.config/zellij/config.kdl.bak
//
keybinds clear-defaults=true {
locked {
bind "Alt g" { SwitchToMode "normal"; }
}
pane {
bind "left" { MoveFocus "left"; }
bind "down" { MoveFocus "down"; }
bind "up" { MoveFocus "up"; }
bind "right" { MoveFocus "right"; }
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
bind "d" { NewPane "down"; SwitchToMode "normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
bind "h" { MoveFocus "left"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
bind "n" { NewPane; SwitchToMode "normal"; }
bind "p" { SwitchFocus; }
bind "Alt p" { SwitchToMode "normal"; }
bind "r" { NewPane "right"; SwitchToMode "normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
bind "x" { CloseFocus; SwitchToMode "normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
}
tab {
bind "left" { GoToPreviousTab; }
bind "down" { GoToNextTab; }
bind "up" { GoToPreviousTab; }
bind "right" { GoToNextTab; }
bind "1" { GoToTab 1; SwitchToMode "normal"; }
bind "2" { GoToTab 2; SwitchToMode "normal"; }
bind "3" { GoToTab 3; SwitchToMode "normal"; }
bind "4" { GoToTab 4; SwitchToMode "normal"; }
bind "5" { GoToTab 5; SwitchToMode "normal"; }
bind "6" { GoToTab 6; SwitchToMode "normal"; }
bind "7" { GoToTab 7; SwitchToMode "normal"; }
bind "8" { GoToTab 8; SwitchToMode "normal"; }
bind "9" { GoToTab 9; SwitchToMode "normal"; }
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
bind "b" { BreakPane; SwitchToMode "normal"; }
bind "h" { GoToPreviousTab; }
bind "j" { GoToNextTab; }
bind "k" { GoToPreviousTab; }
bind "l" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "normal"; }
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
bind "Alt t" { SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "normal"; }
bind "tab" { ToggleTab; }
}
resize {
bind "left" { Resize "Increase left"; }
bind "down" { Resize "Increase down"; }
bind "up" { Resize "Increase up"; }
bind "right" { Resize "Increase right"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "=" { Resize "Increase"; }
bind "H" { Resize "Decrease left"; }
bind "J" { Resize "Decrease down"; }
bind "K" { Resize "Decrease up"; }
bind "L" { Resize "Decrease right"; }
bind "h" { Resize "Increase left"; }
bind "j" { Resize "Increase down"; }
bind "k" { Resize "Increase up"; }
bind "l" { Resize "Increase right"; }
bind "Alt n" { SwitchToMode "normal"; }
}
move {
bind "left" { MovePane "left"; }
bind "down" { MovePane "down"; }
bind "up" { MovePane "up"; }
bind "right" { MovePane "right"; }
bind "h" { MovePane "left"; }
bind "Alt h" { SwitchToMode "normal"; }
bind "j" { MovePane "down"; }
bind "k" { MovePane "up"; }
bind "l" { MovePane "right"; }
bind "n" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "tab" { MovePane; }
}
scroll {
bind "e" { EditScrollback; SwitchToMode "normal"; }
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
}
search {
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "n" { Search "down"; }
bind "o" { SearchToggleOption "WholeWord"; }
bind "p" { Search "up"; }
bind "w" { SearchToggleOption "Wrap"; }
}
session {
bind "d" { Detach; }
bind "Alt o" { SwitchToMode "normal"; }
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
}
shared_except "locked" {
bind "Alt left" { MoveFocusOrTab "left"; }
bind "Alt down" { MoveFocus "down"; }
bind "Alt up" { MoveFocus "up"; }
bind "Alt right" { MoveFocusOrTab "right"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt =" { Resize "Increase"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt g" { SwitchToMode "locked"; }
bind "Alt i" { MoveTab "left"; }
bind "Alt j" { MoveFocus "down"; }
bind "Alt k" { MoveFocus "up"; }
bind "Alt l" { MoveFocusOrTab "right"; }
bind "Alt q" { Quit; }
}
shared_except "locked" "move" {
bind "Alt h" { MoveFocusOrTab "left"; }
}
shared_except "locked" "session" {
bind "Alt o" { SwitchToMode "session"; }
}
shared_except "locked" "scroll" "search" "tmux" {
bind "Alt b" { SwitchToMode "tmux"; }
}
shared_except "locked" "scroll" "search" {
bind "Alt f" { ToggleFocusFullscreen; }
bind "Alt s" { SwitchToMode "scroll"; }
}
shared_except "locked" "tab" {
bind "Alt t" { SwitchToMode "tab"; }
}
shared_except "locked" "pane" {
bind "Alt p" { SwitchToMode "pane"; }
}
shared_except "locked" "resize" {
bind "Alt n" { SwitchToMode "resize"; }
}
shared_except "normal" "locked" "entersearch" {
bind "enter" { SwitchToMode "normal"; }
}
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
bind "esc" { SwitchToMode "normal"; }
}
shared_among "scroll" "search" {
bind "PageDown" { PageScrollDown; }
bind "PageUp" { PageScrollUp; }
bind "left" { PageScrollUp; }
bind "down" { ScrollDown; }
bind "up" { ScrollUp; }
bind "right" { PageScrollDown; }
bind "Alt b" { PageScrollUp; }
bind "Alt c" { ScrollToBottom; SwitchToMode "normal"; }
bind "d" { HalfPageScrollDown; }
bind "Alt f" { PageScrollDown; }
bind "h" { PageScrollUp; }
bind "j" { ScrollDown; }
bind "k" { ScrollUp; }
bind "l" { PageScrollDown; }
bind "Alt s" { SwitchToMode "normal"; }
bind "u" { HalfPageScrollUp; }
}
entersearch {
bind "Alt c" { SwitchToMode "scroll"; }
bind "esc" { SwitchToMode "scroll"; }
bind "enter" { SwitchToMode "search"; }
}
renametab {
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
}
shared_among "renametab" "renamepane" {
bind "Alt c" { SwitchToMode "normal"; }
}
renamepane {
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
about location="zellij:about"
compact-bar location="zellij:compact-bar"
configuration location="zellij:configuration"
filepicker location="zellij:strider" {
cwd "/"
}
plugin-manager location="zellij:plugin-manager"
session-manager location="zellij:session-manager"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
tab-bar location="zellij:tab-bar"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
}
// Plugins to load in the background when a new session starts
// eg. "file:/path/to/my-plugin.wasm"
// eg. "https://example.com/my-plugin.wasm"
load_plugins {
}
// Use a simplified UI without special fonts (arrow glyphs)
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the theme that is specified in the themes section.
// Default: default
//
// theme "gruvbox-dark"
theme "catppuccin-macchiato"
// Choose the base input mode of zellij.
// Default: normal
//
// default_mode "locked"
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd "/tmp"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/tmp"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/tmp"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Toggle having pane frames around the panes
// Options:
// - true (default, enabled)
// - false
//
// pane_frames false
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
//
// copy_command "pbcopy"
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable automatic copying (and clearing) of selection when releasing mouse
// Default: true
//
// copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
// scrollback_editor "/usr/bin/vim"
// A fixed name to always give the Zellij session.
// Consider also setting `attach_to_session true,`
// otherwise this will error if such a session exists.
// Default: <RANDOM>
//
// session_name "My singleton session"
// When `session_name` is provided, attaches to that session
// if it is already running or creates it otherwise.
// Default: false
//
// attach_to_session true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout false
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
// serialize_pane_viewport false
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// How often in seconds sessions are serialized
//
// serialization_interval 10000
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
// disable_session_metadata false
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
// support_kitty_keyboard_protocol false
// Whether to stack panes when resizing beyond a certain size
// Default: true
//
// stacked_resize false
// Whether to show tips on startup
// Default: true
//
show_startup_tips false
// Whether to show release notes on first version run
// Default: true
//
// show_release_notes false

View File

@ -0,0 +1,344 @@
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds clear-defaults=true {
normal {
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
locked {
bind "Alt g" { SwitchToMode "Normal"; }
}
resize {
bind "Alt n" { SwitchToMode "Normal"; }
bind "h" "Left" { Resize "Increase Left"; }
bind "j" "Down" { Resize "Increase Down"; }
bind "k" "Up" { Resize "Increase Up"; }
bind "l" "Right" { Resize "Increase Right"; }
bind "H" { Resize "Decrease Left"; }
bind "J" { Resize "Decrease Down"; }
bind "K" { Resize "Decrease Up"; }
bind "L" { Resize "Decrease Right"; }
bind "=" "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
}
pane {
bind "Alt p" { SwitchToMode "Normal"; }
bind "h" "Left" { MoveFocus "Left"; }
bind "l" "Right" { MoveFocus "Right"; }
bind "j" "Down" { MoveFocus "Down"; }
bind "k" "Up" { MoveFocus "Up"; }
bind "p" { SwitchFocus; }
bind "n" { NewPane; SwitchToMode "Normal"; }
bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
}
move {
bind "Alt h" { SwitchToMode "Normal"; }
bind "n" "Tab" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "h" "Left" { MovePane "Left"; }
bind "j" "Down" { MovePane "Down"; }
bind "k" "Up" { MovePane "Up"; }
bind "l" "Right" { MovePane "Right"; }
}
tab {
bind "Alt t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "b" { BreakPane; SwitchToMode "Normal"; }
bind "]" { BreakPaneRight; SwitchToMode "Normal"; }
bind "[" { BreakPaneLeft; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
scroll {
bind "Alt s" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; }
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Alt c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Alt f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Alt b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
search {
bind "Alt s" { SwitchToMode "Normal"; }
bind "Alt c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Alt f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Alt b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "n" { Search "down"; }
bind "p" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; }
}
entersearch {
bind "Alt c" "Esc" { SwitchToMode "Scroll"; }
bind "Enter" { SwitchToMode "Search"; }
}
renametab {
bind "Alt c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
}
renamepane {
bind "Alt c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
}
session {
bind "Alt o" { SwitchToMode "Normal"; }
bind "Alt s" { SwitchToMode "Scroll"; }
bind "d" { Detach; }
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
}
shared_except "locked" {
bind "Alt g" { SwitchToMode "Locked"; }
bind "Alt q" { Quit; }
bind "Alt n" { NewPane; }
bind "Alt i" { MoveTab "Left"; }
bind "Alt o" { MoveTab "Right"; }
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
bind "Alt j" "Alt Down" { MoveFocus "Down"; }
bind "Alt k" "Alt Up" { MoveFocus "Up"; }
bind "Alt =" "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt f" { ToggleFocusFullscreen; }
}
shared_except "normal" "locked" {
bind "Enter" "Esc" { SwitchToMode "Normal"; }
}
shared_except "pane" "locked" {
bind "Alt p" { SwitchToMode "Pane"; }
}
shared_except "resize" "locked" {
bind "Alt n" { SwitchToMode "Resize"; }
}
shared_except "scroll" "locked" {
bind "Alt s" { SwitchToMode "Scroll"; }
}
shared_except "session" "locked" {
bind "Alt o" { SwitchToMode "Session"; }
}
shared_except "tab" "locked" {
bind "Alt t" { SwitchToMode "Tab"; }
}
// shared_except "move" "locked" {
// bind "Alt h" { SwitchToMode "Move"; }
// }
shared_except "tmux" "locked" {
bind "Alt b" { SwitchToMode "Tmux"; }
}
}
plugins {
tab-bar location="zellij:tab-bar"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
compact-bar location="zellij:compact-bar"
session-manager location="zellij:session-manager"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
filepicker location="zellij:strider" {
cwd "/"
}
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd ""
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
// pane_frames true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout true
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
// serialize_pane_viewport true
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
// themes {
// dracula {
// fg 248 248 242
// bg 40 42 54
// red 255 85 85
// green 80 250 123
// yellow 241 250 140
// blue 98 114 164
// magenta 255 121 198
// orange 255 184 108
// cyan 139 233 253
// black 0 0 0
// white 255 255 255
// }
// }
// Choose the theme that is specified in the themes section.
// Default: default
//
// theme "catppuccin-macchiato"
theme "gruvbox-dark"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
//
// layout_dir "/path/to/my/layout_dir"
// The folder in which Zellij will look for themes
//
// theme_dir "/path/to/my/theme_dir"
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// Default: true
//
// styled_underlines false
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// Default: false
//
// disable_session_metadata true

View File

@ -0,0 +1,6 @@
layout {
pane command="nvim" size="80%"
pane split_direction="vertical" {
pane size="20%"
}
}

View File

@ -0,0 +1,57 @@
themes {
catppuccin-latte {
bg "#acb0be" // Surface2
fg "#4c4f69" // Text
red "#d20f39"
green "#40a02b"
blue "#1e66f5"
yellow "#df8e1d"
magenta "#ea76cb" // Pink
orange "#fe640b" // Peach
cyan "#04a5e5" // Sky
black "#e6e9ef" // Mantle
white "#4c4f69" // Text
}
catppuccin-frappe {
bg "#626880" // Surface2
fg "#c6d0f5" // Text
red "#e78284"
green "#a6d189"
blue "#8caaee"
yellow "#e5c890"
magenta "#f4b8e4" // Pink
orange "#ef9f76" // Peach
cyan "#99d1db" // Sky
black "#292c3c" // Mantle
white "#c6d0f5" // Text
}
catppuccin-macchiato {
bg "#5b6078" // Surface2
fg "#cad3f5" // Text
red "#ed8796"
green "#a6da95"
blue "#8aadf4"
yellow "#eed49f"
magenta "#f5bde6" // Pink
orange "#f5a97f" // Peach
cyan "#91d7e3" // Sky
black "#1e2030" // Mantle
white "#cad3f5" // Text
}
catppuccin-mocha {
bg "#585b70" // Surface2
fg "#cdd6f4" // Text
red "#f38ba8"
green "#a6e3a1"
blue "#89b4fa"
yellow "#f9e2af"
magenta "#f5c2e7" // Pink
orange "#fab387" // Peach
cyan "#89dceb" // Sky
black "#181825" // Mantle
white "#cdd6f4" // Text
}
}

View File

@ -0,0 +1,15 @@
themes {
default {
fg "#282c34"
bg "#e06c75"
black "#abb2bf"
red "#98c379"
green "#e5c07b"
yellow "#61afef"
blue "#c678dd"
magenta "#56b6c2"
cyan "#abb2bf"
white "#545862"
orange "#e06c75"
}
}