first commit

This commit is contained in:
lucy 2026-06-23 14:12:55 +02:00
commit 9060ee1b84
6 changed files with 482 additions and 0 deletions

View file

@ -0,0 +1,55 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1,
"right": 2
}
},
"display": {
"separator": " "
},
"modules": [
{
"key": "╭────────╮",
"type": "custom"
},
{
"key": "│{#34} distro {#keys}│",
"type": "os",
"format": "{name} {version}"
},
{
"key": "│{#35} kernel {#keys}│",
"type": "kernel"
},
{
"key": "│{#36} host {#keys}│",
"type": "host"
},
{
"key": "│{#33} wm {#keys}│",
"type": "wm"
},
{
"key": "│{#32} ip {#keys}│",
"type": "localip",
"showIpv6": false,
"format": "{ipv4}"
},
{
"key": "├────────┤",
"type": "custom"
},
{
"key": "│{#39} colors {#keys}│",
"type": "colors",
"symbol": "circle"
},
{
"key": "╰────────╯",
"type": "custom"
}
]
}

View file

@ -0,0 +1,4 @@
pad = 15x15
font = Maple Mono NL:size=10
[colors]
alpha = 1.0

View file

@ -0,0 +1,2 @@
include = ~/.config/fuzzel/colors.ini
font = Liberation Mono:size=8

View file

@ -0,0 +1,325 @@
-- This is an example Hyprland Lua config file.
-- Refer to the wiki for more information.
-- https://wiki.hypr.land/Configuring/Start/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can (and should!!) split this configuration into multiple files
-- Create your files separately and then require them like this:
-- require("myColors")
-- Plugin stuff
------------------
---- MONITORS ----
------------------
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "1",
})
hl.monitor({
output = "eDP-1",
mode = "preferred",
position = "auto",
scale = "1",
})
hl.monitor({
output = "DP-2",
mode = "2560x1440@165",
position = "auto",
scale = "1",
bitdepth = 10,
cm = "wide",
})
---------------------
---- MY PROGRAMS ----
---------------------
-- Set programs that you use
local terminal = "foot"
local fileManager = "thunar"
local menu = "fuzzel"
-------------------
---- AUTOSTART ----
-------------------
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
-- Or execute your favorite apps at launch like this:
--
hl.on("hyprland.start", function()
hl.exec_cmd("qs")
hl.exec_cmd("gentoo-pipewire-launcher")
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
end)
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_THEME", "Adwaita")
hl.env("XCURSOR_THEME", "Adwaita")
hl.env("GTK_THEME", "adw-gtk3")
-----------------------
----- PERMISSIONS -----
-----------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
-- for security reasons
-- hl.config({
-- ecosystem = {
-- enforce_permissions = true,
-- },
-- })
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
require("colors")
hl.config({
general = {
gaps_in = 2,
gaps_out = 20,
border_size = 2,
resize_on_border = false,
allow_tearing = false,
layout = "master",
},
decoration = {
rounding = 0,
rounding_power = 2,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = false,
range = 4,
render_power = 3,
color = 0xee1a1a1a,
},
blur = {
enabled = false,
size = 3,
passes = 2,
vibrancy = 0.1696,
},
},
animations = {
enabled = false,
},
})
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } })
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
-- Default springs
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "slide" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "easeOutQuint", style = "slide" })
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
hl.config({
master = {
new_status = "slave",
},
})
---------------
---- INPUT ----
---------------
hl.config({
input = {
kb_layout = "eu",
kb_variant = "",
kb_model = "",
kb_options = "",
kb_rules = "",
follow_mouse = 1,
sensitivity = -0.4, -- -1.0 - 1.0, 0 means no modification.
accel_profile = "flat",
touchpad = {
natural_scroll = false,
},
},
})
hl.device({
name = "elan06fa:00-04f3:327e-touchpad",
sensitivity = 0.4
})
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace",
})
-- Example per-device config
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
local aux_mod = "ALT"
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(terminal))
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
hl.bind(
mainMod .. " + M",
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")
)
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + Space", hl.dsp.exec_cmd(menu))
-- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
hl.bind(mainMod .. " + h", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + l", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + k", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + j", hl.dsp.focus({ direction = "down" }))
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
hl.bind(aux_mod .. " + mouse:272", hl.dsp.window.resize(), { mouse = true })
-- Laptop multimedia keys for volume and LCD brightness
hl.bind(
"XF86AudioRaiseVolume",
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioLowerVolume",
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioMute",
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioMicMute",
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
{ locked = true, repeating = true }
)
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set 10%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 10%-"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
-- Screenshot binds
hl.bind(aux_mod .. " + S", hl.dsp.exec_cmd("grimblast copy output -n -c"))
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd("grimblast copy area -n -f"))
-- misc binds
hl.bind(mainMod .. " + w", hl.dsp.exec_cmd("/etc/bash/bashrc.d/90-qs.bash switch-wall fuzzel"))
hl.bind(mainMod .. " + t", hl.dsp.exec_cmd("/etc/bash/bashrc.d/90-qs.bash switch-theme fuzzel"))
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- Example window rules that are useful
hl.window_rule({
-- Ignore maximize requests from all apps. You'll probably like this.
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
hl.window_rule({
-- Fix some dragging issues with XWayland
name = "fix-xwayland-drags",
match = {
class = "^$",
title = "^$",
xwayland = true,
float = true,
fullscreen = false,
pin = false,
},
no_focus = true,
})
hl.window_rule({
name = "discord-to-ws6",
match = { class = "^(discord)$" },
workspace = "6 silent",
})
hl.window_rule({
name = "spotify-to-ws7",
match = { class = "^(Spotify)$" },
workspace = "7 silent",
})

View file

@ -0,0 +1,71 @@
vim.opt.relativenumber = true
vim.lsp.inlay_hint.enable = true
vim.opt.tabstop = 8
vim.opt.expandtab = true
vim.opt.swapfile = false
vim.opt.shiftwidth = 8
vim.diagnostic.config({
virtual_text = {
spacing = 4,
source = true,
},
})
vim.lsp.enable("lua_ls")
vim.lsp.enable("qmlls")
vim.lsp.enable("clangd")
vim.lsp.enable("lua-language-server")
-- add plugins
vim.pack.add({
"https://github.com/nvim-treesitter/nvim-treesitter",
"https://github.com/nvim-lualine/lualine.nvim",
"https://github.com/tinted-theming/tinted-nvim.git",
"https://github.com/neovim/nvim-lspconfig",
"https://github.com/vyfor/cord.nvim",
"https://github.com/nvim-mini/mini.nvim"
})
require('tinted-nvim').setup({
selector = { enabled = true, mode = "cmd" },
ui = {
transparent = true
}
})
require('mini.basics').setup()
require('mini.icons').setup()
require('mini.pick').setup()
require("cord").setup({
display = {
theme = "atom",
},
editor = { tooltip = "ur gay x3" },
})
require("lualine").setup({
options = {
theme = "tinted",
},
sections = {
lualine_a = { "mode" },
lualine_b = { "diagnostics" },
lualine_c = { "filename" },
lualine_x = { "lsp_status", "filetype" },
lualine_y = { "" },
lualine_z = { "location" },
},
tabline = {
lualine_a = { { 'buffers', mode = 2, show_modified_status = true, } },
lualine_b = { 'branch' },
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = { 'tabs' }
}
})
local map = vim.keymap.set
for i = 1, 10 do
map("n", "<A-" .. i .. ">", "<cmd> LualineBuffersJump! " .. i .. "<cr>")
end
map("n", "<C-f>", function() vim.lsp.buf.format() end)
map("n", "<leader>t", "<cmd> terminal <cr>")
map("t", "<esc>", "<c-\\><c-n>")
map("i", "<C-space>", "<C-X><C-O>")
map("n", "<leader>w", "<cmd> bdelete! <cr>")

View file

@ -0,0 +1,25 @@
[[items]]
path = "https://git.seele.rip/lucy/tinted-pywalfox"
name = "tinted-pywalfox"
themes-dir = "build"
hook = "cp ~/.local/share/tinted-theming/tinty/tinted-pywalfox-build-file.json ~/.cache/wal/colors.json; /home/lucy/.venv/bin/pywalfox update"
[[items]]
path = "https://git.seele.rip/lucy/tinted-qtct"
name = "tinted-qtct"
themes-dir = "build"
hook = """
cp ~/.local/share/tinted-theming/tinty/tinted-qtct-build-file.conf ~/.config/qt6ct/colors/tinted.conf;
cp ~/.local/share/tinted-theming/tinty/tinted-qtct-build-file.conf ~/.config/qt5ct/colors/tinted.conf
"""
[[items]]
path = "https://git.seele.rip/lucy/tinted-gtk"
name = "tinted-gtk"
themes-dir = "build"
hook = "cp ~/.local/share/tinted-theming/tinty/tinted-gtk-build-file.css ~/.config/gtk-3.0/colors.css; cp ~/.local/share/tinted-theming/tinty/tinted-gtk-build-file.css ~/.config/gtk-4.0/colors.css"
[[items]]
path = "https://github.com/tinted-theming/tinted-xresources"
name = "tinted-xresources"
themes-dir = "xresources"
hook = "xrdb -merge %f; pkill -HUP dwm"
supported-systems = ["base16", "base24"]