stuff and things
This commit is contained in:
parent
fe357582a6
commit
b5542e492f
36 changed files with 1059 additions and 1069 deletions
|
|
@ -497,7 +497,7 @@ in {
|
|||
"gtk-layer-shell" = true;
|
||||
passthrough = false;
|
||||
"fixed-center" = true;
|
||||
"modules-left" = ["hyprland/workspaces" "hyprland/window"];
|
||||
"modules-left" = ["hyprland/workspaces" "hyprland/window" "niri/workspaces" "niri/window"];
|
||||
"modules-center" = ["mpris"];
|
||||
"modules-right" = [
|
||||
"cpu"
|
||||
|
|
|
|||
|
|
@ -12,22 +12,56 @@ in {
|
|||
enable = mkBoolOpt false "Enable Alacritty Term";
|
||||
|
||||
fonts = {
|
||||
# normal = {
|
||||
# family = mkStringOpt "Cozette" "The Family of the font";
|
||||
# # style = mkStringOpt "ExtraBold" "The Style of the font";
|
||||
# };
|
||||
# bold = {
|
||||
# family = mkStringOpt "Cozette" "The Family of the font";
|
||||
# # style = mkStringOpt "Heavy" "The Style of the font";
|
||||
# };
|
||||
# italic = {
|
||||
# family = mkStringOpt "Cozette" "The Family of the font";
|
||||
# # style = mkStringOpt "ExtraBold Italic" "The Style of the font";
|
||||
# };
|
||||
# bold_italic = {
|
||||
# family = mkStringOpt "Cozette" "The Family of the font";
|
||||
# # style = mkStringOpt "Heavy Italic" "The Style of the font";
|
||||
# };
|
||||
|
||||
normal = {
|
||||
family = mkStringOpt "Iosevka" "The Family of the font";
|
||||
style = mkStringOpt "ExtraBold" "The Style of the font";
|
||||
family = mkStringOpt "Iosevka Nerd Font Mono" "The Family of the font";
|
||||
style = mkStringOpt "SemiBold SemiExtended" "The Style of the font";
|
||||
};
|
||||
bold = {
|
||||
family = mkStringOpt "Iosevka" "The Family of the font";
|
||||
style = mkStringOpt "Heavy" "The Style of the font";
|
||||
family = mkStringOpt "Iosevka Nerd Font Mono" "The Family of the font";
|
||||
style = mkStringOpt "Bold SemiExtended" "The Style of the font";
|
||||
};
|
||||
italic = {
|
||||
family = mkStringOpt "Iosevka" "The Family of the font";
|
||||
style = mkStringOpt "ExtraBold Italic" "The Style of the font";
|
||||
family = mkStringOpt "Iosevka Nerd Font Mono" "The Family of the font";
|
||||
style = mkStringOpt "SemiBold Italic SemiExtended" "The Style of the font";
|
||||
};
|
||||
bold_italic = {
|
||||
family = mkStringOpt "Iosevka" "The Family of the font";
|
||||
style = mkStringOpt "Heavy Italic" "The Style of the font";
|
||||
family = mkStringOpt "Iosevka Nerd Font Mono" "The Family of the font";
|
||||
style = mkStringOpt "Bold Italic SemiExtended" "The Style of the font";
|
||||
};
|
||||
|
||||
# normal = {
|
||||
# family = mkStringOpt "PragmataPro" "The Family of the font";
|
||||
# # style = mkStringOpt "" "The Style of the font";
|
||||
# };
|
||||
# bold = {
|
||||
# family = mkStringOpt "PragmataPro" "The Family of the font";
|
||||
# style = mkStringOpt "Bold" "The Style of the font";
|
||||
# };
|
||||
# italic = {
|
||||
# family = mkStringOpt "PragmataPro" "The Family of the font";
|
||||
# style = mkStringOpt "Italic" "The Style of the font";
|
||||
# };
|
||||
# bold_italic = {
|
||||
# family = mkStringOpt "PragmataPro" "The Family of the font";
|
||||
# style = mkStringOpt "Bold Italic" "The Style of the font";
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -37,14 +71,29 @@ in {
|
|||
catppuccin.enable = true;
|
||||
|
||||
settings = {
|
||||
colors = {
|
||||
primary.background = "#11111b";
|
||||
};
|
||||
env = {
|
||||
term = "xterm-256color";
|
||||
};
|
||||
cursor = {
|
||||
style = {
|
||||
shape = "Beam";
|
||||
};
|
||||
vi_mode_style = {
|
||||
shape = "Beam";
|
||||
};
|
||||
};
|
||||
window = {
|
||||
opacity = 0.95;
|
||||
# opacity = 0.95;
|
||||
padding = {
|
||||
x = 20;
|
||||
y = 20;
|
||||
};
|
||||
};
|
||||
font = {
|
||||
size = 16.0;
|
||||
normal = cfg.fonts.normal;
|
||||
bold = cfg.fonts.bold;
|
||||
italic = cfg.fonts.italic;
|
||||
|
|
|
|||
|
|
@ -16,10 +16,15 @@ in {
|
|||
# bold = mkStringOpt "JetBrainsMonoNL Nerd Font Mono ExtraBold" "Bold Font";
|
||||
# italic = mkStringOpt "JetBrainsMonoNL Nerd Font Mono Bold Italic" "Italic Font";
|
||||
# bold_italic = mkStringOpt "JetBrainsMonoNL Nerd Font Mono ExtraBold Italic" "Bold Italic Font";
|
||||
normal = mkStringOpt "Pragmata Pro Mono" "Normal Font";
|
||||
bold = mkStringOpt "Iosevka ExtraBold" "Bold Font";
|
||||
italic = mkStringOpt "Iosevka Bold Italic" "Italic Font";
|
||||
bold_italic = mkStringOpt "Iosevka ExtraBold Italic" "Bold Italic Font";
|
||||
# normal = mkStringOpt "Pragmata Pro Mono" "Normal Font";
|
||||
# bold = mkStringOpt "Pragmata Pro Mono" "Bold Font";
|
||||
# italic = mkStringOpt "Iosevka Bold Italic" "Italic Font";
|
||||
# bold_italic = mkStringOpt "Iosevka ExtraBold Italic" "Bold Italic Font";
|
||||
|
||||
normal = mkStringOpt "Iosevka" "Normal Font";
|
||||
bold = mkStringOpt "Iosevka" "Bold Font";
|
||||
italic = mkStringOpt "Iosevka" "Italic Font";
|
||||
bold_italic = mkStringOpt "Iosevka" "Bold Italic Font";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -12,14 +12,18 @@ in {
|
|||
enable = mkBoolOpt false "Enable Kitty Term";
|
||||
|
||||
fonts = {
|
||||
normal = mkStringOpt "JetBrainsMonoNL Nerd Font Mono Bold" "Normal Font";
|
||||
bold = mkStringOpt "JetBrainsMonoNL Nerd Font Mono ExtraBold" "Bold Font";
|
||||
italic = mkStringOpt "JetBrainsMonoNL Nerd Font Mono Bold Italic" "Italic Font";
|
||||
bold_italic = mkStringOpt "JetBrainsMonoNL Nerd Font Mono ExtraBold Italic" "Bold Italic Font";
|
||||
# normal = mkStringOpt "Iosevka Bold" "Normal Font";
|
||||
# bold = mkStringOpt "Iosevka ExtraBold" "Bold Font";
|
||||
# italic = mkStringOpt "Iosevka Bold Italic" "Italic Font";
|
||||
# bold_italic = mkStringOpt "Iosevka ExtraBold Italic" "Bold Italic Font";
|
||||
# normal = mkStringOpt "JetBrainsMonoNL Nerd Font Mono Bold" "Normal Font";
|
||||
# bold = mkStringOpt "JetBrainsMonoNL Nerd Font Mono ExtraBold" "Bold Font";
|
||||
# italic = mkStringOpt "JetBrainsMonoNL Nerd Font Mono Bold Italic" "Italic Font";
|
||||
# bold_italic = mkStringOpt "JetBrainsMoIosevka ExtraBold ItalicnoNL Nerd Font Mono ExtraBold Italic" "Bold Italic Font";
|
||||
# normal = mkStringOpt "Kirsch Nerd Font Mono" "Normal Font";
|
||||
# bold = mkStringOpt "Kirsch Nerd Font Mono" "BBoldold Font";
|
||||
# italic = mkStringOpt "Kirsch Nerd Font Mono" "Italic Font";
|
||||
# bold_italic = mkStringOpt "Kirsch Nerd Font Mono" "Bold Italic Font";
|
||||
normal = mkStringOpt "CozetteVector" "Normal Font";
|
||||
bold = mkStringOpt "CozetteVector" "Bold Font";
|
||||
italic = mkStringOpt "CozetteVector" "Italic Font";
|
||||
bold_italic = mkStringOpt "CozetteVector" "Bold Italic Font";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -28,7 +32,7 @@ in {
|
|||
enable = true;
|
||||
font = {
|
||||
name = cfg.fonts.normal;
|
||||
size = 14;
|
||||
size = 16;
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
|
|
@ -41,7 +45,7 @@ in {
|
|||
|
||||
settings = {
|
||||
window_padding_width = 12;
|
||||
background_opacity = "0.9";
|
||||
# background_opacity = "0.9";
|
||||
# background = "#000000";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
programs.rio = {
|
||||
enable = true;
|
||||
package = inputs.rio-term.packages.${pkgs.system}.default;
|
||||
# package = inputs.rio-term.packages.${pkgs.system}.default;
|
||||
settings = {
|
||||
window = {
|
||||
opacity = 0.9;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.clangd",
|
||||
"lazyvim.plugins.extras.lang.rust",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.nix",
|
||||
"lazyvim.plugins.extras.lang.sql",
|
||||
|
|
@ -32,8 +33,9 @@
|
|||
"lazyvim.plugins.extras.coding.luasnip",
|
||||
"lazyvim.plugins.extras.coding.blink"
|
||||
],
|
||||
"install_version": 8,
|
||||
"news": {
|
||||
"NEWS.md": "6520"
|
||||
"NEWS.md": "10960"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,34 +3,7 @@ require("lazy").setup({
|
|||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
-- { import = "lazyvim.plugins.extras.lang.rust" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.json" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.astro" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.git" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.docker" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.clangd" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.cmake" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.haskell" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.java" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.markdown" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.nix" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.sql" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.svelte" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.tex" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.toml" },
|
||||
-- { import = "lazyvim.plugins.extras.lang.angular" },
|
||||
--
|
||||
-- { import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||
--
|
||||
-- { import = "lazyvim.plugins.extras.coding.luasnip" },
|
||||
-- { import = "lazyvim.plugins.extras.coding.yanky" },
|
||||
--
|
||||
-- { import = "lazyvim.plugins.extras.dap.core" },
|
||||
{ import = "plugins" },
|
||||
{ import = "plugins.extras.rust" },
|
||||
-- { import = "plugins.extras.clangd" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
|
|
|
|||
|
|
@ -9,3 +9,5 @@ end
|
|||
|
||||
-- in this case.
|
||||
vim.g.lazyvim_blink_main = true
|
||||
|
||||
vim.o.termguicolors = true
|
||||
|
|
|
|||
|
|
@ -6,61 +6,51 @@ return {
|
|||
news = { lazyvim = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"drewxs/ash.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"dgox16/oldworld.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"snacks.nvim",
|
||||
opts = {
|
||||
scroll = {
|
||||
enabled = false,
|
||||
},
|
||||
dashboard = {
|
||||
preset = {
|
||||
header = [[
|
||||
/l、
|
||||
(゚、 。 7
|
||||
l ~ヽ
|
||||
じしf_,)ノ
|
||||
]],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
-- {
|
||||
-- "uZer/pywal16.nvim",
|
||||
-- -- for local dev replace with:
|
||||
-- -- dir = '~/your/path/pywal16.nvim',
|
||||
-- config = function()
|
||||
-- vim.cmd.colorscheme("pywal16")
|
||||
-- end,
|
||||
-- },
|
||||
{
|
||||
"catppuccin",
|
||||
opts = {
|
||||
transparent_background = true,
|
||||
integrations = {
|
||||
blink_cmp = true,
|
||||
},
|
||||
-- color_overrides = {
|
||||
-- mocha = {
|
||||
-- base = "#000000",
|
||||
-- mantle = "#000000",
|
||||
-- crust = "#000000",
|
||||
-- },
|
||||
-- },
|
||||
},
|
||||
config = function()
|
||||
require("catppuccin").setup({
|
||||
transparent_background = false,
|
||||
integrations = {
|
||||
blink_cmp = true,
|
||||
nvimtree = true,
|
||||
},
|
||||
custom_highlights = function(colors)
|
||||
return {
|
||||
Normal = { bg = colors.crust },
|
||||
NormalFloat = { bg = colors.crust },
|
||||
|
||||
-- Completion menu (nvim-cmp)
|
||||
Pmenu = { bg = colors.crust },
|
||||
PmenuSel = { bg = colors.surface0 },
|
||||
CmpItemAbbr = { bg = colors.crust },
|
||||
CmpItemAbbrMatch = { bg = colors.crust },
|
||||
|
||||
-- Tabs
|
||||
TabLine = { bg = colors.crust },
|
||||
TabLineFill = { bg = colors.crust },
|
||||
TabLineSel = { bg = colors.crust },
|
||||
|
||||
-- Status line
|
||||
StatusLine = { bg = colors.crust },
|
||||
StatusLineNC = { bg = colors.crust },
|
||||
|
||||
-- Line numbers
|
||||
LineNr = { bg = colors.crust },
|
||||
SignColumn = { bg = colors.crust },
|
||||
}
|
||||
end,
|
||||
color_overrides = {
|
||||
mocha = {
|
||||
base = "#11111b",
|
||||
mantle = "#11111b",
|
||||
crust = "#11111b",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
"f-person/git-blame.nvim",
|
||||
{ "nvim-lualine/lualine.nvim", enabled = false },
|
||||
{ "echasnovski/mini.statusline", opts = {} },
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
|
|
@ -75,41 +65,20 @@ return {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
keys = {
|
||||
{
|
||||
"<leader>z",
|
||||
function()
|
||||
Snacks.zen()
|
||||
end,
|
||||
desc = "Toggle Zen Mode",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
tag = "v3.8.2",
|
||||
---@module "ibl"
|
||||
---@type ibl.config
|
||||
-- opts = {
|
||||
-- debounce = 100,
|
||||
-- indent = { char = "|" },
|
||||
-- whitespace = { highlight = "Whitespace", "NonText" },
|
||||
-- },
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
servers = {
|
||||
emmet_ls = {},
|
||||
slang = {
|
||||
inlayHints = {
|
||||
deducedTypes = true,
|
||||
paramaterNames = true,
|
||||
slangd = {
|
||||
settings = {
|
||||
slangd = {
|
||||
inlayHints = {
|
||||
deducedTypes = true,
|
||||
paramaterNames = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
nil_ls = {
|
||||
|
|
@ -145,10 +114,4 @@ return {
|
|||
require("force-cul").setup()
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "supermaven-inc/supermaven-nvim",
|
||||
-- config = function()
|
||||
-- require("supermaven-nvim").setup({})
|
||||
-- end,
|
||||
-- },
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
catppuccin.tmux = {
|
||||
enable = true;
|
||||
# extraConfig = ''
|
||||
# set -g @catppuccin_window_status_style "basic"
|
||||
# set -g @catppuccin_status_background "#000000"
|
||||
# '';
|
||||
extraConfig = ''
|
||||
set -g @catppuccin_window_status_style "basic"
|
||||
set -g @catppuccin_status_background "#11111b"
|
||||
'';
|
||||
};
|
||||
|
||||
programs.tmux = {
|
||||
|
|
@ -42,7 +42,8 @@ in {
|
|||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -g default-terminal "$TERM"
|
||||
set -ag terminal-overrides ",$TERM:Tc"
|
||||
set -g allow-passthrough on
|
||||
|
||||
set -g status-right-length 100
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
iconUpdateURL = "https://www.openstreetmap.org/favicon.ico";
|
||||
icon = "https://www.openstreetmap.org/favicon.ico";
|
||||
definedAliases = ["@openstreetmap" "@osm"];
|
||||
};
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
iconUpdateURL = "https://search.zoeys.computer/searx/static/themes/simple/img/favicon.svg";
|
||||
icon = "https://search.zoeys.computer/searx/static/themes/simple/img/favicon.svg";
|
||||
definedAliases = ["@searx"];
|
||||
};
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
iconUpdateURL = "https://docs.rs/-/static/favicon.ico";
|
||||
icon = "https://docs.rs/-/static/favicon.ico";
|
||||
definedAliases = ["@docs"];
|
||||
};
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
iconUpdateURL = "https://crates.io/assets/cargo.png";
|
||||
icon = "https://crates.io/assets/cargo.png";
|
||||
definedAliases = ["@crates"];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
24
modules/home/apps/web/zen/default.nix
Normal file
24
modules/home/apps/web/zen/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.apps.web.zen;
|
||||
in {
|
||||
options.apps.web.zen = with types; {
|
||||
enable = mkBoolOpt false "Enable or disable zen";
|
||||
|
||||
setDefault = mkBoolOpt false "Set zen as default browser";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
xdg.mimeApps.defaultApplications = mkIf cfg.setDefault {
|
||||
"text/html" = "zen-beta.desktop";
|
||||
"x-scheme-handler/http" = "zen-beta.desktop";
|
||||
"x-scheme-handler/https" = "zen-beta.desktop";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -54,10 +54,7 @@ in {
|
|||
|
||||
wayland.windowManager.hyprland.settings = with colors; {
|
||||
exec-once = [
|
||||
# "pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\""
|
||||
# "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
# "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"librewolf"
|
||||
"zen"
|
||||
"thunderbird"
|
||||
"vesktop"
|
||||
"spotify"
|
||||
|
|
@ -65,20 +62,31 @@ in {
|
|||
"signal-desktop"
|
||||
];
|
||||
|
||||
env = [
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
];
|
||||
# env = [
|
||||
# "XDG_SESSION_TYPE,wayland"
|
||||
# "XDG_SESSION_DESKTOP,Hyprland"
|
||||
# "XDG_CURRENT_DESKTOP,Hyprland"
|
||||
# ];
|
||||
|
||||
bind =
|
||||
[
|
||||
''${mod},RETURN,exec,${lib.getExe pkgs.kitty}''
|
||||
"${mod},RETURN,exec,${lib.getExe pkgs.alacritty}"
|
||||
|
||||
"${mod},D,exec,rofi -show drun"
|
||||
"${mod},Q,killactive"
|
||||
"${mod},M,exit"
|
||||
"${mod},P,pseudo"
|
||||
"${mod},Z,exec,${pkgs.writeShellScriptBin "zen-launcher" ''
|
||||
ZEN_RESULT=$(${inputs.hyprland.packages.${pkgs.system}.default}/bin/hyprctl clients -j | ${lib.getExe pkgs.jq} '.[] | select(.class | contains("zen"))')
|
||||
|
||||
if [ -z "$ZEN_RESULT" ]; then
|
||||
${lib.getExe inputs.zen-browser.packages.${pkgs.system}.beta} &
|
||||
disown
|
||||
else
|
||||
ZEN_WORKSPACE=$(echo "$ZEN_RESULT" | ${lib.getExe pkgs.jq} '.workspace.id')
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch workspace "$ZEN_WORKSPACE"
|
||||
fi
|
||||
''}/bin/zen-launcher"
|
||||
|
||||
"${mod},J,togglesplit,"
|
||||
|
||||
|
|
@ -116,13 +124,13 @@ in {
|
|||
gaps_out = 8;
|
||||
|
||||
# border thiccness
|
||||
border_size = 2;
|
||||
border_size = 4;
|
||||
|
||||
allow_tearing = true;
|
||||
|
||||
# active border color
|
||||
"col.active_border" = "rgb(${rose})";
|
||||
"col.inactive_border" = "rgb(${muted})";
|
||||
"col.active_border" = "rgb(${base})";
|
||||
"col.inactive_border" = "rgb(${base})";
|
||||
};
|
||||
|
||||
input = {
|
||||
|
|
@ -138,7 +146,7 @@ in {
|
|||
|
||||
decoration = {
|
||||
# fancy corners
|
||||
rounding = 4;
|
||||
rounding = 0;
|
||||
# blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
|
|
|
|||
458
modules/home/wms/niri/default.nix
Normal file
458
modules/home/wms/niri/default.nix
Normal file
|
|
@ -0,0 +1,458 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.wms.niri;
|
||||
|
||||
mkService = recursiveUpdate {
|
||||
Unit.PartOf = ["graphical-session.target"];
|
||||
Unit.After = ["graphical-session.target"];
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
|
||||
actions = config.lib.niri.actions;
|
||||
|
||||
mkColor = color: {inherit color;};
|
||||
mkGradient = from: to: {
|
||||
angle ? 180,
|
||||
relative-to ? "window",
|
||||
in' ? null,
|
||||
}: {
|
||||
gradient = {inherit from to angle relative-to in';};
|
||||
};
|
||||
in {
|
||||
options.wms.niri = with types; {
|
||||
enable = mkBoolOpt false "Enable niri";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.niri = {
|
||||
package = pkgs.niri;
|
||||
|
||||
settings = {
|
||||
# Input device configuration
|
||||
input = {
|
||||
keyboard = {
|
||||
# xkb settings are empty in KDL, using defaults/empty strings
|
||||
xkb = {
|
||||
rules = "";
|
||||
model = "";
|
||||
layout = "";
|
||||
variant = "";
|
||||
options = null; # Or "" if you prefer explicit empty
|
||||
};
|
||||
};
|
||||
|
||||
touchpad = {
|
||||
enable = true; # Not explicitly 'off' in KDL
|
||||
tap = true;
|
||||
dwt = false; # Commented out in KDL
|
||||
dwtp = false; # Commented out in KDL
|
||||
natural-scroll = true;
|
||||
# accel-speed = 0.2; # Commented out
|
||||
# accel-profile = "flat"; # Commented out
|
||||
# scroll-method = "two-finger"; # Commented out
|
||||
disabled-on-external-mouse = true;
|
||||
};
|
||||
|
||||
mouse = {
|
||||
enable = true; # Not explicitly 'off' in KDL
|
||||
natural-scroll = false; # Commented out in KDL
|
||||
accel-speed = 0.2;
|
||||
accel-profile = "flat";
|
||||
# scroll-method = "no-scroll"; # Commented out
|
||||
};
|
||||
|
||||
trackpoint = {
|
||||
enable = true; # Not explicitly 'off' in KDL
|
||||
natural-scroll = false; # Commented out
|
||||
# accel-speed = 0.2; # Commented out
|
||||
# accel-profile = "flat"; # Commented out
|
||||
# scroll-method = "on-button-down"; # Commented out
|
||||
# scroll-button = 273; # Commented out
|
||||
middle-emulation = false; # Commented out
|
||||
};
|
||||
|
||||
warp-mouse-to-focus = true;
|
||||
|
||||
focus-follows-mouse = {
|
||||
enable = false; # Commented out in KDL
|
||||
# max-scroll-amount = "0%"; # Only relevant if enabled
|
||||
};
|
||||
};
|
||||
|
||||
# Output configuration
|
||||
outputs."DP-1" = {
|
||||
enable = true; # Not explicitly 'off'
|
||||
mode = {
|
||||
width = 2560;
|
||||
height = 1440;
|
||||
refresh = 239.972;
|
||||
};
|
||||
scale = 1;
|
||||
transform = {
|
||||
# "normal"
|
||||
rotation = 0;
|
||||
flipped = false;
|
||||
};
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
|
||||
# Environment variables
|
||||
environment = {
|
||||
DISPLAY = ":0";
|
||||
};
|
||||
|
||||
# Layout settings
|
||||
layout = {
|
||||
gaps = 16;
|
||||
center-focused-column = "never";
|
||||
|
||||
preset-column-widths = [
|
||||
{proportion = 0.33333;}
|
||||
{proportion = 0.5;}
|
||||
{proportion = 0.66667;}
|
||||
# { fixed = 1920; } # Example if needed
|
||||
];
|
||||
|
||||
# preset-window-heights = []; # Empty in KDL
|
||||
|
||||
default-column-width = {proportion = 0.5;};
|
||||
# default-column-width = {}; # Alternative from KDL comments
|
||||
|
||||
focus-ring = {
|
||||
enable = true; # Not explicitly 'off'
|
||||
width = 4;
|
||||
active = mkGradient "#89b4fa" "#74c7ec" {angle = 45;};
|
||||
# active = mkColor "#7fc8ff"; # Alternative solid color from KDL
|
||||
inactive = mkGradient "#505050" "#808080" {
|
||||
angle = 45;
|
||||
relative-to = "workspace-view";
|
||||
};
|
||||
# inactive = mkColor "#505050"; # Alternative solid color from KDL
|
||||
};
|
||||
|
||||
border = {
|
||||
enable = true; # Explicitly 'off' in KDL
|
||||
width = 0;
|
||||
active = mkColor "#89b4fa";
|
||||
inactive = mkColor "#1e1e2e";
|
||||
# active-gradient = ... # Commented out in KDL
|
||||
# inactive-gradient = ... # Commented out in KDL
|
||||
};
|
||||
|
||||
struts = {
|
||||
# left = 64; # Commented out
|
||||
# right = 64; # Commented out
|
||||
# top = 64; # Commented out
|
||||
# bottom = 64; # Commented out
|
||||
};
|
||||
};
|
||||
|
||||
# Spawn processes at startup
|
||||
spawn-at-startup = [
|
||||
{command = ["xwayland-satellite"];}
|
||||
{command = ["thunderbird"];}
|
||||
{command = ["zen"];}
|
||||
{
|
||||
command = [
|
||||
"${lib.getExe pkgs.bash} -c '(( $(date +%u) < 6 )) && ${lib.getExe pkgs.slack}'"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
# Prefer server-side decorations
|
||||
prefer-no-csd = true;
|
||||
|
||||
# Screenshot path
|
||||
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
||||
# screenshot-path = null; # Alternative from KDL comments
|
||||
|
||||
# Animation settings
|
||||
animations = {
|
||||
enable = true; # Not explicitly 'off'
|
||||
# slowdown = 3.0; # Commented out
|
||||
# Individual animation settings can be added here if needed
|
||||
};
|
||||
|
||||
debug = {
|
||||
wait-for-frame-completion-in-pipewire = [];
|
||||
};
|
||||
|
||||
# Window rules
|
||||
window-rules = [
|
||||
# Password manager rule (example from KDL comments)
|
||||
{
|
||||
matches = [
|
||||
{app-id = "^org\\.keepassxc\\.KeePassXC$";}
|
||||
{app-id = "^org\\.gnome\\.World\\.Secrets$";}
|
||||
{app-id = "^thunderbird$";}
|
||||
{app-id = "^signal$";}
|
||||
{app-id = "^vesktop$";}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
# block-out-from = "screencast"; # Alternative
|
||||
}
|
||||
# Rounded corners rule (example from KDL comments)
|
||||
{
|
||||
# No matches means apply to all windows
|
||||
geometry-corner-radius = {
|
||||
top-left = 12.0;
|
||||
top-right = 12.0;
|
||||
bottom-left = 12.0;
|
||||
bottom-right = 12.0;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}
|
||||
# Window cast target rule
|
||||
{
|
||||
matches = [{is-window-cast-target = true;}];
|
||||
focus-ring = {
|
||||
active = mkColor "#f38ba8";
|
||||
inactive = mkColor "#7d0d2d";
|
||||
};
|
||||
border = {
|
||||
# Only inactive is specified in KDL rule
|
||||
active = mkColor "#f38ba8";
|
||||
width = 4;
|
||||
inactive = mkColor "#7d0d2d";
|
||||
};
|
||||
shadow = {
|
||||
# Only color is specified in KDL rule
|
||||
color = "#7d0d2d70";
|
||||
};
|
||||
tab-indicator = {
|
||||
active = mkColor "#f38ba8";
|
||||
inactive = mkColor "#7d0d2d";
|
||||
};
|
||||
}
|
||||
|
||||
# fix steam popups holy fuck they're annoying
|
||||
{
|
||||
matches = [
|
||||
{app-id = "^steam$";}
|
||||
];
|
||||
|
||||
excludes = [{title = "^Steam$";}];
|
||||
|
||||
open-floating = true;
|
||||
|
||||
open-focused = false;
|
||||
|
||||
default-floating-position = {
|
||||
relative-to = "bottom-right";
|
||||
x = 16;
|
||||
y = 16;
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# Keybindings
|
||||
binds = {
|
||||
"Mod+Shift+Slash" = {action = actions.show-hotkey-overlay;};
|
||||
|
||||
"Mod+Return" = {action = actions.spawn "alacritty";};
|
||||
"Mod+D" = {action = actions.spawn "fuzzel";};
|
||||
"Super+Alt+L" = {action = actions.spawn "swaylock";};
|
||||
# "Mod+T" = { action = actions.spawn "bash" "-c" "notify-send hello && exec alacritty"; };
|
||||
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action = actions.spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
allow-when-locked = true;
|
||||
action =
|
||||
actions.spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
|
||||
};
|
||||
|
||||
"Mod+Q" = {action = actions.close-window;};
|
||||
|
||||
"Mod+Left" = {action = actions.focus-column-left;};
|
||||
"Mod+Down" = {action = actions.focus-window-down;};
|
||||
"Mod+Up" = {action = actions.focus-window-up;};
|
||||
"Mod+Right" = {action = actions.focus-column-right;};
|
||||
"Mod+H" = {action = actions.focus-column-left;};
|
||||
"Mod+J" = {action = actions.focus-window-down;};
|
||||
"Mod+K" = {action = actions.focus-window-up;};
|
||||
"Mod+L" = {action = actions.focus-column-right;};
|
||||
|
||||
"Mod+Ctrl+Left" = {action = actions.move-column-left;};
|
||||
"Mod+Ctrl+Down" = {action = actions.move-window-down;};
|
||||
"Mod+Ctrl+Up" = {action = actions.move-window-up;};
|
||||
"Mod+Ctrl+Right" = {action = actions.move-column-right;};
|
||||
"Mod+Ctrl+H" = {action = actions.move-column-left;};
|
||||
"Mod+Ctrl+J" = {action = actions.move-window-down;};
|
||||
"Mod+Ctrl+K" = {action = actions.move-window-up;};
|
||||
"Mod+Ctrl+L" = {action = actions.move-column-right;};
|
||||
|
||||
# Alternative commands (commented out in KDL)
|
||||
# "Mod+J" = { action = actions.focus-window-or-workspace-down; };
|
||||
# "Mod+K" = { action = actions.focus-window-or-workspace-up; };
|
||||
# "Mod+Ctrl+J" = { action = actions.move-window-down-or-to-workspace-down; };
|
||||
# "Mod+Ctrl+K" = { action = actions.move-window-up-or-to-workspace-up; };
|
||||
|
||||
"Mod+Home" = {action = actions.focus-column-first;};
|
||||
"Mod+End" = {action = actions.focus-column-last;};
|
||||
"Mod+Ctrl+Home" = {action = actions.move-column-to-first;};
|
||||
"Mod+Ctrl+End" = {action = actions.move-column-to-last;};
|
||||
|
||||
"Mod+Shift+Left" = {action = actions.focus-monitor-left;};
|
||||
"Mod+Shift+Down" = {action = actions.focus-monitor-down;};
|
||||
"Mod+Shift+Up" = {action = actions.focus-monitor-up;};
|
||||
"Mod+Shift+Right" = {action = actions.focus-monitor-right;};
|
||||
"Mod+Shift+H" = {action = actions.focus-monitor-left;};
|
||||
"Mod+Shift+J" = {action = actions.focus-workspace-down;};
|
||||
"Mod+Shift+K" = {action = actions.focus-workspace-up;};
|
||||
"Mod+Shift+L" = {action = actions.focus-monitor-right;};
|
||||
|
||||
"Mod+Shift+Ctrl+Left" = {action = actions.move-column-to-monitor-left;};
|
||||
"Mod+Shift+Ctrl+Down" = {action = actions.move-column-to-monitor-down;};
|
||||
"Mod+Shift+Ctrl+Up" = {action = actions.move-column-to-monitor-up;};
|
||||
"Mod+Shift+Ctrl+Right" = {action = actions.move-column-to-monitor-right;};
|
||||
"Mod+Shift+Ctrl+H" = {action = actions.move-column-to-monitor-left;};
|
||||
"Mod+Shift+Ctrl+J" = {action = actions.move-column-to-monitor-down;};
|
||||
"Mod+Shift+Ctrl+K" = {action = actions.move-column-to-monitor-up;};
|
||||
"Mod+Shift+Ctrl+L" = {action = actions.move-column-to-monitor-right;};
|
||||
|
||||
# Alternative move commands (commented out in KDL)
|
||||
# "Mod+Shift+Ctrl+Left" = { action = actions.move-window-to-monitor-left; };
|
||||
# "Mod+Shift+Ctrl+Left" = { action = actions.move-workspace-to-monitor-left; };
|
||||
|
||||
"Mod+Page_Down" = {action = actions.focus-workspace-down;};
|
||||
"Mod+Page_Up" = {action = actions.focus-workspace-up;};
|
||||
"Mod+U" = {action = actions.focus-workspace-down;};
|
||||
"Mod+I" = {action = actions.focus-workspace-up;};
|
||||
"Mod+Ctrl+Page_Down" = {action = actions.move-column-to-workspace-down;};
|
||||
"Mod+Ctrl+Page_Up" = {action = actions.move-column-to-workspace-up;};
|
||||
"Mod+Ctrl+U" = {action = actions.move-column-to-workspace-down;};
|
||||
"Mod+Ctrl+I" = {action = actions.move-column-to-workspace-up;};
|
||||
|
||||
# Alternative move commands (commented out in KDL)
|
||||
# "Mod+Ctrl+Page_Down" = { action = actions.move-window-to-workspace-down; };
|
||||
|
||||
"Mod+Shift+Page_Down" = {action = actions.move-workspace-down;};
|
||||
"Mod+Shift+Page_Up" = {action = actions.move-workspace-up;};
|
||||
"Mod+Shift+U" = {action = actions.move-workspace-down;};
|
||||
"Mod+Shift+I" = {action = actions.move-workspace-up;};
|
||||
|
||||
"Mod+WheelScrollDown" = {
|
||||
cooldown-ms = 150;
|
||||
action = actions.focus-workspace-down;
|
||||
};
|
||||
"Mod+WheelScrollUp" = {
|
||||
cooldown-ms = 150;
|
||||
action = actions.focus-workspace-up;
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollDown" = {
|
||||
cooldown-ms = 150;
|
||||
action = actions.move-column-to-workspace-down;
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollUp" = {
|
||||
cooldown-ms = 150;
|
||||
action = actions.move-column-to-workspace-up;
|
||||
};
|
||||
|
||||
"Mod+WheelScrollRight" = {action = actions.focus-column-right;};
|
||||
"Mod+WheelScrollLeft" = {action = actions.focus-column-left;};
|
||||
"Mod+Ctrl+WheelScrollRight" = {action = actions.move-column-right;};
|
||||
"Mod+Ctrl+WheelScrollLeft" = {action = actions.move-column-left;};
|
||||
|
||||
"Mod+Shift+WheelScrollDown" = {action = actions.focus-column-right;};
|
||||
"Mod+Shift+WheelScrollUp" = {action = actions.focus-column-left;};
|
||||
"Mod+Ctrl+Shift+WheelScrollDown" = {action = actions.move-column-right;};
|
||||
"Mod+Ctrl+Shift+WheelScrollUp" = {action = actions.move-column-left;};
|
||||
|
||||
# Touchpad scroll binds (commented out in KDL)
|
||||
# "Mod+TouchpadScrollDown" = { action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; };
|
||||
# "Mod+TouchpadScrollUp" = { action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; };
|
||||
|
||||
"Mod+1" = {action = actions.focus-workspace 1;};
|
||||
"Mod+2" = {action = actions.focus-workspace 2;};
|
||||
"Mod+3" = {action = actions.focus-workspace 3;};
|
||||
"Mod+4" = {action = actions.focus-workspace 4;};
|
||||
"Mod+5" = {action = actions.focus-workspace 5;};
|
||||
"Mod+6" = {action = actions.focus-workspace 6;};
|
||||
"Mod+7" = {action = actions.focus-workspace 7;};
|
||||
"Mod+8" = {action = actions.focus-workspace 8;};
|
||||
"Mod+9" = {action = actions.focus-workspace 9;};
|
||||
"Mod+Shift+1" = {action = actions.move-column-to-workspace 1;};
|
||||
"Mod+Shift+2" = {action = actions.move-column-to-workspace 2;};
|
||||
"Mod+Shift+3" = {action = actions.move-column-to-workspace 3;};
|
||||
"Mod+Shift+4" = {action = actions.move-column-to-workspace 4;};
|
||||
"Mod+Shift+5" = {action = actions.move-column-to-workspace 5;};
|
||||
"Mod+Shift+6" = {action = actions.move-column-to-workspace 6;};
|
||||
"Mod+Shift+7" = {action = actions.move-column-to-workspace 7;};
|
||||
"Mod+Shift+8" = {action = actions.move-column-to-workspace 8;};
|
||||
"Mod+Shift+9" = {action = actions.move-column-to-workspace 9;};
|
||||
|
||||
# Alternative move commands (commented out in KDL)
|
||||
# "Mod+Ctrl+1" = { action = actions.move-window-to-workspace 1; };
|
||||
|
||||
# "Mod+Tab" = { action = actions.focus-workspace-previous; }; # Commented out
|
||||
|
||||
"Mod+Comma" = {action = actions.consume-window-into-column;};
|
||||
"Mod+Period" = {action = actions.expel-window-from-column;};
|
||||
|
||||
"Mod+BracketLeft" = {action = actions.consume-or-expel-window-left;};
|
||||
"Mod+BracketRight" = {action = actions.consume-or-expel-window-right;};
|
||||
|
||||
"Mod+R" = {action = actions.switch-preset-column-width;};
|
||||
"Mod+Shift+R" = {action = actions.switch-preset-window-height;};
|
||||
"Mod+Ctrl+R" = {action = actions.reset-window-height;};
|
||||
"Mod+F" = {action = actions.maximize-column;};
|
||||
"Mod+Shift+F" = {action = actions.fullscreen-window;};
|
||||
"Mod+C" = {action = actions.center-column;};
|
||||
"Mod+Ctrl+F" = {action = actions.expand-column-to-available-width;};
|
||||
|
||||
"Mod+V" = {action = actions.toggle-window-floating;};
|
||||
|
||||
"Mod+Minus" = {action = actions.set-column-width "-10%";};
|
||||
"Mod+Equal" = {action = actions.set-column-width "+10%";};
|
||||
|
||||
"Mod+Shift+Minus" = {action = actions.set-window-height "-10%";};
|
||||
"Mod+Shift+Equal" = {action = actions.set-window-height "+10%";};
|
||||
|
||||
# Layout switching (commented out in KDL)
|
||||
# "Mod+Space" = { action = actions.switch-layout "next"; };
|
||||
# "Mod+Shift+Space" = { action = actions.switch-layout "prev"; };
|
||||
|
||||
"Print" = {action = actions.screenshot {};}; # Empty attrset for default args
|
||||
# "Ctrl+Print" = {action = actions.screenshot-screen {};}; # Empty attrset for default args
|
||||
# "Alt+Print" = {action = actions.screenshot-window {};}; # Empty attrset for default args
|
||||
|
||||
"Mod+Shift+E" = {action = actions.quit {};}; # Default: no skip-confirmation
|
||||
"Ctrl+Alt+Delete" = {action = actions.quit {};};
|
||||
|
||||
"Mod+Shift+P" = {action = actions.power-off-monitors;};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services = {
|
||||
swaybg = mkService {
|
||||
Unit.Description = "Wallpaper Chooser";
|
||||
Service = {
|
||||
ExecStart = "${getExe pkgs.swaybg} -i ${wallpaper}";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -16,8 +16,6 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
xdg.configFile."vpn/work.ovpn" = {
|
||||
text = ''
|
||||
conifg /home/zoey/cvpn-client.ovpn
|
||||
|
||||
up ${pkgs.update-resolv-conf}/libexec/openvpn/update-resolv-conf
|
||||
down ${pkgs.update-resolv-conf}/libexec/openvpn/update-resolv-conf
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -22,100 +22,6 @@ in {
|
|||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
jack.enable = true;
|
||||
|
||||
# extraConfig.pipewire.adjust-sample-rate = {
|
||||
# "context.properties" = {
|
||||
# "default.clock.rate" = 41000;
|
||||
# "default.clock.allowed-rates" = [44100];
|
||||
# };
|
||||
# };
|
||||
|
||||
# wireplumber.extraConfig = {
|
||||
# "custom" = {
|
||||
# "monitor.alsa.rules" = [
|
||||
# {
|
||||
# matches = [
|
||||
# {
|
||||
# "node.name" = "alsa_output.usb-Focusrite_Scarlett_Solo_USB_Y76P5M4160A866-00.HiFi__Line1__sink";
|
||||
# }
|
||||
# ];
|
||||
# actions = {
|
||||
# update-props = {
|
||||
# "audio.format" = "S32LE";
|
||||
# "audio.rate" = 192000;
|
||||
# "api.alsa.period-size" = 1024;
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
# {
|
||||
# matches = [
|
||||
# {
|
||||
# "node.name" = "alsa_input.pci-0000_0d_00.4.analog-stereo";
|
||||
# }
|
||||
# ];
|
||||
# actions = {
|
||||
# update-props = {
|
||||
# "audio.format" = "S32LE";
|
||||
# "audio.rate" = 192000;
|
||||
# "api.alsa.period-size" = 1024;
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
# {
|
||||
# matches = [
|
||||
# {
|
||||
# "node.name" = "~alsa_output.*";
|
||||
# }
|
||||
# ];
|
||||
# actions = {
|
||||
# update-props = {
|
||||
# "api.alsa.period-size" = 1024;
|
||||
# "api.alsa.headroom" = 8192;
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
#
|
||||
# "99-connect-tt" = {
|
||||
# "wireplumber.components" = [
|
||||
# {
|
||||
# name = "auto-connect-tt.lua";
|
||||
# type = "script/lua";
|
||||
# provides = "custom.connect-tt";
|
||||
# }
|
||||
# ];
|
||||
#
|
||||
# "wireplumber.profiles" = {
|
||||
# main = {
|
||||
# "custom.connect-tt" = "required";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# wireplumber.extraScripts = {
|
||||
# "auto-connect-tt.lua" = builtins.readFile ./auto-connect-tt.lua;
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# # PulseAudio compatibility layer configuration for 44.1kHz
|
||||
# services.pipewire.extraConfig.pipewire-pulse."92-steam-config" = {
|
||||
# context.modules = [
|
||||
# {
|
||||
# name = "libpipewire-module-protocol-pulse";
|
||||
# args = {
|
||||
# pulse.min.req = "32/44100";
|
||||
# pulse.default.req = "32/44100";
|
||||
# pulse.min.quantum = "32/44100";
|
||||
# pulse.max.quantum = "8192/44100";
|
||||
# };
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
#
|
||||
# environment.sessionVariables = {
|
||||
# PIPEWIRE_LATENCY = "1024/44100";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,6 +141,8 @@ in {
|
|||
# Stop display manager
|
||||
systemctl stop display-manager.service
|
||||
killall gdm-wayland-session
|
||||
killall niri
|
||||
killall niri-session
|
||||
|
||||
# Unbind VTconsoles
|
||||
echo 0 > /sys/class/vtconsole/vtcon0/bind
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ in {
|
|||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = true;
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
|
|
|
|||
|
|
@ -36,14 +36,19 @@ in {
|
|||
services.xserver.displayManager.gdm.enable = true;
|
||||
|
||||
programs.uwsm = {
|
||||
enable = true;
|
||||
# waylandCompositors = {
|
||||
# "mwc" = {
|
||||
# prettyName = "MWC";
|
||||
# binPath = "/run/current-system/sw/bin/mwc";
|
||||
# comment = "previously owl";
|
||||
# };
|
||||
# };
|
||||
enable = false;
|
||||
waylandCompositors = {
|
||||
# "mwc" = {
|
||||
# prettyName = "MWC";
|
||||
# binPath = "/run/current-system/sw/bin/mwc";
|
||||
# comment = "previously owl";
|
||||
# };
|
||||
# niri = {
|
||||
# prettyName = "niri";
|
||||
# binPath = "/run/current-system/sw/bin/niri";
|
||||
# comment = "niri";
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
# environment.systemPackages = [
|
||||
|
|
@ -52,13 +57,14 @@ in {
|
|||
|
||||
programs.hyprland = {
|
||||
withUWSM = true;
|
||||
enable = true;
|
||||
enable = false;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
|
||||
programs.niri.enable = false;
|
||||
programs.niri.enable = true;
|
||||
programs.niri.package = pkgs.niri-unstable;
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
|
|
@ -78,26 +84,18 @@ in {
|
|||
WLR_BACKEND = "wayland";
|
||||
WLR_RENDERER = "wayland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
SDL_VIDEODRIVER = "wayland,x11";
|
||||
XDG_CACHE_HOME = "/home/zoey/.cache";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
|
||||
};
|
||||
loginShellInit = ''
|
||||
dbus-update-activation-environment --systemd DISPLAY
|
||||
eval $(gnome-keyring-daemon --start --components=ssh,secrets)
|
||||
eval $(ssh-agent)
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = false;
|
||||
config.common.default = "*";
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
# pkgs.xwaylandvideobridge
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ in {
|
|||
};
|
||||
zach-pw.file = ./sec/zach-pw.age;
|
||||
emily-pw.file = ./sec/emily-piccat.age;
|
||||
|
||||
gitlab-email-pw-hashed.file = ./sec/gitlab-email-pw-hashed.age;
|
||||
};
|
||||
|
||||
mailserver = {
|
||||
|
|
@ -51,6 +53,10 @@ in {
|
|||
hashedPasswordFile = sec.emily-pw.path;
|
||||
aliases = ["emily@pictureofcat.com"];
|
||||
};
|
||||
"gitlab@zoeys.cloud" = {
|
||||
hashedPasswordFile = sec.gitlab-email-pw-hashed.path;
|
||||
aliases = ["noreply@zoeys.cloud"];
|
||||
};
|
||||
};
|
||||
|
||||
certificateScheme = "acme-nginx";
|
||||
|
|
|
|||
BIN
modules/nixos/services/mail/sec/gitlab-email-pw-hashed.age
Normal file
BIN
modules/nixos/services/mail/sec/gitlab-email-pw-hashed.age
Normal file
Binary file not shown.
|
|
@ -48,6 +48,11 @@ in {
|
|||
gitlab_runner = {
|
||||
file = ./sec/gitlab_runner.age;
|
||||
};
|
||||
gitlab_email_pw = {
|
||||
file = ./sec/gitlab-email-pw.age;
|
||||
owner = user;
|
||||
group = group;
|
||||
};
|
||||
};
|
||||
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = true; # 1
|
||||
|
|
@ -97,6 +102,15 @@ in {
|
|||
port = 443;
|
||||
https = true;
|
||||
host = cfg.domain;
|
||||
|
||||
smtp = {
|
||||
enable = true;
|
||||
address = "mail.zoeys.cloud";
|
||||
username = "gitlab@zoeys.cloud";
|
||||
passwordFile = sec.gitlab_email_pw.path;
|
||||
port = 465;
|
||||
};
|
||||
|
||||
secrets = {
|
||||
secretFile = sec.gitlab_sec.path;
|
||||
otpFile = sec.gitlab_otp.path;
|
||||
|
|
|
|||
8
modules/nixos/sites/gitlab/sec/gitlab-email-pw.age
Normal file
8
modules/nixos/sites/gitlab/sec/gitlab-email-pw.age
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 CtmR6w wfPgH83/+qjITFELir/Q/zjH+wjlgrU+HNC5eOsFhg8
|
||||
orHZwCQOmlK9TFHOEOb/K2FszXoMbQfwHdYAbKIOnR0
|
||||
-> ssh-ed25519 RMNffg E7mah8eqt9cDw2SKQTah25M4j/iIWhPHtrtmJpSPDgo
|
||||
eeoo3cfoiVh8xF9TVy9cKUlAw6NBhMg1iFs8JlpquPA
|
||||
--- NB2RNduULAMPoBmfRByWGL1hdK5/b5kDe4vnzdW1Hb0
|
||||
±¶Hú"y£“«=Ùúñ,”î«ÐµÎè5|›V0âý’´1›´²qA³sNIÜÉ—R£qè¤NY!§Œl×®bÚ\LG·®e{En'™£ó<C2A3>Í”ØFh<B+sŽ¥ÌŽ¯š£‚v»ñ›c©Œèeˆ¶Ø4Û+ K÷…].<2E>¦9éü<1D>k\ý(ž’ÿÈ?¯çPÎk~Yy¤
|
||||
¥ˆ•!€‹w®ùÉ
|
||||
|
|
@ -42,13 +42,31 @@ in {
|
|||
# noCvSs = true
|
||||
# exportGlyphNames = true
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.variants]
|
||||
# inherits = "ss08"
|
||||
# [buildPlans.IosevkaCustom.variants]
|
||||
# inherits = "ss05"
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.variants.design]
|
||||
# l = "hooky"
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.widths.Normal]
|
||||
# shape = 500
|
||||
# menu = 5
|
||||
# css = "normal"
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.widths.Extended]
|
||||
# shape = 600
|
||||
# menu = 7
|
||||
# css = "expanded"
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.widths.SemiCondensed]
|
||||
# shape = 456
|
||||
# menu = 4
|
||||
# css = "semi-condensed"
|
||||
#
|
||||
# [buildPlans.IosevkaCustom.widths.SemiExtended]
|
||||
# shape = 548
|
||||
# menu = 6
|
||||
# css = "semi-expanded"
|
||||
# '';
|
||||
# })
|
||||
noto-fonts
|
||||
|
|
@ -58,6 +76,8 @@ in {
|
|||
nerd-fonts.iosevka
|
||||
nerd-fonts.zed-mono
|
||||
adwaita-fonts
|
||||
cozette
|
||||
scientifica
|
||||
# (nerdfonts.override {fonts = ["ZedMono" "Iosevka"];})
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue