mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 00:33:00 +00:00
wayland-wm: sunsetr hyprlock
This commit is contained in:
parent
91b011a725
commit
47d967bfc9
26 changed files with 326 additions and 96 deletions
|
|
@ -6,8 +6,9 @@ local bufmap = {
|
||||||
{ mode = "x", keys = "i", cmd = 'c*<C-r>"*', opt = { desc = "Add italic to selected text" } },
|
{ mode = "x", keys = "i", cmd = 'c*<C-r>"*', opt = { desc = "Add italic to selected text" } },
|
||||||
{ mode = "x", keys = "b", cmd = 'c**<C-r>"**', opt = { desc = "Add bold to selected text" } },
|
{ mode = "x", keys = "b", cmd = 'c**<C-r>"**', opt = { desc = "Add bold to selected text" } },
|
||||||
{ mode = "x", keys = "c", cmd = 'c`<CR><C-r>"<CR>`', opt = { desc = "Add code block to selected text" } },
|
{ mode = "x", keys = "c", cmd = 'c`<CR><C-r>"<CR>`', opt = { desc = "Add code block to selected text" } },
|
||||||
{ mode = "x", keys = "d", cmd = 'c~~<C-r>"~~', opt = { desc = "Add strikethrough to selected text" } },
|
{ mode = "x", keys = "D", cmd = 'c~~<C-r>"~~', opt = { desc = "Add strikethrough to selected text" } },
|
||||||
{ mode = "x", keys = "h", cmd = 'c==<C-r>"==', opt = { desc = "Add highlight to selected text" } },
|
{ mode = "x", keys = "h", cmd = 'c==<C-r>"==', opt = { desc = "Add highlight to selected text" } },
|
||||||
|
{ mode = "n", keys = "<Tab>", cmd = "za", opt = { desc = "Toggle folding under current level" } },
|
||||||
}
|
}
|
||||||
|
|
||||||
-- local set_buf_keymaps_prefix = require("keymaps.utils").set_buf_keymaps_prefix
|
-- local set_buf_keymaps_prefix = require("keymaps.utils").set_buf_keymaps_prefix
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,13 @@
|
||||||
require("config.options")
|
require("config.options")
|
||||||
|
|
||||||
local minimal = os.getenv("NVIM_MINIMAL") or os.getenv("EDITOR_POPUP")
|
local minimal = os.getenv("NVIM_MINIMAL") or os.getenv("EDITOR_POPUP")
|
||||||
|
local disable_ai = os.getenv("DISABLE_AI_ASSISTANT") or "0"
|
||||||
|
|
||||||
|
if disable_ai == "1" then
|
||||||
|
vim.g.ai_enabled = false
|
||||||
|
else
|
||||||
|
vim.g.ai_enabled = true
|
||||||
|
end
|
||||||
|
|
||||||
if minimal == "1" then
|
if minimal == "1" then
|
||||||
-- require("profiles.minimal")
|
-- require("profiles.minimal")
|
||||||
|
|
@ -50,6 +57,7 @@ if vim.g.neovide then
|
||||||
vim.g.neovide_input_macos_option_key_is_meta = "only_left"
|
vim.g.neovide_input_macos_option_key_is_meta = "only_left"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- TODO: Refractor this part to submodules
|
||||||
-- 存储输入法状态的变量
|
-- 存储输入法状态的变量
|
||||||
vim.g.input_layout = nil
|
vim.g.input_layout = nil
|
||||||
|
|
||||||
|
|
|
||||||
7
home/dot_config/nvim/lsp/svelte-language-server.lua
Normal file
7
home/dot_config/nvim/lsp/svelte-language-server.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
---@type vim.lsp.Config
|
||||||
|
return {
|
||||||
|
cmd = { "svelteserver" },
|
||||||
|
root_markers = { "package.json", "svelte.config.js" },
|
||||||
|
filetypes = { "svelte" },
|
||||||
|
settings = {},
|
||||||
|
}
|
||||||
|
|
@ -44,13 +44,13 @@ opt.termguicolors = true
|
||||||
|
|
||||||
--- Fold
|
--- Fold
|
||||||
opt.foldmethod = "expr"
|
opt.foldmethod = "expr"
|
||||||
-- Folding provided by treesitter
|
-- Use builtin Treesitter foldexpr
|
||||||
opt.foldexpr = "nvim_treesitter#foldexpr()"
|
-- See: https://github.com/nvim-treesitter/nvim-treesitter/commit/dd7bb795c48b5b9795bde0537bb29ddf9fb7b42d
|
||||||
|
opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
||||||
-- Disable fold at start
|
-- Disable fold at start
|
||||||
opt.foldlevelstart = 99
|
opt.foldlevelstart = 99
|
||||||
opt.foldlevel = 99
|
opt.foldlevel = 99
|
||||||
opt.foldenable = false
|
opt.foldenable = true
|
||||||
opt.foldlevelstart = 1
|
|
||||||
|
|
||||||
-- Hide Command Line if empty
|
-- Hide Command Line if empty
|
||||||
opt.cmdheight = 0
|
opt.cmdheight = 0
|
||||||
|
|
@ -79,3 +79,5 @@ vim.fn.matchadd("Conceal", [[\%u200b]], 10, -1, { conceal = "" })
|
||||||
|
|
||||||
opt.grepformat = "%f:%l:%c:%m"
|
opt.grepformat = "%f:%l:%c:%m"
|
||||||
opt.grepprg = "rg --vimgrep"
|
opt.grepprg = "rg --vimgrep"
|
||||||
|
|
||||||
|
vim.o.exrc = true
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,6 @@ local keymaps_basic = {
|
||||||
cmd = "5e",
|
cmd = "5e",
|
||||||
opts = { desc = "Down 5 Lines" },
|
opts = { desc = "Down 5 Lines" },
|
||||||
},
|
},
|
||||||
{ keys = "<Tab>", cmd = "<C-w><C-w>", opts = { desc = "Focus on other panel" } },
|
|
||||||
-- { keys = "<CR>", cmd = "%" },
|
-- { keys = "<CR>", cmd = "%" },
|
||||||
{ keys = "Y", cmd = "y$", opts = { desc = "Yank to End of Line" } },
|
{ keys = "Y", cmd = "y$", opts = { desc = "Yank to End of Line" } },
|
||||||
{ mode = mode_arrow, keys = "J", cmd = "5j" },
|
{ mode = mode_arrow, keys = "J", cmd = "5j" },
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ return {
|
||||||
{ import = "plugins.lang.lua" },
|
{ import = "plugins.lang.lua" },
|
||||||
{ import = "plugins.lang.verilog" },
|
{ import = "plugins.lang.verilog" },
|
||||||
{ import = "plugins.lang.treesitter" },
|
{ import = "plugins.lang.treesitter" },
|
||||||
|
{ import = "plugins.lang.neorg" },
|
||||||
{ import = "plugins.mod.trouble-nvim" },
|
{ import = "plugins.mod.trouble-nvim" },
|
||||||
{ import = "plugins.mod.conform-nvim" },
|
{ import = "plugins.mod.conform-nvim" },
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ return {
|
||||||
enable = false,
|
enable = false,
|
||||||
},
|
},
|
||||||
templates = {
|
templates = {
|
||||||
folder = "_Global/LuaTemplates",
|
folder = "90 - System/LuaTemplates",
|
||||||
date_format = "%Y-%m-%d",
|
date_format = "%Y-%m-%d",
|
||||||
time_format = "%H:%M",
|
time_format = "%H:%M",
|
||||||
substitutions = {
|
substitutions = {
|
||||||
|
|
@ -87,51 +87,71 @@ return {
|
||||||
},
|
},
|
||||||
---@return table
|
---@return table
|
||||||
frontmatter = {
|
frontmatter = {
|
||||||
|
-- Update frontmatter in order
|
||||||
func = function(note)
|
func = function(note)
|
||||||
-- Add the title of the note as an alias.
|
local meta = note.metadata or {}
|
||||||
if note.title then
|
|
||||||
note:add_alias(note.title)
|
-- ID: Rule: Generate if not present, never overwrite
|
||||||
|
local note_id = meta.uuid
|
||||||
|
if note_id == nil then
|
||||||
|
note_id = uuid()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Force to use UUID as the note id.
|
-- Aliases: Always ensure filename is in aliases
|
||||||
local note_id = uuid()
|
local aliases = meta.aliases or note.aliases or {}
|
||||||
if note.metadata.id == nil then
|
if type(aliases) ~= "table" then
|
||||||
note_id = uuid()
|
aliases = { aliases }
|
||||||
else
|
end
|
||||||
note_id = note.metadata.id
|
|
||||||
|
if note.title and note.id and note.title ~= note.id then
|
||||||
|
local is_duplicate = false
|
||||||
|
for _, v in pairs(aliases) do
|
||||||
|
if v == note.id then
|
||||||
|
is_duplicate = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not is_duplicate then
|
||||||
|
table.insert(aliases, note.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local out = {
|
local out = {
|
||||||
-- id = note_id,
|
uuid = note_id,
|
||||||
aliases = note.aliases,
|
aliases = aliases,
|
||||||
tags = note.tags,
|
tags = meta.tags or note.tags,
|
||||||
title = note.id,
|
title = meta.title or note.id, -- 优先保留 metadata 中的 title,否则用 note.id
|
||||||
-- date = os.date("%Y-%m-%dT00:00:00"),
|
|
||||||
-- mtime = os.date("%Y-%m-%dT%H:%M:%S"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- `note.metadata` contains any manually added fields in the frontmatter.
|
-- 5. 合并其他自定义 Metadata
|
||||||
-- So here we just make sure those fields are kept in the frontmatter.
|
-- 使用 vim.tbl_extend "force" 策略:
|
||||||
if note.metadata ~= nil and not vim.tbl_isempty(note.metadata) then
|
-- 将 current_metadata 中的所有字段强制合并到 out 中。
|
||||||
for k, v in pairs(note.metadata) do
|
-- 这样可以确保:所有手动添加的字段(如 author, category 等)都不会丢失。
|
||||||
out[k] = v
|
-- 同时,如果 metadata 里本来就有 id,这里会再次确认覆盖,保证一致性。
|
||||||
end
|
out = vim.tbl_extend("force", out, meta)
|
||||||
|
|
||||||
|
-- 6. 强制更新 mtime (这是你希望每次保存都更新的)
|
||||||
|
out.mtime = os.date("%Y-%m-%dT%H:%M:%S")
|
||||||
|
|
||||||
|
-- 7. 保持 date (创建时间) 不变
|
||||||
|
-- 如果 metadata 里没有 date,也许你想补一个?如果不需要,可以删掉下面这行
|
||||||
|
if out.date == nil then
|
||||||
|
out.date = os.date("%Y-%m-%dT%H:%M:%S")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Force to update mtime.
|
|
||||||
out.mtime = os.date("%Y-%m-%dT%H:%M:%S")
|
|
||||||
return out
|
return out
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
daily_notes = {
|
daily_notes = {
|
||||||
folder = "_Global/Periodic",
|
folder = "00 - Journal/Daily",
|
||||||
date_format = "%Y-%m-%d",
|
date_format = "%Y-%m-%d",
|
||||||
default_tags = { "daily" },
|
-- default_tags = { "daily" },
|
||||||
template = nil,
|
template = nil,
|
||||||
},
|
},
|
||||||
-- see below for full list of options 👇
|
-- see below for full list of options 👇
|
||||||
attachments = {
|
attachments = {
|
||||||
img_folder = "_Global/Assets",
|
img_folder = "90 - System/Assets",
|
||||||
img_name_func = function()
|
img_name_func = function()
|
||||||
return string.format("%s-", os.time())
|
return string.format("%s-", os.time())
|
||||||
end,
|
end,
|
||||||
|
|
|
||||||
65
home/dot_config/nvim/lua/plugins/lang/neorg.lua
Normal file
65
home/dot_config/nvim/lua/plugins/lang/neorg.lua
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
return {
|
||||||
|
-- {
|
||||||
|
-- "benlubas/neorg-interim-ls",
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- "nvim-neorg/neorg",
|
||||||
|
-- lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
|
||||||
|
--
|
||||||
|
-- version = "*", -- Pin Neorg to the latest stable release
|
||||||
|
-- config = true,
|
||||||
|
-- options = {
|
||||||
|
-- load = {
|
||||||
|
-- ["core.defaults"] = {}, -- Load all the default modules
|
||||||
|
-- ["core.concealer"] = {}, -- Allows for use of icons
|
||||||
|
-- ["core.norg.dirman"] = { -- Manages Neorg workspaces
|
||||||
|
-- config = {
|
||||||
|
-- workspaces = {
|
||||||
|
-- notes = "~/OrgFiles",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- default_workspace = "notes",
|
||||||
|
-- },
|
||||||
|
-- ["core.neorgcmd"] = {},
|
||||||
|
-- ["core.ui.calendar"] = {},
|
||||||
|
-- ["core.looing-glass"] = {},
|
||||||
|
-- ["core.latex.renderer"] = {},
|
||||||
|
-- ["core.completion"] = {
|
||||||
|
-- config = {
|
||||||
|
-- engine = {
|
||||||
|
-- module_name = "external.lsp-completion",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- ["external.interim-ls"] = {
|
||||||
|
-- config = {
|
||||||
|
-- -- default config shown
|
||||||
|
-- completion_provider = {
|
||||||
|
-- -- Enable or disable the completion provider
|
||||||
|
-- enable = true,
|
||||||
|
--
|
||||||
|
-- -- Show file contents as documentation when you complete a file name
|
||||||
|
-- documentation = true,
|
||||||
|
--
|
||||||
|
-- -- Try to complete categories provided by Neorg Query. Requires `benlubas/neorg-query`
|
||||||
|
-- categories = false,
|
||||||
|
--
|
||||||
|
-- -- suggest heading completions from the given file for `{@x|}` where `|` is your cursor
|
||||||
|
-- -- and `x` is an alphanumeric character. `{@name}` expands to `[name]{:$/people:# name}`
|
||||||
|
-- people = {
|
||||||
|
-- enable = false,
|
||||||
|
--
|
||||||
|
-- -- path to the file you're like to use with the `{@x` syntax, relative to the
|
||||||
|
-- -- workspace root, without the `.norg` at the end.
|
||||||
|
-- -- ie. `folder/people` results in searching `$/folder/people.norg` for headings.
|
||||||
|
-- -- Note that this will change with your workspace, so it fails silently if the file
|
||||||
|
-- -- doesn't exist
|
||||||
|
-- path = "people",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
}
|
||||||
|
|
@ -12,12 +12,12 @@ return {
|
||||||
"BufReadPre",
|
"BufReadPre",
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown", "markdown_inline", "latex" },
|
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown" },
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
},
|
},
|
||||||
config = function()
|
config = function(_, opts)
|
||||||
require('nvim-treesitter.configs').setup({ highlight = { enable = true } })
|
require("nvim-treesitter.configs").setup(opts)
|
||||||
end
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,19 @@ return {
|
||||||
cmd = "Copilot",
|
cmd = "Copilot",
|
||||||
build = ":Copilot auth",
|
build = ":Copilot auth",
|
||||||
event = "BufReadPost",
|
event = "BufReadPost",
|
||||||
|
enabled = vim.g.ai_enabled,
|
||||||
opts = {
|
opts = {
|
||||||
suggestion = {
|
suggestion = {
|
||||||
enabled = not vim.g.ai_cmp,
|
|
||||||
auto_trigger = true,
|
auto_trigger = true,
|
||||||
hide_during_completion = vim.g.ai_cmp,
|
-- hide_during_completion = vim.g.ai_cmp,
|
||||||
keymap = {
|
keymap = {
|
||||||
accept = "<M-l>", -- Inspired from zed
|
accept = "<M-l>", -- Inspired from zed
|
||||||
next = "<M-]>",
|
next = "<M-]>",
|
||||||
prev = "<M-[>",
|
prev = "<M-[>",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
panel = { enabled = true },
|
-- Disable <M-CR> to open Copilot panel
|
||||||
|
panel = { enabled = false },
|
||||||
filetypes = {
|
filetypes = {
|
||||||
markdown = true,
|
markdown = true,
|
||||||
help = true,
|
help = true,
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,10 @@ return {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
-- See: ../lang/markdown/obsidian-nvim.lua
|
-- See: ../lang/markdown/obsidian-nvim.lua
|
||||||
img_dirs = { "90 - System/Assets" },
|
img_dirs = { "90 - System/Assets" },
|
||||||
|
math = {
|
||||||
|
enabled = true,
|
||||||
|
font_size = "small",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
keys = {
|
keys = {
|
||||||
|
|
|
||||||
12
nixcfgs/flake.lock
generated
12
nixcfgs/flake.lock
generated
|
|
@ -827,11 +827,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764405884,
|
"lastModified": 1764488513,
|
||||||
"narHash": "sha256-TnvBRPmcpcyinvLgsitHS7w5soSa6yNBfRYEI2TK1Ts=",
|
"narHash": "sha256-xBUnv+ndZxRbY9mYSPEP0afaZRUVXDFcJx0WMD4ypfs=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "10aae4855ee275f7d80d85f4328c24265fb20f1f",
|
"rev": "9e3bbd170669d10846bae68d23dabef11832f8f2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -860,11 +860,11 @@
|
||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764399944,
|
"lastModified": 1764485473,
|
||||||
"narHash": "sha256-FC9eYtSmplgxllCX4/3hJq5J3sXWKLSc7at8ZUxycVw=",
|
"narHash": "sha256-RlGEcuZFB/IdvYLrYsf0RpgvNtCMyIuBLt3lS+GZvP8=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "b35bcae35b3f9665043c335e55ed5828af77db85",
|
"rev": "311ca6b5da19f5acd7d3e481620de57240ce8f7c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
overlays = [
|
overlays = [
|
||||||
|
niri-flake.overlays.niri
|
||||||
nur.overlays.default
|
nur.overlays.default
|
||||||
firefox-addons.overlays.default
|
firefox-addons.overlays.default
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,7 @@ in {
|
||||||
prismlauncher
|
prismlauncher
|
||||||
obsidian
|
obsidian
|
||||||
file-roller
|
file-roller
|
||||||
|
siyuan
|
||||||
]
|
]
|
||||||
++ (mkFcitxIM [
|
++ (mkFcitxIM [
|
||||||
pkgs.neovim-qt
|
pkgs.neovim-qt
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,11 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.sessionVariables = {
|
|
||||||
QT_STYLE_OVERRIDE = "adwaita";
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gnome-tweaks
|
gnome-tweaks
|
||||||
sushi
|
sushi
|
||||||
dconf-editor
|
dconf-editor
|
||||||
gnome-menus
|
gnome-menus
|
||||||
adwaita-qt
|
|
||||||
adwaita-qt6
|
|
||||||
showtime
|
showtime
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
gnomeExtensions.dash-to-dock
|
gnomeExtensions.dash-to-dock
|
||||||
|
|
@ -50,7 +45,6 @@
|
||||||
icon-theme = "${config.my.desktop.style.iconTheme.dark}";
|
icon-theme = "${config.my.desktop.style.iconTheme.dark}";
|
||||||
accent-color = "pink";
|
accent-color = "pink";
|
||||||
show-battery-percentage = true;
|
show-battery-percentage = true;
|
||||||
cursor-theme = "Adwaita";
|
|
||||||
};
|
};
|
||||||
"org/gnome/epiphany" = {
|
"org/gnome/epiphany" = {
|
||||||
ask-for-default = false;
|
ask-for-default = false;
|
||||||
|
|
@ -167,6 +161,4 @@
|
||||||
ramunit = "perc";
|
ramunit = "perc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# qt.style.name = "adwaita";
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ in {
|
||||||
"$mainMod SHIFT, B, exec, firefox --private-window"
|
"$mainMod SHIFT, B, exec, firefox --private-window"
|
||||||
"$mainMod, A, exec, kitty --class=kitty-terminal-popup -e aichat --session"
|
"$mainMod, A, exec, kitty --class=kitty-terminal-popup -e aichat --session"
|
||||||
"$mainMod SHIFT, A, exec, ${lib.getExe my.launch-or-focus} 'Cherry Studio' 'cherry-studio'"
|
"$mainMod SHIFT, A, exec, ${lib.getExe my.launch-or-focus} 'Cherry Studio' 'cherry-studio'"
|
||||||
"$mainMod, T, exec, kitty --class=kitty-terminal-popup"
|
"$mainMod ALT, return, exec, kitty --class=kitty-terminal-popup"
|
||||||
"$mainMod SHIFT, T, exec, kitty --class=kitty-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop"
|
"$mainMod ALT SHIFT, return, exec, kitty --class=kitty-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop"
|
||||||
"$mainMod, O, exec, ${lib.getExe my.launch-or-focus} 'obsidian' 'obsidian'"
|
"$mainMod, O, exec, ${lib.getExe my.launch-or-focus} 'obsidian' 'obsidian'"
|
||||||
"$mainMod, Q, killactive"
|
"$mainMod, Q, killactive"
|
||||||
''$mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"''
|
''$mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"''
|
||||||
|
|
@ -36,7 +36,7 @@ in {
|
||||||
"$mainMod, Apostrophe, exec, EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=${term}-terminal-popup -e edit-clipboard --minimal"
|
"$mainMod, Apostrophe, exec, EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=${term}-terminal-popup -e edit-clipboard --minimal"
|
||||||
"$mainMod, V, exec, ${launcher} -m clipboard"
|
"$mainMod, V, exec, ${launcher} -m clipboard"
|
||||||
"alt, space, exec, ${launcher} -m desktopapplications"
|
"alt, space, exec, ${launcher} -m desktopapplications"
|
||||||
"$mainMod, E, exec, ${explorer}"
|
"$mainMod, E, exec, ${lib.getExe my.launch-or-focus} org.kde.dolphin ${explorer}"
|
||||||
"$mainMod SHIFT, E, exec, ${term} -e ${explorerTerm}"
|
"$mainMod SHIFT, E, exec, ${term} -e ${explorerTerm}"
|
||||||
"CTRL ALT, DELETE, exec, uwsm exit"
|
"CTRL ALT, DELETE, exec, uwsm exit"
|
||||||
"$mainMod, P, pseudo"
|
"$mainMod, P, pseudo"
|
||||||
|
|
|
||||||
47
nixcfgs/users/js0ny/programs/desktop/wayland-wm/hyprlock.nix
Normal file
47
nixcfgs/users/js0ny/programs/desktop/wayland-wm/hyprlock.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{lib, ...}: {
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
hide_cursor = true;
|
||||||
|
ignore_empty_input = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
fade_in = {
|
||||||
|
duration = 300;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
};
|
||||||
|
fade_out = {
|
||||||
|
duration = 300;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
background = lib.mkForce [
|
||||||
|
{
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# input-field = [
|
||||||
|
# {
|
||||||
|
# size = "200, 50";
|
||||||
|
# position = "0, -80";
|
||||||
|
# monitor = "";
|
||||||
|
# dots_center = true;
|
||||||
|
# fade_on_empty = false;
|
||||||
|
# font_color = "rgb(202, 211, 245)";
|
||||||
|
# inner_color = "rgb(91, 96, 120)";
|
||||||
|
# outer_color = "rgb(24, 25, 38)";
|
||||||
|
# outline_thickness = 5;
|
||||||
|
# # placeholder_text = '\'Password...'\';
|
||||||
|
# shadow_passes = 2;
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -7,27 +7,25 @@
|
||||||
|
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.niri;
|
package = pkgs.niri-unstable;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
prefer-no-csd = true;
|
prefer-no-csd = true;
|
||||||
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
||||||
|
|
||||||
workspaces = {
|
workspaces = {
|
||||||
"master" = {};
|
"1-master" = {};
|
||||||
"project" = {};
|
"2-project" = {};
|
||||||
"remote" = {};
|
"3-alt" = {};
|
||||||
"info" = {};
|
"4-info" = {};
|
||||||
"bg" = {};
|
"5-bg" = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
spawn-at-startup = [
|
spawn-at-startup = [
|
||||||
{argv = ["waybar"];}
|
|
||||||
{argv = ["dunst"];}
|
|
||||||
{argv = ["fcitx5"];}
|
{argv = ["fcitx5"];}
|
||||||
{argv = ["swww-daemon"];}
|
{argv = ["swww-daemon"];}
|
||||||
# polkit/portal helpers
|
# polkit/portal helpers
|
||||||
{argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
# {argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
||||||
];
|
];
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ in {
|
||||||
"Mod+B".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "firefox" "firefox";
|
"Mod+B".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "firefox" "firefox";
|
||||||
"Mod+Shift+B".hotkey-overlay.title = "Launch web browser in private mode";
|
"Mod+Shift+B".hotkey-overlay.title = "Launch web browser in private mode";
|
||||||
"Mod+Shift+B".action = spawn "firefox" "--private-window";
|
"Mod+Shift+B".action = spawn "firefox" "--private-window";
|
||||||
"Mod+A".action = spawn-sh "${term} --class=terminal-popup -e aichat --session";
|
"Mod+A".action = spawn-sh "${term} --class=kitty-terminal-popup -e aichat --session";
|
||||||
"Mod+Shift+A".hotkey-overlay.title = "Focus or launch CherryStudio (AI assistant)";
|
"Mod+Shift+A".hotkey-overlay.title = "Focus or launch CherryStudio (AI assistant)";
|
||||||
"Mod+Shift+A".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "CherryStudio" "cherry-studio";
|
"Mod+Shift+A".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "CherryStudio" "cherry-studio";
|
||||||
"Mod+O".hotkey-overlay.title = "Focus or launch Obsidian";
|
"Mod+O".hotkey-overlay.title = "Focus or launch Obsidian";
|
||||||
|
|
@ -29,18 +29,21 @@ in {
|
||||||
# TODO: Change "org.kde.dolphin" to a more generic explorer app id via config.currentUser
|
# TODO: Change "org.kde.dolphin" to a more generic explorer app id via config.currentUser
|
||||||
"Mod+E".hotkey-overlay.title = "Focus or launch file explorer";
|
"Mod+E".hotkey-overlay.title = "Focus or launch file explorer";
|
||||||
"Mod+E".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "org.kde.dolphin" "dolphin";
|
"Mod+E".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "org.kde.dolphin" "dolphin";
|
||||||
"Mod+T".action = spawn-sh "${term} --class=terminal-popup";
|
"Mod+Alt+Return".action = spawn-sh "${term} --class=kitty-terminal-popup";
|
||||||
"Mod+Shift+T".action = spawn-sh "${term} --class=${term}-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop";
|
"Mod+Shift+Alt+Return".action = spawn-sh "${term} --class=kitty--terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop";
|
||||||
|
|
||||||
"Mod+Semicolon".action = spawn "neovide" "${config.home.homeDirectory}/Atelier";
|
"Mod+Shift+Return".action = spawn "neovide" "${config.home.homeDirectory}/Atelier";
|
||||||
"Mod+Apostrophe".action =
|
"Mod+Apostrophe".action =
|
||||||
spawn-sh "EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=terminal-popup -e edit-clipboard --minimal";
|
spawn-sh "EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=kitty-terminal-popup -e edit-clipboard --minimal";
|
||||||
|
|
||||||
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||||
|
|
||||||
"Mod+Return".hotkey-overlay.title = "Open a Terminal: ${term}";
|
"Mod+Return".hotkey-overlay.title = "Open a Terminal: ${term}";
|
||||||
"Mod+Return".action = spawn "${term}";
|
"Mod+Return".action = spawn "${term}";
|
||||||
|
|
||||||
|
"Mod+Alt+i".hotkey-overlay.title = "Hyprlock";
|
||||||
|
"Mod+Alt+i".action = spawn "hyprlock";
|
||||||
|
|
||||||
"Mod+D".hotkey-overlay.title = "Run an Application: rofi";
|
"Mod+D".hotkey-overlay.title = "Run an Application: rofi";
|
||||||
"Mod+D".action =
|
"Mod+D".action =
|
||||||
spawn "${launcher}" "-m" "desktopapplications";
|
spawn "${launcher}" "-m" "desktopapplications";
|
||||||
|
|
@ -177,24 +180,24 @@ in {
|
||||||
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
|
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
|
||||||
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
|
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
|
||||||
|
|
||||||
"Mod+1".action = focus-workspace "master";
|
"Mod+1".action = focus-workspace "1-master";
|
||||||
"Mod+2".action = focus-workspace "project";
|
"Mod+2".action = focus-workspace "2-project";
|
||||||
"Mod+3".action = focus-workspace "remote";
|
"Mod+3".action = focus-workspace "3-alt";
|
||||||
"Mod+4".action = focus-workspace "info";
|
"Mod+4".action = focus-workspace "4-info";
|
||||||
"Mod+5".action = focus-workspace 6;
|
"Mod+5".action = focus-workspace "5-bg";
|
||||||
"Mod+6".action = focus-workspace 7;
|
"Mod+6".action = focus-workspace 6;
|
||||||
"Mod+7".action = focus-workspace 8;
|
"Mod+7".action = focus-workspace 7;
|
||||||
"Mod+8".action = focus-workspace 9;
|
"Mod+8".action = focus-workspace 8;
|
||||||
"Mod+9".action = focus-workspace "bg";
|
"Mod+9".action = focus-workspace 9;
|
||||||
"Mod+Shift+1".action.move-column-to-workspace = "master";
|
"Mod+Shift+1".action.move-column-to-workspace = "1-master";
|
||||||
"Mod+Shift+2".action.move-column-to-workspace = "project";
|
"Mod+Shift+2".action.move-column-to-workspace = "2-project";
|
||||||
"Mod+Shift+3".action.move-column-to-workspace = "remote";
|
"Mod+Shift+3".action.move-column-to-workspace = "3-alt";
|
||||||
"Mod+Shift+4".action.move-column-to-workspace = "info";
|
"Mod+Shift+4".action.move-column-to-workspace = "4-info";
|
||||||
"Mod+Shift+5".action.move-column-to-workspace = 6;
|
"Mod+Shift+5".action.move-column-to-workspace = "5-bg";
|
||||||
"Mod+Shift+6".action.move-column-to-workspace = 7;
|
"Mod+Shift+6".action.move-column-to-workspace = 6;
|
||||||
"Mod+Shift+7".action.move-column-to-workspace = 8;
|
"Mod+Shift+7".action.move-column-to-workspace = 7;
|
||||||
"Mod+Shift+8".action.move-column-to-workspace = 9;
|
"Mod+Shift+8".action.move-column-to-workspace = 8;
|
||||||
"Mod+Shift+9".action.move-column-to-workspace = "bg";
|
"Mod+Shift+9".action.move-column-to-workspace = 9;
|
||||||
|
|
||||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@
|
||||||
matches = [
|
matches = [
|
||||||
{app-id = "^firefox$";}
|
{app-id = "^firefox$";}
|
||||||
];
|
];
|
||||||
open-on-workspace = "master";
|
open-on-workspace = "1-master";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
{app-id = "^Vitis IDE$";}
|
{app-id = "^Vitis IDE$";}
|
||||||
{app-id = "^Vivado$";}
|
{app-id = "^Vivado$";}
|
||||||
];
|
];
|
||||||
open-on-workspace = "project";
|
open-on-workspace = "2-project";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
|
|
@ -139,7 +139,7 @@
|
||||||
{app-id = "^\.virt-manager-wrapped$";}
|
{app-id = "^\.virt-manager-wrapped$";}
|
||||||
{title = "^🌐 ssh.*";}
|
{title = "^🌐 ssh.*";}
|
||||||
];
|
];
|
||||||
open-on-workspace = "remote";
|
open-on-workspace = "3-alt";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
|
|
@ -151,14 +151,14 @@
|
||||||
{app-id = "^discord$";}
|
{app-id = "^discord$";}
|
||||||
{app-id = "^thunderbird$";}
|
{app-id = "^thunderbird$";}
|
||||||
];
|
];
|
||||||
open-on-workspace = "info";
|
open-on-workspace = "4-info";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{app-id = "^feishin$";}
|
{app-id = "^feishin$";}
|
||||||
{app-id = "^Cider$";}
|
{app-id = "^Cider$";}
|
||||||
];
|
];
|
||||||
open-on-workspace = "bg";
|
open-on-workspace = "5-bg";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,11 @@ in {
|
||||||
./waybar
|
./waybar
|
||||||
./swww.nix
|
./swww.nix
|
||||||
./kanshi.nix
|
./kanshi.nix
|
||||||
./swaylock.nix
|
# ./swaylock.nix
|
||||||
./polkit.nix
|
./polkit.nix
|
||||||
|
./hyprlock.nix
|
||||||
|
./swayidle.nix
|
||||||
|
./sunsetr.nix
|
||||||
];
|
];
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
swayidle # Screensaver
|
swayidle # Screensaver
|
||||||
|
|
|
||||||
53
nixcfgs/users/js0ny/programs/desktop/wayland-wm/sunsetr.nix
Normal file
53
nixcfgs/users/js0ny/programs/desktop/wayland-wm/sunsetr.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
systemd.user.services.sunsetr = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Sunsetr blue-light filtering";
|
||||||
|
PartOf = ["graphical-session.target"];
|
||||||
|
After = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.sunsetr}/bin/sunsetr -b";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = 1;
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
Install = {
|
||||||
|
WantedBy = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."sunsetr/sunsetr.toml".text = ''
|
||||||
|
#[Backend]
|
||||||
|
backend = "auto" # Backend to use: "auto", "hyprland", "hyprsunset" or "wayland"
|
||||||
|
transition_mode = "geo" # Select: "geo", "finish_by", "start_at", "center", "static"
|
||||||
|
|
||||||
|
#[Smoothing]
|
||||||
|
smoothing = true # Enable smooth transitions during startup and exit
|
||||||
|
startup_duration = 0.5 # Duration of smooth startup in seconds (0.1-60 | 0 = instant)
|
||||||
|
shutdown_duration = 0.5 # Duration of smooth shutdown in seconds (0.1-60 | 0 = instant)
|
||||||
|
adaptive_interval = 1 # Adaptive interval base for smooth transitions (1-1000)ms
|
||||||
|
|
||||||
|
#[Time-based config]
|
||||||
|
night_temp = 3300 # Color temperature during night (1000-20000) Kelvin
|
||||||
|
day_temp = 6500 # Color temperature during day (1000-20000) Kelvin
|
||||||
|
night_gamma = 90 # Gamma percentage for night (10-200%)
|
||||||
|
day_gamma = 100 # Gamma percentage for day (10-200%)
|
||||||
|
update_interval = 60 # Update frequency during transitions in seconds (10-300)
|
||||||
|
|
||||||
|
#[Static config]
|
||||||
|
static_temp = 6500 # Color temperature for static mode (1000-20000) Kelvin
|
||||||
|
static_gamma = 100 # Gamma percentage for static mode (10-200%)
|
||||||
|
|
||||||
|
#[Manual transitions]
|
||||||
|
sunset = "19:00:00" # Time for manual sunset calculations (HH:MM:SS)
|
||||||
|
sunrise = "06:00:00" # Time for manual sunrise calculations (HH:MM:SS)
|
||||||
|
transition_duration = 45 # Transition duration in minutes (5-120)
|
||||||
|
|
||||||
|
#[Geolocation]
|
||||||
|
latitude = 55.950000 # Geographic latitude (auto-detected on first run)
|
||||||
|
longitude = -3.200000 # Geographic longitude (use 'sunsetr geo' to change)
|
||||||
|
'';
|
||||||
|
}
|
||||||
15
nixcfgs/users/js0ny/programs/desktop/wayland-wm/swayidle.nix
Normal file
15
nixcfgs/users/js0ny/programs/desktop/wayland-wm/swayidle.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services.swayidle = {
|
||||||
|
enable = true;
|
||||||
|
timeouts = [
|
||||||
|
{
|
||||||
|
timeout = 300;
|
||||||
|
command = "${pkgs.hyprlock}/bin/hyprlock";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 600;
|
||||||
|
command = "${pkgs.systemd}/bin/systemctl suspend";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -21,6 +21,10 @@
|
||||||
flycheck
|
flycheck
|
||||||
highlight-indent-guides
|
highlight-indent-guides
|
||||||
magit
|
magit
|
||||||
|
elfeed
|
||||||
|
elfeed-org
|
||||||
|
olivetti
|
||||||
|
org-modern
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# TODO: tdlib version is too high
|
# TODO: tdlib version is too high
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,11 @@ in {
|
||||||
nodejs-slim_24 # for copilot-lua
|
nodejs-slim_24 # for copilot-lua
|
||||||
lua-language-server
|
lua-language-server
|
||||||
vimPlugins.nvim-treesitter-parsers.diff
|
vimPlugins.nvim-treesitter-parsers.diff
|
||||||
|
# Dependency of snacks.image
|
||||||
|
tectonic
|
||||||
|
vimPlugins.nvim-treesitter-parsers.latex
|
||||||
|
mermaid-cli
|
||||||
|
ghostscript
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# home.packages = with pkgs; [lua-language-server];
|
# home.packages = with pkgs; [lua-language-server];
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
"la" = "ls -a";
|
"la" = "ls -a";
|
||||||
"lt" = "lsd --tree";
|
"lt" = "lsd --tree";
|
||||||
"l" = "ls -la";
|
"l" = "ls -la";
|
||||||
"ll" = "ls -lh";
|
"ll" = "ls -l";
|
||||||
};
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
$env.config.show_banner = false
|
$env.config.show_banner = false
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue