Compare commits

...

15 Commits

Author SHA1 Message Date
7bd24eaea6 enable rtkit and alsa for pipewire 2026-09-03 18:50:06 -05:00
cb31edd30a moving nvim.lua for stobbsm to nvim.nix 2026-08-20 15:18:12 -05:00
623ff4e1a9 add gobin to path 2026-08-20 14:34:03 -05:00
3ff184e813 add extra packages to neovim 2026-08-20 14:28:11 -05:00
a0239eb5a9 add extra packages to neovim install 2026-08-20 14:12:53 -05:00
e9c8dfe196 fix (hopefully) neovide font 2026-08-20 13:46:49 -05:00
a6ce51554f remove background-opacity from ghostty 2026-08-20 13:08:08 -05:00
e3bca91c69 update background colour in ghostty 2026-08-20 12:58:09 -05:00
0be13c3ce1 remove unneeded yazi.toml 2026-08-20 12:56:36 -05:00
230aff4564 rename yazi flavor, move to directory layout 2026-08-20 12:50:35 -05:00
a64ff2cb9c fix yazi config 2026-08-20 12:39:31 -05:00
21581780d0 rename stobbsm/init.lua 2026-08-20 12:30:53 -05:00
ff59fb17c5 remove font config for now 2026-08-20 12:28:21 -05:00
5ac6408727 remove wayland config for now
- try to configure a shell to handle the config for me?
2026-08-20 12:27:41 -05:00
598c2e9780 fix properties issue 2026-08-20 12:22:59 -05:00
6 changed files with 557 additions and 396 deletions

View File

@@ -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

View 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
];
};
}

View File

@@ -1,6 +0,0 @@
[mgr]
show_hidden = true
sort_by = "natural"
sort_sensitive = true
sort_dir_first = true
scrolloff = 5

View File

@@ -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;
# };
# };
# };
# };
}

View File

@@ -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;