Compare commits
15 Commits
94ed302d0b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7bd24eaea6 | |||
| cb31edd30a | |||
| 623ff4e1a9 | |||
| 3ff184e813 | |||
| a0239eb5a9 | |||
| e9c8dfe196 | |||
| a6ce51554f | |||
| e3bca91c69 | |||
| 0be13c3ce1 | |||
| 230aff4564 | |||
| a64ff2cb9c | |||
| 21581780d0 | |||
| ff59fb17c5 | |||
| 5ac6408727 | |||
| 598c2e9780 |
@@ -56,19 +56,6 @@ vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
vim.opt.inccommand = 'split'
|
||||
-- Set foldmethod, change in .editorconfig of projects
|
||||
vim.opt.foldmethod = 'marker'
|
||||
-- General gui settings
|
||||
vim.o.guifont = 'JetBrainsMono Nerd Font:12'
|
||||
-- Neovide settings
|
||||
if vim.g.neovide then
|
||||
vim.env.PATH = '/usr/local/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = '/usr/local/go/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = '/opt/homebrew/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = vim.env.HOME .. '/.local/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = vim.env.HOME .. '/.cargo/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = vim.env.HOME .. '/.local/cargo/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = vim.env.HOME .. '/go/bin:' .. vim.env.PATH
|
||||
vim.env.PATH = vim.env.HOME .. '/.local/npm/bin:' .. vim.env.PATH
|
||||
end
|
||||
vim.cmd.colorscheme 'sprouting-dark'
|
||||
-- }}}
|
||||
-- {{{ Helper functions
|
||||
@@ -263,7 +250,6 @@ vim.filetype.add({
|
||||
}) -- }}}
|
||||
-- {{{ LSP Configuration
|
||||
local lspproto = vim.lsp.protocol
|
||||
local lspconfig = vim.lsp.config
|
||||
local lspenable = vim.lsp.enable
|
||||
local capabilities = lspproto.make_client_capabilities()
|
||||
-- Formatter autocmd
|
||||
170
config/nvim/stobbsm/nvim.nix
Normal file
170
config/nvim/stobbsm/nvim.nix
Normal file
@@ -0,0 +1,170 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
extraLuaConfig = [
|
||||
"vim.g.mapleader = ' '"
|
||||
"vim.g.maplocalleader = ' '"
|
||||
"vim.g.have_nerd_font = true"
|
||||
"vim.opt.clipboard = 'unnamedplus'"
|
||||
"vim.opt.cursorline = true"
|
||||
"vim.opt.expandtab = true"
|
||||
"vim.opt.hlsearch = true"
|
||||
"vim.opt.inccommand = 'split'"
|
||||
"vim.opt.modeline = true"
|
||||
"vim.opt.mouse = 'a'"
|
||||
"vim.opt.number = true"
|
||||
"vim.opt.preserveindent = true"
|
||||
"vim.opt.relativenumber = true"
|
||||
"vim.opt.ruler = true"
|
||||
"vim.opt.scrolloff = 5"
|
||||
"vim.opt.shiftwidth = 2"
|
||||
"vim.opt.showmode = true"
|
||||
"vim.opt.showtabline = 1"
|
||||
"vim.opt.softtabstop = 2"
|
||||
"vim.opt.tabstop = 2"
|
||||
"vim.opt.termguicolors = true"
|
||||
"vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }"
|
||||
"vim.opt.inccommand = 'split'"
|
||||
"vim.opt.foldmethod = 'marker'"
|
||||
"vim.cmd.colorscheme 'sprouting-dark'"
|
||||
];
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{ plugin = mini-align; }
|
||||
{ plugin = mini-basics; }
|
||||
{ plugin = mini-diff; }
|
||||
{ plugin = mini-extra; }
|
||||
{ plugin = mini-git; }
|
||||
{ plugin = mini-icons; }
|
||||
{ plugin = mini-move; }
|
||||
{ plugin = mini-operators; }
|
||||
{ plugin = mini-pairs; }
|
||||
{ plugin = mini-snippets; }
|
||||
{ plugin = mini-splitjoin; }
|
||||
{
|
||||
plugin = mini-statusline;
|
||||
type = "lua";
|
||||
config = /* lua */''
|
||||
content = {
|
||||
active = function()
|
||||
local check_macro_recording = function()
|
||||
if vim.fn.reg_recording() ~= \'\' then
|
||||
return '@' .. vim.fn.reg_recording()
|
||||
else
|
||||
return \'\'
|
||||
end
|
||||
end
|
||||
|
||||
-- configure statusline for active windows
|
||||
local mode, mode_hl = MiniStatusline.section_mode { trunc_width = 120 }
|
||||
local git = MiniStatusline.section_git { trunc_width = 40 }
|
||||
local diff = MiniStatusline.section_diff { trunc_width = 75 }
|
||||
local diagnostics = MiniStatusline.section_diagnostics { trunc_width = 75 }
|
||||
local lsp = MiniStatusline.section_lsp { trunc_width = 75 }
|
||||
local filename = MiniStatusline.section_filename { trunc_width = 140 }
|
||||
local fileinfo = MiniStatusline.section_fileinfo { trunc_width = 120 }
|
||||
local location = MiniStatusline.section_location { trunc_width = 75 }
|
||||
local search = MiniStatusline.section_searchcount { trunc_width = 75 }
|
||||
local macro = check_macro_recording()
|
||||
|
||||
return MiniStatusline.combine_groups {
|
||||
{ hl = mode_hl, strings = { mode } },
|
||||
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
|
||||
'%<', -- Mark general truncate point
|
||||
{ hl = 'MiniStatuslineFilename', strings = { filename } },
|
||||
'%=', -- End left alignment
|
||||
{ hl = 'MiniStatuslineFilename', strings = { macro } },
|
||||
{ hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
|
||||
{ hl = mode_hl, strings = { search, location } },
|
||||
}
|
||||
end,
|
||||
use_icons = true,
|
||||
set_vim_settings = true,
|
||||
}
|
||||
'';
|
||||
}
|
||||
{ plugin = nui-nvim; }
|
||||
{ plugin = nvim-colorizer-lua; }
|
||||
{
|
||||
plugin = noice-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */''
|
||||
lsp = {
|
||||
override = {
|
||||
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
|
||||
['vim.lsp.util.stylize_markdown'] = true,
|
||||
},
|
||||
},
|
||||
popupmenu = {
|
||||
enabled = true,
|
||||
backend = 'nui',
|
||||
},
|
||||
notify = {
|
||||
enabled = true,
|
||||
view = 'notify',
|
||||
},
|
||||
routes = {
|
||||
{
|
||||
view = 'notify',
|
||||
filter = { event = 'msg_showmode' },
|
||||
},
|
||||
},
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = snacks-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */''
|
||||
animate = {},
|
||||
dim = {},
|
||||
image = {},
|
||||
indent = {},
|
||||
lazygit = {},
|
||||
picker = {},
|
||||
'';
|
||||
}
|
||||
{ plugin = lazygit-nvim; }
|
||||
{ plugin = nvim-lspconfig; }
|
||||
{ plugin = nvim-treesitter; }
|
||||
{ plugin = plenary-nvim; }
|
||||
{ plugin = go-nvim; }
|
||||
{ plugin = guihua-lua; }
|
||||
{
|
||||
plugin = conform-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */''
|
||||
formatters_by_ft = {
|
||||
ansible = { 'ansible-lint' },
|
||||
buf = { 'buf' },
|
||||
cmake = { 'cmake_format' },
|
||||
go = { 'goimports' },
|
||||
markdown = { 'cbfmt', 'mdformat' },
|
||||
sql = { 'sqlfluff' },
|
||||
terraform = { 'terraform_fmt' },
|
||||
templ = { 'go tool templ fmt' },
|
||||
},
|
||||
'';
|
||||
}
|
||||
{ plugin = which-key-nvim; }
|
||||
{ plugin = yazi-nvim; }
|
||||
{ plugin = dashboard-nvim; }
|
||||
];
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
withNodeJs = true;
|
||||
withPerl = true;
|
||||
withPython3 = true;
|
||||
extraPackages = with pkgs; [
|
||||
delve
|
||||
ginkgo
|
||||
golangci-lint
|
||||
gopls
|
||||
gotests
|
||||
gotestsum
|
||||
gotools
|
||||
govulncheck
|
||||
tree-sitter
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
[mgr]
|
||||
show_hidden = true
|
||||
sort_by = "natural"
|
||||
sort_sensitive = true
|
||||
sort_dir_first = true
|
||||
scrolloff = 5
|
||||
@@ -23,6 +23,10 @@
|
||||
homeDirectory = "/home/${username}";
|
||||
preferXdgDirectories = true;
|
||||
stateVersion = stateVersion;
|
||||
sessionPath = [
|
||||
"$HOME/go/bin"
|
||||
"$HOME/.local/bin"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
bitwarden-cli
|
||||
bitwarden-desktop
|
||||
@@ -49,30 +53,30 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
emoji = with pkgs; [
|
||||
nerd-fonts.symbols-only
|
||||
font-awesome
|
||||
];
|
||||
monospace = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.symbols-only
|
||||
];
|
||||
sansSerif = [
|
||||
liberation_ttf_v2
|
||||
];
|
||||
serif = [
|
||||
liberation_ttf_v2
|
||||
];
|
||||
};
|
||||
antialiasing = true;
|
||||
hinting = "medium";
|
||||
subpixelRendering = "rgb";
|
||||
};
|
||||
};
|
||||
# fonts = {
|
||||
# fontconfig = {
|
||||
# defaultFonts = {
|
||||
# emoji = with pkgs; [
|
||||
# nerd-fonts.symbols-only
|
||||
# font-awesome
|
||||
# ];
|
||||
# monospace = with pkgs; [
|
||||
# nerd-fonts.jetbrains-mono
|
||||
# nerd-fonts.hack
|
||||
# nerd-fonts.symbols-only
|
||||
# ];
|
||||
# sansSerif = [
|
||||
# liberation_ttf_v2
|
||||
# ];
|
||||
# serif = [
|
||||
# liberation_ttf_v2
|
||||
# ];
|
||||
# };
|
||||
# antialiasing = true;
|
||||
# hinting = "medium";
|
||||
# subpixelRendering = "rgb";
|
||||
# };
|
||||
# };
|
||||
programs = {
|
||||
aerc = {
|
||||
enable = true;
|
||||
@@ -154,7 +158,6 @@
|
||||
macos-option-as-alt = true;
|
||||
shell-integration-features = "no-cursor";
|
||||
cursor-style = "block";
|
||||
background-opacity = 0.75;
|
||||
};
|
||||
themes = {
|
||||
sproutingdark = {
|
||||
@@ -176,14 +179,14 @@
|
||||
"14=#b2f8f5"
|
||||
"15=#f5f9f5"
|
||||
];
|
||||
background = "1f2620";
|
||||
foreground = "eaeaea";
|
||||
cursor-color = "fffd98";
|
||||
cursor-text = "3f4c3f";
|
||||
background = "#1f2620";
|
||||
foreground = "#eaeaea";
|
||||
cursor-color = "#fffd98";
|
||||
cursor-text = "#3f4c3f";
|
||||
cursor-opacity = 0.7;
|
||||
cursor-style = "block";
|
||||
selection-background = "3f4c3f";
|
||||
selection-foreground = "ffffea";
|
||||
selection-background = "#3f4c3f";
|
||||
selection-foreground = "#ffffea";
|
||||
background-opacity = 1;
|
||||
window-padding-x = "2,2";
|
||||
window-padding-y = "2,2";
|
||||
@@ -231,22 +234,11 @@
|
||||
settings = {
|
||||
wayland-app-id = "neovide";
|
||||
font = {
|
||||
normal = [ pkgs.nerd-fonts.jetbrains-mono ];
|
||||
normal = [ "JetBrainsMono Nerd Font" ];
|
||||
size = 14.0;
|
||||
};
|
||||
};
|
||||
};
|
||||
neovim = {
|
||||
enable = true;
|
||||
initLua = builtins.readFile ../config/nvim/stobbsm/nvim.lua;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
withNodeJs = true;
|
||||
withPerl = true;
|
||||
withPython3 = true;
|
||||
};
|
||||
# noctalia = {
|
||||
# enable = true;
|
||||
# settings = "${config.xdg.configHome}/dotfiles/niri/.config/niri/full.kdl";
|
||||
@@ -402,8 +394,24 @@
|
||||
yazi = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = builtins.readFile ../config/yazi/yazi.toml;
|
||||
theme = builtins.readFile ../config/yazi/themes/sprouting.toml;
|
||||
flavors = {
|
||||
sprouting = ../config/yazi/themes/sprouting.yazi;
|
||||
};
|
||||
settings = {
|
||||
mgr = {
|
||||
show_hidden = true;
|
||||
sort_by = "natural";
|
||||
sort_sensitive = true;
|
||||
sort_dir_first = true;
|
||||
scrolloff = 5;
|
||||
};
|
||||
};
|
||||
theme = {
|
||||
flavor = {
|
||||
dark = "sprouting";
|
||||
light = "sprouting";
|
||||
};
|
||||
};
|
||||
};
|
||||
zoxide = {
|
||||
enable = true;
|
||||
@@ -431,332 +439,332 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
wayland = {
|
||||
windowManager = {
|
||||
niri = {
|
||||
enable = true;
|
||||
settings = {
|
||||
layout = {
|
||||
focus-ring = {
|
||||
active-color = "#9bdf9e";
|
||||
inactive-color = "#7e997e";
|
||||
urgent-color = "#e04b7c";
|
||||
};
|
||||
border = {
|
||||
active-color = "#9bdf9e";
|
||||
inactive-color = "#7e997e";
|
||||
urgent-color = "#e04b7c";
|
||||
};
|
||||
shadow = {
|
||||
color = "#3f4c3f70";
|
||||
};
|
||||
tab-indicator = {
|
||||
active-color = "#9bdf9e";
|
||||
inactive-color = "#7e997e";
|
||||
urgent-color = "#e04b7c";
|
||||
};
|
||||
insert-hint = {
|
||||
color = "#3f4c3f80";
|
||||
};
|
||||
_props.gaps = 16;
|
||||
_props.center-focused-column = "never";
|
||||
|
||||
_props.background-color = "transparent";
|
||||
|
||||
preset-column-widths = {
|
||||
_props.proportion = 0.33333;
|
||||
_props.proportion = 0.5;
|
||||
_props.proportion = 0.66667;
|
||||
};
|
||||
|
||||
_props.struts = "{}";
|
||||
};
|
||||
recent-windows = {
|
||||
highlight = {
|
||||
_props.active-color = "#b1ccb1";
|
||||
_props.urgent-color = "#e8789d";
|
||||
};
|
||||
};
|
||||
animations = {
|
||||
workspace-switch = {
|
||||
"spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001" = { };
|
||||
};
|
||||
window-open = {
|
||||
duration-ms = 200;
|
||||
curve = "ease-out-quad";
|
||||
};
|
||||
window-close = {
|
||||
duration-ms = 200;
|
||||
curve = "ease-out-cubic";
|
||||
};
|
||||
horizontal-view-movement = {
|
||||
"spring damping-ratio=1.0 stiffness=900 epsilon=0.0001" = { };
|
||||
};
|
||||
window-movement = {
|
||||
"spring damping-ratio=1.0 stiffness=800 epsilon=0.0001" = { };
|
||||
};
|
||||
window-resize = {
|
||||
"spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001" = { };
|
||||
};
|
||||
config-notification-open-close = {
|
||||
"spring damping-ratio=0.6 stiffness=1200 epsilon=0.001" = { };
|
||||
};
|
||||
screenshot-ui-open = {
|
||||
duration-ms = 300;
|
||||
curve = "ease-out-quad";
|
||||
};
|
||||
overview-open-close = {
|
||||
"spring damping-ratio=1.0 stiffness=900 epsilon=0.0001" = { };
|
||||
};
|
||||
};
|
||||
input = {
|
||||
keyboard = {
|
||||
xkb = {
|
||||
#layout = "us";
|
||||
};
|
||||
};
|
||||
touchpad = {
|
||||
tap = { };
|
||||
natural-scroll = { };
|
||||
};
|
||||
mouse = {
|
||||
accel-profile = "flat";
|
||||
accel-speed = 0.0;
|
||||
};
|
||||
focus-follows-mouse = { };
|
||||
workspace-auto-back-and-forth = { };
|
||||
};
|
||||
binds = {
|
||||
"Mod+Shift+ESCAPE".show-hotkey-overlay = { };
|
||||
|
||||
"Mod+Return" = {
|
||||
_props.hotkey-overlay-title = "Open Terminal: Ghostty";
|
||||
spawn = [ "ghostty" ];
|
||||
};
|
||||
"Mod+B" = {
|
||||
_props.hotkey-overlay-title = "Open Browser: firefox";
|
||||
spawn = [ "firefox" ];
|
||||
};
|
||||
"Mod+ALT+L" = {
|
||||
_props.hotkey-overlay-title = "Lock Screen: noctalia lock";
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call lockScreen lock" ];
|
||||
};
|
||||
"Mod+Shift+Q" = {
|
||||
_props.hotkey-overlay-title = "Session Menu: noctalia sessionMenu";
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call sessionMenu toggle" ];
|
||||
};
|
||||
|
||||
"Mod+E" = {
|
||||
_props.hotkey-overlay-title = "File Manager: Nautilus";
|
||||
spawn = [ "nautilus" ];
|
||||
};
|
||||
|
||||
"XF86AudioRaiseVolume" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call volume increase" ];
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call volume decrease" ];
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call volume muteOutput" ];
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call volume muteInput" ];
|
||||
};
|
||||
"XF86AudioNext" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call media next" ];
|
||||
};
|
||||
"XF86AudioPrev" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call media previous" ];
|
||||
};
|
||||
"XF86AudioPlay" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call media playPause" ];
|
||||
};
|
||||
"XF86AudioPause" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call media playPause" ];
|
||||
};
|
||||
|
||||
"XF86MonBrightnessUp" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call brightness increase" ];
|
||||
};
|
||||
"XF86MonBrightnessDown" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn-sh = [ "qs -c noctalia-shell ipc call brightness decrease" ];
|
||||
};
|
||||
|
||||
"Mod+Q".close-window = { };
|
||||
|
||||
"Mod+Left".focus-column-left = { };
|
||||
"Mod+H".focus-column-left = { };
|
||||
"Mod+Right".focus-column-right = { };
|
||||
"Mod+L".focus-column-right = { };
|
||||
"Mod+Up".focus-window-up = { };
|
||||
"Mod+K".focus-window-up = { };
|
||||
"Mod+Down".focus-window-down = { };
|
||||
"Mod+J".focus-window-down = { };
|
||||
|
||||
"Mod+CTRL+Left".move-column-left = { };
|
||||
"Mod+CTRL+H".move-column-left = { };
|
||||
"Mod+CTRL+Right".move-column-right = { };
|
||||
"Mod+CTRL+L".move-column-right = { };
|
||||
"Mod+CTRL+UP".move-window-up = { };
|
||||
"Mod+CTRL+K".move-window-up = { };
|
||||
"Mod+CTRL+Down".move-window-down = { };
|
||||
"Mod+CTRL+J".move-window-down = { };
|
||||
|
||||
"Mod+Home".focus-column-first = { };
|
||||
"Mod+End".focus-column-last = { };
|
||||
"Mod+CTRL+Home".move-column-to-first = { };
|
||||
"Mod+CTRL+End".move-column-to-last = { };
|
||||
|
||||
"Mod+Shift+Left".focus-monitor-left = { };
|
||||
"Mod+Shift+Right".focus-monitor-right = { };
|
||||
"Mod+Shift+UP".focus-monitor-up = { };
|
||||
"Mod+Shift+Down".focus-monitor-down = { };
|
||||
|
||||
"Mod+Shift+CTRL+Left".move-column-to-monitor-left = { };
|
||||
"Mod+Shift+CTRL+Right".move-column-to-monitor-right = { };
|
||||
"Mod+Shift+CTRL+UP".move-column-to-monitor-up = { };
|
||||
"Mod+Shift+CTRL+Down".move-column-to-monitor-down = { };
|
||||
|
||||
"Mod+Next" = {
|
||||
_props.cooldown-ms = 150;
|
||||
_props.focus-workspace-down = { };
|
||||
};
|
||||
"Mod+Prior" = {
|
||||
_props.cooldown-ms = 150;
|
||||
_props.focus-workspace-up = { };
|
||||
};
|
||||
"Mod+CTRL+Next" = {
|
||||
_props.cooldown-ms = 150;
|
||||
_props.move-column-to-workspace-down = { };
|
||||
};
|
||||
"Mod+CTRL+Prior" = {
|
||||
_props.cooldown-ms = 150;
|
||||
_props.move-column-to-workspace-up = { };
|
||||
};
|
||||
|
||||
"Mod+WheelScrollRight".focus-column-right = { };
|
||||
"Mod+WheelScrollLeft".focus-column-left = { };
|
||||
"Mod+CTRL+WheelScrollRight".move-column-right = { };
|
||||
"Mod+CTRL+WheelScrollLeft".move-column-left = { };
|
||||
|
||||
"Mod+Shift+WheelScrollDown".focus-column-right = { };
|
||||
"Mod+Shift+WheelScrollUp".focus-column-left = { };
|
||||
"Mod+CTRL+Shift+WheelScrollDown".move-column-right = { };
|
||||
"Mod+CTRL+Shift+WheelScrollUp".move-column-left = { };
|
||||
|
||||
"Mod+1".focus-workspace = 1;
|
||||
"Mod+2".focus-workspace = 2;
|
||||
"Mod+3".focus-workspace = 3;
|
||||
"Mod+4".focus-workspace = 4;
|
||||
"Mod+5".focus-workspace = 5;
|
||||
"Mod+6".focus-workspace = 6;
|
||||
"Mod+7".focus-workspace = 7;
|
||||
"Mod+8".focus-workspace = 8;
|
||||
"Mod+9".focus-workspace = 9;
|
||||
|
||||
"Mod+CTRL+1".move-column-to-workspace = 1;
|
||||
"Mod+CTRL+2".move-column-to-workspace = 2;
|
||||
"Mod+CTRL+3".move-column-to-workspace = 3;
|
||||
"Mod+CTRL+4".move-column-to-workspace = 4;
|
||||
"Mod+CTRL+5".move-column-to-workspace = 5;
|
||||
"Mod+CTRL+6".move-column-to-workspace = 6;
|
||||
"Mod+CTRL+7".move-column-to-workspace = 7;
|
||||
"Mod+CTRL+8".move-column-to-workspace = 8;
|
||||
"Mod+CTRL+9".move-column-to-workspace = 9;
|
||||
|
||||
"Mod+TAB".focus-workspace-previous = { };
|
||||
|
||||
"Mod+CTRL+F".expand-column-to-available-width = { };
|
||||
"Mod+C".center-column = { };
|
||||
"Mod+CTRL+C".center-visible-columns = { };
|
||||
"Mod+Minus".set-column-width = "-10%";
|
||||
"Mod+Equal".set-column-width = "+10%";
|
||||
"Mod+Shift+Minus".set-window-height = "-10%";
|
||||
"Mod+Shift+Equal".set-window-height = "+10%";
|
||||
|
||||
"Mod+T".toggle-window-floating = { };
|
||||
"Mod+F".fullscreen-window = { };
|
||||
"Mod+W".toggle-column-tabbed-display = { };
|
||||
|
||||
"CTRL+Shift+1".screenshot = { };
|
||||
"CTRL+Shift+2".screenshot-screen = { };
|
||||
"CTRL+Shift+3".screenshot-window = { };
|
||||
|
||||
"Mod+ESCAPE" = {
|
||||
allow-inhibiting = false;
|
||||
toggle-keyboard-shortcuts-inhibit = { };
|
||||
};
|
||||
|
||||
"CTRL+ALT+Delete".quit = { };
|
||||
"Mod+Shift+P".power-off-monitors = { };
|
||||
"Mod+O" = {
|
||||
repeat = false;
|
||||
toggle-overview = { };
|
||||
};
|
||||
};
|
||||
|
||||
_props.prefer-no-csd = { };
|
||||
screenshot-path = "null";
|
||||
|
||||
environment = {
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
XDG_CURRENT_DESKTOP = "niri";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
};
|
||||
|
||||
cursor = {
|
||||
xcursor-theme = "capitaine-cursors";
|
||||
xcursor-size = 24;
|
||||
};
|
||||
|
||||
debug = {
|
||||
_props.honor-xdg-activation-with-invalid-serial = { };
|
||||
};
|
||||
|
||||
hotkey-overlay = {
|
||||
_props.skip-at-startup = { };
|
||||
};
|
||||
|
||||
window-rule = {
|
||||
_props.geometry-corner-radius = 20;
|
||||
clip-to-geometry = true;
|
||||
};
|
||||
|
||||
window-rule = {
|
||||
match = "app-id=\"steam\"";
|
||||
exclude = "title=r#\"^[Ss]team$\"#";
|
||||
open-floating = true;
|
||||
};
|
||||
|
||||
window-rule = {
|
||||
match = "app-id=\"steam\" title=r#\"^notificationtoasts_\d+_desktop$\"#";
|
||||
default-floating-position = "x=10 y=10 relative-to=\"bottom-right\"";
|
||||
open-focused = false;
|
||||
};
|
||||
|
||||
layer-rule = {
|
||||
match = "namespace=\"^noctalia-wallpaper*\"";
|
||||
place-within-backdrop = true;
|
||||
};
|
||||
};
|
||||
systemd = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# wayland = {
|
||||
# windowManager = {
|
||||
# niri = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# layout = {
|
||||
# focus-ring = {
|
||||
# active-color = "#9bdf9e";
|
||||
# inactive-color = "#7e997e";
|
||||
# urgent-color = "#e04b7c";
|
||||
# };
|
||||
# border = {
|
||||
# active-color = "#9bdf9e";
|
||||
# inactive-color = "#7e997e";
|
||||
# urgent-color = "#e04b7c";
|
||||
# };
|
||||
# shadow = {
|
||||
# color = "#3f4c3f70";
|
||||
# };
|
||||
# tab-indicator = {
|
||||
# active-color = "#9bdf9e";
|
||||
# inactive-color = "#7e997e";
|
||||
# urgent-color = "#e04b7c";
|
||||
# };
|
||||
# insert-hint = {
|
||||
# color = "#3f4c3f80";
|
||||
# };
|
||||
# _props.gaps = 16;
|
||||
# _props.center-focused-column = "never";
|
||||
#
|
||||
# _props.background-color = "transparent";
|
||||
#
|
||||
# preset-column-widths = ''
|
||||
# proportion = 0.33333
|
||||
# proportion = 0.5
|
||||
# proportion = 0.66667
|
||||
# '';
|
||||
#
|
||||
# _props.struts = "{}";
|
||||
# };
|
||||
# recent-windows = {
|
||||
# highlight = {
|
||||
# _props.active-color = "#b1ccb1";
|
||||
# _props.urgent-color = "#e8789d";
|
||||
# };
|
||||
# };
|
||||
# animations = {
|
||||
# workspace-switch = {
|
||||
# "spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001" = { };
|
||||
# };
|
||||
# window-open = {
|
||||
# duration-ms = 200;
|
||||
# curve = "ease-out-quad";
|
||||
# };
|
||||
# window-close = {
|
||||
# duration-ms = 200;
|
||||
# curve = "ease-out-cubic";
|
||||
# };
|
||||
# horizontal-view-movement = {
|
||||
# "spring damping-ratio=1.0 stiffness=900 epsilon=0.0001" = { };
|
||||
# };
|
||||
# window-movement = {
|
||||
# "spring damping-ratio=1.0 stiffness=800 epsilon=0.0001" = { };
|
||||
# };
|
||||
# window-resize = {
|
||||
# "spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001" = { };
|
||||
# };
|
||||
# config-notification-open-close = {
|
||||
# "spring damping-ratio=0.6 stiffness=1200 epsilon=0.001" = { };
|
||||
# };
|
||||
# screenshot-ui-open = {
|
||||
# duration-ms = 300;
|
||||
# curve = "ease-out-quad";
|
||||
# };
|
||||
# overview-open-close = {
|
||||
# "spring damping-ratio=1.0 stiffness=900 epsilon=0.0001" = { };
|
||||
# };
|
||||
# };
|
||||
# input = {
|
||||
# keyboard = {
|
||||
# xkb = {
|
||||
# #layout = "us";
|
||||
# };
|
||||
# };
|
||||
# touchpad = {
|
||||
# tap = { };
|
||||
# natural-scroll = { };
|
||||
# };
|
||||
# mouse = {
|
||||
# accel-profile = "flat";
|
||||
# accel-speed = 0.0;
|
||||
# };
|
||||
# focus-follows-mouse = { };
|
||||
# workspace-auto-back-and-forth = { };
|
||||
# };
|
||||
# binds = {
|
||||
# "Mod+Shift+ESCAPE".show-hotkey-overlay = { };
|
||||
#
|
||||
# "Mod+Return" = {
|
||||
# _props.hotkey-overlay-title = "Open Terminal: Ghostty";
|
||||
# spawn = [ "ghostty" ];
|
||||
# };
|
||||
# "Mod+B" = {
|
||||
# _props.hotkey-overlay-title = "Open Browser: firefox";
|
||||
# spawn = [ "firefox" ];
|
||||
# };
|
||||
# "Mod+ALT+L" = {
|
||||
# _props.hotkey-overlay-title = "Lock Screen: noctalia lock";
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call lockScreen lock" ];
|
||||
# };
|
||||
# "Mod+Shift+Q" = {
|
||||
# _props.hotkey-overlay-title = "Session Menu: noctalia sessionMenu";
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call sessionMenu toggle" ];
|
||||
# };
|
||||
#
|
||||
# "Mod+E" = {
|
||||
# _props.hotkey-overlay-title = "File Manager: Nautilus";
|
||||
# spawn = [ "nautilus" ];
|
||||
# };
|
||||
#
|
||||
# "XF86AudioRaiseVolume" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call volume increase" ];
|
||||
# };
|
||||
# "XF86AudioLowerVolume" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call volume decrease" ];
|
||||
# };
|
||||
# "XF86AudioMute" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call volume muteOutput" ];
|
||||
# };
|
||||
# "XF86AudioMicMute" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call volume muteInput" ];
|
||||
# };
|
||||
# "XF86AudioNext" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call media next" ];
|
||||
# };
|
||||
# "XF86AudioPrev" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call media previous" ];
|
||||
# };
|
||||
# "XF86AudioPlay" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call media playPause" ];
|
||||
# };
|
||||
# "XF86AudioPause" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call media playPause" ];
|
||||
# };
|
||||
#
|
||||
# "XF86MonBrightnessUp" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call brightness increase" ];
|
||||
# };
|
||||
# "XF86MonBrightnessDown" = {
|
||||
# _props.allow-when-locked = true;
|
||||
# spawn-sh = [ "qs -c noctalia-shell ipc call brightness decrease" ];
|
||||
# };
|
||||
#
|
||||
# "Mod+Q".close-window = { };
|
||||
#
|
||||
# "Mod+Left".focus-column-left = { };
|
||||
# "Mod+H".focus-column-left = { };
|
||||
# "Mod+Right".focus-column-right = { };
|
||||
# "Mod+L".focus-column-right = { };
|
||||
# "Mod+Up".focus-window-up = { };
|
||||
# "Mod+K".focus-window-up = { };
|
||||
# "Mod+Down".focus-window-down = { };
|
||||
# "Mod+J".focus-window-down = { };
|
||||
#
|
||||
# "Mod+CTRL+Left".move-column-left = { };
|
||||
# "Mod+CTRL+H".move-column-left = { };
|
||||
# "Mod+CTRL+Right".move-column-right = { };
|
||||
# "Mod+CTRL+L".move-column-right = { };
|
||||
# "Mod+CTRL+UP".move-window-up = { };
|
||||
# "Mod+CTRL+K".move-window-up = { };
|
||||
# "Mod+CTRL+Down".move-window-down = { };
|
||||
# "Mod+CTRL+J".move-window-down = { };
|
||||
#
|
||||
# "Mod+Home".focus-column-first = { };
|
||||
# "Mod+End".focus-column-last = { };
|
||||
# "Mod+CTRL+Home".move-column-to-first = { };
|
||||
# "Mod+CTRL+End".move-column-to-last = { };
|
||||
#
|
||||
# "Mod+Shift+Left".focus-monitor-left = { };
|
||||
# "Mod+Shift+Right".focus-monitor-right = { };
|
||||
# "Mod+Shift+UP".focus-monitor-up = { };
|
||||
# "Mod+Shift+Down".focus-monitor-down = { };
|
||||
#
|
||||
# "Mod+Shift+CTRL+Left".move-column-to-monitor-left = { };
|
||||
# "Mod+Shift+CTRL+Right".move-column-to-monitor-right = { };
|
||||
# "Mod+Shift+CTRL+UP".move-column-to-monitor-up = { };
|
||||
# "Mod+Shift+CTRL+Down".move-column-to-monitor-down = { };
|
||||
#
|
||||
# "Mod+Next" = {
|
||||
# _props.cooldown-ms = 150;
|
||||
# _props.focus-workspace-down = { };
|
||||
# };
|
||||
# "Mod+Prior" = {
|
||||
# _props.cooldown-ms = 150;
|
||||
# _props.focus-workspace-up = { };
|
||||
# };
|
||||
# "Mod+CTRL+Next" = {
|
||||
# _props.cooldown-ms = 150;
|
||||
# _props.move-column-to-workspace-down = { };
|
||||
# };
|
||||
# "Mod+CTRL+Prior" = {
|
||||
# _props.cooldown-ms = 150;
|
||||
# _props.move-column-to-workspace-up = { };
|
||||
# };
|
||||
#
|
||||
# "Mod+WheelScrollRight".focus-column-right = { };
|
||||
# "Mod+WheelScrollLeft".focus-column-left = { };
|
||||
# "Mod+CTRL+WheelScrollRight".move-column-right = { };
|
||||
# "Mod+CTRL+WheelScrollLeft".move-column-left = { };
|
||||
#
|
||||
# "Mod+Shift+WheelScrollDown".focus-column-right = { };
|
||||
# "Mod+Shift+WheelScrollUp".focus-column-left = { };
|
||||
# "Mod+CTRL+Shift+WheelScrollDown".move-column-right = { };
|
||||
# "Mod+CTRL+Shift+WheelScrollUp".move-column-left = { };
|
||||
#
|
||||
# "Mod+1".focus-workspace = 1;
|
||||
# "Mod+2".focus-workspace = 2;
|
||||
# "Mod+3".focus-workspace = 3;
|
||||
# "Mod+4".focus-workspace = 4;
|
||||
# "Mod+5".focus-workspace = 5;
|
||||
# "Mod+6".focus-workspace = 6;
|
||||
# "Mod+7".focus-workspace = 7;
|
||||
# "Mod+8".focus-workspace = 8;
|
||||
# "Mod+9".focus-workspace = 9;
|
||||
#
|
||||
# "Mod+CTRL+1".move-column-to-workspace = 1;
|
||||
# "Mod+CTRL+2".move-column-to-workspace = 2;
|
||||
# "Mod+CTRL+3".move-column-to-workspace = 3;
|
||||
# "Mod+CTRL+4".move-column-to-workspace = 4;
|
||||
# "Mod+CTRL+5".move-column-to-workspace = 5;
|
||||
# "Mod+CTRL+6".move-column-to-workspace = 6;
|
||||
# "Mod+CTRL+7".move-column-to-workspace = 7;
|
||||
# "Mod+CTRL+8".move-column-to-workspace = 8;
|
||||
# "Mod+CTRL+9".move-column-to-workspace = 9;
|
||||
#
|
||||
# "Mod+TAB".focus-workspace-previous = { };
|
||||
#
|
||||
# "Mod+CTRL+F".expand-column-to-available-width = { };
|
||||
# "Mod+C".center-column = { };
|
||||
# "Mod+CTRL+C".center-visible-columns = { };
|
||||
# "Mod+Minus".set-column-width = "-10%";
|
||||
# "Mod+Equal".set-column-width = "+10%";
|
||||
# "Mod+Shift+Minus".set-window-height = "-10%";
|
||||
# "Mod+Shift+Equal".set-window-height = "+10%";
|
||||
#
|
||||
# "Mod+T".toggle-window-floating = { };
|
||||
# "Mod+F".fullscreen-window = { };
|
||||
# "Mod+W".toggle-column-tabbed-display = { };
|
||||
#
|
||||
# "CTRL+Shift+1".screenshot = { };
|
||||
# "CTRL+Shift+2".screenshot-screen = { };
|
||||
# "CTRL+Shift+3".screenshot-window = { };
|
||||
#
|
||||
# "Mod+ESCAPE" = {
|
||||
# allow-inhibiting = false;
|
||||
# toggle-keyboard-shortcuts-inhibit = { };
|
||||
# };
|
||||
#
|
||||
# "CTRL+ALT+Delete".quit = { };
|
||||
# "Mod+Shift+P".power-off-monitors = { };
|
||||
# "Mod+O" = {
|
||||
# repeat = false;
|
||||
# toggle-overview = { };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# _props.prefer-no-csd = { };
|
||||
# screenshot-path = "null";
|
||||
#
|
||||
# environment = {
|
||||
# ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
# QT_QPA_PLATFORM = "wayland";
|
||||
# QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
# QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
# XDG_CURRENT_DESKTOP = "niri";
|
||||
# XDG_SESSION_TYPE = "wayland";
|
||||
# };
|
||||
#
|
||||
# cursor = {
|
||||
# xcursor-theme = "capitaine-cursors";
|
||||
# xcursor-size = 24;
|
||||
# };
|
||||
#
|
||||
# debug = {
|
||||
# _props.honor-xdg-activation-with-invalid-serial = { };
|
||||
# };
|
||||
#
|
||||
# hotkey-overlay = {
|
||||
# _props.skip-at-startup = { };
|
||||
# };
|
||||
#
|
||||
# window-rule = {
|
||||
# _props.geometry-corner-radius = 20;
|
||||
# clip-to-geometry = true;
|
||||
# };
|
||||
#
|
||||
# window-rule = {
|
||||
# match = "app-id=\"steam\"";
|
||||
# exclude = "title=r#\"^[Ss]team$\"#";
|
||||
# open-floating = true;
|
||||
# };
|
||||
#
|
||||
# window-rule = {
|
||||
# match = "app-id=\"steam\" title=r#\"^notificationtoasts_\d+_desktop$\"#";
|
||||
# default-floating-position = "x=10 y=10 relative-to=\"bottom-right\"";
|
||||
# open-focused = false;
|
||||
# };
|
||||
#
|
||||
# layer-rule = {
|
||||
# match = "namespace=\"^noctalia-wallpaper*\"";
|
||||
# place-within-backdrop = true;
|
||||
# };
|
||||
# };
|
||||
# systemd = {
|
||||
# enable = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
security.rtkit.enable = true;
|
||||
systemd = {
|
||||
user = {
|
||||
services = {
|
||||
@@ -82,6 +83,8 @@
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
};
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
libinput.enable = true;
|
||||
|
||||
Reference in New Issue
Block a user