finish current refactor
This commit is contained in:
parent
258c9682cc
commit
ae7ab152a4
11 changed files with 572 additions and 560 deletions
|
|
@ -77,6 +77,7 @@
|
|||
}
|
||||
./system/all.nix
|
||||
./system/browsers/firefox.nix
|
||||
./system/shell/fish.nix
|
||||
./system/hosts/${hostname}/default.nix
|
||||
./hardware/${hostname}.nix
|
||||
catppuccin.nixosModules.catppuccin
|
||||
|
|
@ -105,7 +106,7 @@
|
|||
home.homeDirectory = "/home/${user}";
|
||||
modules = [
|
||||
./home/all.nix
|
||||
./home/${hostname}.nix
|
||||
./home/hosts/${hostname}.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
home-manager.homeModules.home-manager
|
||||
plasma-manager.homeModules.plasma-manager
|
||||
|
|
|
|||
544
home/all.nix
544
home/all.nix
|
|
@ -58,550 +58,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
xdg.configFile."rclone/synology.conf".text = ''
|
||||
[synology]
|
||||
type = sftp
|
||||
user = sckova
|
||||
host = nas.taila30609.ts.net
|
||||
key_file = ~/.ssh/key
|
||||
'';
|
||||
|
||||
systemd.user.services.synology-mount = {
|
||||
Unit = {
|
||||
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
||||
After = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "notify";
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p %h/Synology";
|
||||
ExecStart = "${pkgs.rclone}/bin/rclone --config=%h/.config/rclone/synology.conf --vfs-cache-mode full --ignore-checksum mount \"synology:\" \"%h/Synology\"";
|
||||
ExecStop = "/run/wrappers/bin/fusermount -u %h/Synology/%i";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.input-leap = {
|
||||
Unit = {
|
||||
Description = "Autostart Input Leap";
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
PassEnvironment = "DISPLAY";
|
||||
ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
|
||||
sleep 5
|
||||
${pkgs.input-leap}/bin/input-leap
|
||||
''}";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
programs.konsole.enable = false;
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
font = {
|
||||
name = "Noto Sans Mono";
|
||||
size = 10;
|
||||
};
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
extraConfig = "\nwheel_scroll_multiplier 5.0";
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
};
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
waylandSupport = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
opts = {
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
number = true;
|
||||
};
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
flavour = "mocha";
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
# --- Normal mode mappings ---
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
|
||||
# --- Visual mode mappings ---
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
nvim-autopairs = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
cmp = {
|
||||
autoEnableSources = true;
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
copilot-lua = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
settings = {
|
||||
formatters_by_ft = {
|
||||
lua = [ "stylua" ];
|
||||
python = [
|
||||
"isort"
|
||||
"black"
|
||||
];
|
||||
nix = [ "nixfmt" ];
|
||||
javascript = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
css = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
json = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
jsonc = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
};
|
||||
|
||||
# Default formatting options
|
||||
default_format_opts = {
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
|
||||
# Format-on-save behavior
|
||||
format_on_save = {
|
||||
timeout_ms = 500;
|
||||
};
|
||||
|
||||
# Custom formatter settings
|
||||
formatters = {
|
||||
shfmt = {
|
||||
append_args = [
|
||||
"-i"
|
||||
"2"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fzf-lua = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
kitty-scrollback = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
lualine = {
|
||||
enable = true;
|
||||
settings = {
|
||||
options = {
|
||||
theme = {
|
||||
normal = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#cba6f7";
|
||||
};
|
||||
b = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#313244";
|
||||
};
|
||||
c = {
|
||||
fg = "#cdd6f4";
|
||||
};
|
||||
};
|
||||
insert = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#89b4fa";
|
||||
};
|
||||
};
|
||||
visual = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#94e2d5";
|
||||
};
|
||||
};
|
||||
replace = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#f38ba8";
|
||||
};
|
||||
};
|
||||
inactive = {
|
||||
a = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#1e1e2e";
|
||||
};
|
||||
b = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#1e1e2e";
|
||||
};
|
||||
c = {
|
||||
fg = "#cdd6f4";
|
||||
};
|
||||
};
|
||||
};
|
||||
component_separators = "";
|
||||
section_separators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
};
|
||||
|
||||
sections = {
|
||||
lualine_a = [
|
||||
{
|
||||
__unkeyed-1 = "mode";
|
||||
separator = {
|
||||
left = " ";
|
||||
};
|
||||
right_padding = 2;
|
||||
}
|
||||
];
|
||||
lualine_b = [
|
||||
"filename"
|
||||
"branch"
|
||||
];
|
||||
lualine_c = [ "%=" ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [
|
||||
"filetype"
|
||||
"progress"
|
||||
];
|
||||
lualine_z = [
|
||||
{
|
||||
__unkeyed-1 = "location";
|
||||
separator = {
|
||||
right = " ";
|
||||
};
|
||||
left_padding = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
inactive_sections = {
|
||||
lualine_a = [ "filename" ];
|
||||
lualine_b = [ ];
|
||||
lualine_c = [ ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [ ];
|
||||
lualine_z = [ "location" ];
|
||||
};
|
||||
tabline = { };
|
||||
extensions = [ ];
|
||||
};
|
||||
# autoLoad = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.ghostwriter = {
|
||||
enable = true;
|
||||
font = {
|
||||
family = "Noto Sans";
|
||||
pointSize = 12;
|
||||
};
|
||||
};
|
||||
|
||||
programs.kate = {
|
||||
enable = true;
|
||||
editor = {
|
||||
font = {
|
||||
family = "Noto Sans Mono";
|
||||
pointSize = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
overrideConfig = true;
|
||||
|
||||
session = {
|
||||
sessionRestore.restoreOpenApplicationsOnLogin = "startWithEmptySession";
|
||||
};
|
||||
|
||||
workspace = {
|
||||
iconTheme = "Colloid-Dark";
|
||||
windowDecorations = {
|
||||
library = "org.kde.breeze";
|
||||
theme = "Breeze";
|
||||
};
|
||||
cursor.size = 24;
|
||||
wallpaperPictureOfTheDay.provider = "bing";
|
||||
wallpaperFillMode = "preserveAspectCrop";
|
||||
};
|
||||
|
||||
kscreenlocker = {
|
||||
appearance.wallpaperPictureOfTheDay.provider = "bing";
|
||||
};
|
||||
|
||||
window-rules = [
|
||||
{
|
||||
description = "Global Changes";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "";
|
||||
type = "substring";
|
||||
};
|
||||
window-types = [ "normal" ];
|
||||
};
|
||||
apply = {
|
||||
opacityactive = {
|
||||
value = 100;
|
||||
apply = "force";
|
||||
};
|
||||
opacityinactive = {
|
||||
value = 100;
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
description = "OpenMW";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "openmw";
|
||||
type = "substring";
|
||||
};
|
||||
window-types = [ "normal" ];
|
||||
};
|
||||
apply = {
|
||||
noborder = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
maximizehoriz = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
maximizevert = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
desktops = {
|
||||
value = "Desktop_4";
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
description = "Firefox Picture-in-Picture";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "";
|
||||
type = "substring";
|
||||
};
|
||||
title = {
|
||||
value = "Picture-in-Picture";
|
||||
type = "exact";
|
||||
};
|
||||
};
|
||||
apply = {
|
||||
above = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
desktops = {
|
||||
value = "\\0";
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
kwin = {
|
||||
titlebarButtons = {
|
||||
left = [
|
||||
"on-all-desktops"
|
||||
"keep-below-windows"
|
||||
"keep-above-windows"
|
||||
];
|
||||
right = [
|
||||
"minimize"
|
||||
"maximize"
|
||||
"close"
|
||||
];
|
||||
};
|
||||
|
||||
nightLight = {
|
||||
enable = true;
|
||||
mode = "location";
|
||||
# Atlanta
|
||||
location.latitude = "33.7501";
|
||||
location.longitude = "-84.3885";
|
||||
temperature.day = 6000;
|
||||
temperature.night = 3500;
|
||||
transitionTime = 60;
|
||||
};
|
||||
virtualDesktops = {
|
||||
names = [
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
];
|
||||
rows = 1;
|
||||
};
|
||||
effects = {
|
||||
desktopSwitching = {
|
||||
animation = "slide";
|
||||
navigationWrapping = true;
|
||||
};
|
||||
dimAdminMode.enable = true;
|
||||
# dimInactive.enable = true;
|
||||
minimization = {
|
||||
animation = "magiclamp";
|
||||
duration = 500;
|
||||
};
|
||||
shakeCursor.enable = true;
|
||||
snapHelper.enable = true;
|
||||
# translucency.enable = true;
|
||||
# windowOpenClose.animation = "fade";
|
||||
blur = {
|
||||
enable = false;
|
||||
noiseStrength = 8;
|
||||
strength = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configFile = {
|
||||
# kdeglobals.KDE.AutomaticLookAndFeel = true;
|
||||
kwinrc.Round-Corners.ActiveOutlinePalette = 2;
|
||||
kwinrc.Round-Corners.ActiveOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.ActiveOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlinePalette = 2;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.InactiveOutlinePalette = 3;
|
||||
kwinrc.Round-Corners.InactiveOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.InactiveOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlinePalette = 3;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlineUsePalette = true;
|
||||
plasmaparc.General.AudioFeedback = false;
|
||||
kdeglobals.Sounds.Enable = false;
|
||||
kwinrc.Plugins.forceblurEnabled = true;
|
||||
kwinrc.Effect-blurplus.BlurDecorations = true;
|
||||
kwinrc.Effect-blurplus.BlurMatching = false;
|
||||
kwinrc.Effect-blurplus.BlurMenus = true;
|
||||
kwinrc.Effect-blurplus.BlurNonMatching = true;
|
||||
kwinrc.Effect-blurplus.TopCornerRadius = 10;
|
||||
kwinrc.Effect-blurplus.BottomCornerRadius = 10;
|
||||
kwinrc.Effect-blurplus.NoiseStrength = 6;
|
||||
kwinrc.Effect-blurplus.RefractionStrength = 10;
|
||||
};
|
||||
|
||||
panels = [
|
||||
# Small dock at the bottom right
|
||||
{
|
||||
location = "bottom";
|
||||
height = 40;
|
||||
hiding = "dodgewindows";
|
||||
lengthMode = "fit";
|
||||
floating = true;
|
||||
alignment = "left";
|
||||
widgets = [
|
||||
{
|
||||
kickoff = {
|
||||
sortAlphabetically = true;
|
||||
# icon = "nix-snowflake-white";
|
||||
};
|
||||
}
|
||||
{
|
||||
iconTasks = {
|
||||
launchers = [
|
||||
"applications:firefox.desktop"
|
||||
"applications:org.kde.dolphin.desktop"
|
||||
"applications:vesktop.desktop"
|
||||
"applications:kitty.desktop"
|
||||
"applications:org.strawberrymusicplayer.strawberry.desktop"
|
||||
"applications:writer.desktop"
|
||||
];
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.pager"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# This value determines the Home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new Home Manager release introduces backwards
|
||||
|
|
|
|||
19
home/kde/other.nix
Normal file
19
home/kde/other.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
programs.ghostwriter = {
|
||||
enable = true;
|
||||
font = {
|
||||
family = "Noto Sans";
|
||||
pointSize = 12;
|
||||
};
|
||||
};
|
||||
|
||||
programs.kate = {
|
||||
enable = true;
|
||||
editor = {
|
||||
font = {
|
||||
family = "Noto Sans Mono";
|
||||
pointSize = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
215
home/kde/plasma.nix
Normal file
215
home/kde/plasma.nix
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
overrideConfig = true;
|
||||
|
||||
session = {
|
||||
sessionRestore.restoreOpenApplicationsOnLogin = "startWithEmptySession";
|
||||
};
|
||||
|
||||
workspace = {
|
||||
iconTheme = "Colloid-Dark";
|
||||
windowDecorations = {
|
||||
library = "org.kde.breeze";
|
||||
theme = "Breeze";
|
||||
};
|
||||
cursor.size = 24;
|
||||
wallpaperPictureOfTheDay.provider = "bing";
|
||||
wallpaperFillMode = "preserveAspectCrop";
|
||||
};
|
||||
|
||||
kscreenlocker = {
|
||||
appearance.wallpaperPictureOfTheDay.provider = "bing";
|
||||
};
|
||||
|
||||
window-rules = [
|
||||
{
|
||||
description = "Global Changes";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "";
|
||||
type = "substring";
|
||||
};
|
||||
window-types = [ "normal" ];
|
||||
};
|
||||
apply = {
|
||||
opacityactive = {
|
||||
value = 100;
|
||||
apply = "force";
|
||||
};
|
||||
opacityinactive = {
|
||||
value = 100;
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
description = "OpenMW";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "openmw";
|
||||
type = "substring";
|
||||
};
|
||||
window-types = [ "normal" ];
|
||||
};
|
||||
apply = {
|
||||
noborder = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
maximizehoriz = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
maximizevert = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
desktops = {
|
||||
value = "Desktop_4";
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
description = "Firefox Picture-in-Picture";
|
||||
match = {
|
||||
window-class = {
|
||||
value = "";
|
||||
type = "substring";
|
||||
};
|
||||
title = {
|
||||
value = "Picture-in-Picture";
|
||||
type = "exact";
|
||||
};
|
||||
};
|
||||
apply = {
|
||||
above = {
|
||||
value = true;
|
||||
apply = "force";
|
||||
};
|
||||
desktops = {
|
||||
value = "\\0";
|
||||
apply = "force";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
kwin = {
|
||||
titlebarButtons = {
|
||||
left = [
|
||||
"on-all-desktops"
|
||||
"keep-below-windows"
|
||||
"keep-above-windows"
|
||||
];
|
||||
right = [
|
||||
"minimize"
|
||||
"maximize"
|
||||
"close"
|
||||
];
|
||||
};
|
||||
|
||||
nightLight = {
|
||||
enable = true;
|
||||
mode = "location";
|
||||
# Atlanta
|
||||
location.latitude = "33.7501";
|
||||
location.longitude = "-84.3885";
|
||||
temperature.day = 6000;
|
||||
temperature.night = 3500;
|
||||
transitionTime = 60;
|
||||
};
|
||||
virtualDesktops = {
|
||||
names = [
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
];
|
||||
rows = 1;
|
||||
};
|
||||
effects = {
|
||||
desktopSwitching = {
|
||||
animation = "slide";
|
||||
navigationWrapping = true;
|
||||
};
|
||||
dimAdminMode.enable = true;
|
||||
# dimInactive.enable = true;
|
||||
minimization = {
|
||||
animation = "magiclamp";
|
||||
duration = 500;
|
||||
};
|
||||
shakeCursor.enable = true;
|
||||
snapHelper.enable = true;
|
||||
# translucency.enable = true;
|
||||
# windowOpenClose.animation = "fade";
|
||||
blur = {
|
||||
enable = false;
|
||||
noiseStrength = 8;
|
||||
strength = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configFile = {
|
||||
# kdeglobals.KDE.AutomaticLookAndFeel = true;
|
||||
kwinrc.Round-Corners.ActiveOutlinePalette = 2;
|
||||
kwinrc.Round-Corners.ActiveOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.ActiveOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlinePalette = 2;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.ActiveSecondOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.InactiveOutlinePalette = 3;
|
||||
kwinrc.Round-Corners.InactiveOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.InactiveOutlineUsePalette = true;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlinePalette = 3;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlineUseCustom = false;
|
||||
kwinrc.Round-Corners.InactiveSecondOutlineUsePalette = true;
|
||||
plasmaparc.General.AudioFeedback = false;
|
||||
kdeglobals.Sounds.Enable = false;
|
||||
kwinrc.Plugins.forceblurEnabled = true;
|
||||
kwinrc.Effect-blurplus.BlurDecorations = true;
|
||||
kwinrc.Effect-blurplus.BlurMatching = false;
|
||||
kwinrc.Effect-blurplus.BlurMenus = true;
|
||||
kwinrc.Effect-blurplus.BlurNonMatching = true;
|
||||
kwinrc.Effect-blurplus.TopCornerRadius = 10;
|
||||
kwinrc.Effect-blurplus.BottomCornerRadius = 10;
|
||||
kwinrc.Effect-blurplus.NoiseStrength = 6;
|
||||
kwinrc.Effect-blurplus.RefractionStrength = 10;
|
||||
};
|
||||
|
||||
panels = [
|
||||
# Small dock at the bottom right
|
||||
{
|
||||
location = "bottom";
|
||||
height = 40;
|
||||
hiding = "dodgewindows";
|
||||
lengthMode = "fit";
|
||||
floating = true;
|
||||
alignment = "left";
|
||||
widgets = [
|
||||
{
|
||||
kickoff = {
|
||||
sortAlphabetically = true;
|
||||
# icon = "nix-snowflake-white";
|
||||
};
|
||||
}
|
||||
{
|
||||
iconTasks = {
|
||||
launchers = [
|
||||
"applications:firefox.desktop"
|
||||
"applications:org.kde.dolphin.desktop"
|
||||
"applications:vesktop.desktop"
|
||||
"applications:kitty.desktop"
|
||||
"applications:org.strawberrymusicplayer.strawberry.desktop"
|
||||
"applications:writer.desktop"
|
||||
];
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.pager"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
50
home/systemd/default.nix
Normal file
50
home/systemd/default.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
xdg.configFile."rclone/synology.conf".text = ''
|
||||
[synology]
|
||||
type = sftp
|
||||
user = sckova
|
||||
host = nas.taila30609.ts.net
|
||||
key_file = ~/.ssh/key
|
||||
'';
|
||||
|
||||
systemd.user.services.synology-mount = {
|
||||
Unit = {
|
||||
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
||||
After = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "notify";
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p %h/Synology";
|
||||
ExecStart = "${pkgs.rclone}/bin/rclone --config=%h/.config/rclone/synology.conf --vfs-cache-mode full --ignore-checksum mount \"synology:\" \"%h/Synology\"";
|
||||
ExecStop = "/run/wrappers/bin/fusermount -u %h/Synology/%i";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.input-leap = {
|
||||
Unit = {
|
||||
Description = "Autostart Input Leap";
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
PassEnvironment = "DISPLAY";
|
||||
ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
|
||||
sleep 5
|
||||
${pkgs.input-leap}/bin/input-leap
|
||||
''}";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
15
home/terminal/kitty/default.nix
Normal file
15
home/terminal/kitty/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
font = {
|
||||
name = "Noto Sans Mono";
|
||||
size = 10;
|
||||
};
|
||||
shellIntegration = {
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
extraConfig = "\nwheel_scroll_multiplier 5.0";
|
||||
};
|
||||
}
|
||||
245
home/terminal/nvim/default.nix
Normal file
245
home/terminal/nvim/default.nix
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
{
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
waylandSupport = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
opts = {
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
number = true;
|
||||
};
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
flavour = "mocha";
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
# --- Normal mode mappings ---
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
|
||||
# --- Visual mode mappings ---
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
nvim-autopairs = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
cmp = {
|
||||
autoEnableSources = true;
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
copilot-lua = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
settings = {
|
||||
formatters_by_ft = {
|
||||
lua = [ "stylua" ];
|
||||
python = [
|
||||
"isort"
|
||||
"black"
|
||||
];
|
||||
nix = [ "nixfmt" ];
|
||||
javascript = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
css = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
json = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
jsonc = [
|
||||
"deno fmt"
|
||||
"prettier"
|
||||
];
|
||||
};
|
||||
|
||||
# Default formatting options
|
||||
default_format_opts = {
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
|
||||
# Format-on-save behavior
|
||||
format_on_save = {
|
||||
timeout_ms = 500;
|
||||
};
|
||||
|
||||
# Custom formatter settings
|
||||
formatters = {
|
||||
shfmt = {
|
||||
append_args = [
|
||||
"-i"
|
||||
"2"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fzf-lua = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
kitty-scrollback = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
# autoLoad = true;
|
||||
};
|
||||
lualine = {
|
||||
enable = true;
|
||||
settings = {
|
||||
options = {
|
||||
theme = {
|
||||
normal = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#cba6f7";
|
||||
};
|
||||
b = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#313244";
|
||||
};
|
||||
c = {
|
||||
fg = "#cdd6f4";
|
||||
};
|
||||
};
|
||||
insert = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#89b4fa";
|
||||
};
|
||||
};
|
||||
visual = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#94e2d5";
|
||||
};
|
||||
};
|
||||
replace = {
|
||||
a = {
|
||||
fg = "#1e1e2e";
|
||||
bg = "#f38ba8";
|
||||
};
|
||||
};
|
||||
inactive = {
|
||||
a = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#1e1e2e";
|
||||
};
|
||||
b = {
|
||||
fg = "#cdd6f4";
|
||||
bg = "#1e1e2e";
|
||||
};
|
||||
c = {
|
||||
fg = "#cdd6f4";
|
||||
};
|
||||
};
|
||||
};
|
||||
component_separators = "";
|
||||
section_separators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
};
|
||||
|
||||
sections = {
|
||||
lualine_a = [
|
||||
{
|
||||
__unkeyed-1 = "mode";
|
||||
separator = {
|
||||
left = " ";
|
||||
};
|
||||
right_padding = 2;
|
||||
}
|
||||
];
|
||||
lualine_b = [
|
||||
"filename"
|
||||
"branch"
|
||||
];
|
||||
lualine_c = [ "%=" ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [
|
||||
"filetype"
|
||||
"progress"
|
||||
];
|
||||
lualine_z = [
|
||||
{
|
||||
__unkeyed-1 = "location";
|
||||
separator = {
|
||||
right = " ";
|
||||
};
|
||||
left_padding = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
inactive_sections = {
|
||||
lualine_a = [ "filename" ];
|
||||
lualine_b = [ ];
|
||||
lualine_c = [ ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [ ];
|
||||
lualine_z = [ "location" ];
|
||||
};
|
||||
tabline = { };
|
||||
extensions = [ ];
|
||||
};
|
||||
# autoLoad = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -27,7 +27,12 @@
|
|||
imports = [
|
||||
../home/all.nix
|
||||
../home/browsers/firefox/default.nix
|
||||
../home/${config.networking.hostName}.nix
|
||||
../home/systemd/default.nix
|
||||
../home/terminal/nvim/default.nix
|
||||
../home/terminal/kitty/default.nix
|
||||
../home/kde/plasma.nix
|
||||
../home/kde/other.nix
|
||||
../home/hosts/${config.networking.hostName}.nix
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -122,16 +127,6 @@
|
|||
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
environment = {
|
||||
|
|
@ -153,10 +148,6 @@
|
|||
services.openssh.enable = true;
|
||||
networking.firewall.enable = false;
|
||||
|
||||
networking.extraHosts = ''
|
||||
0.0.0.0 apresolve.spotify.com
|
||||
'';
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
|
|
|
|||
20
system/shell/fish.nix
Normal file
20
system/shell/fish.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue