finish current refactor
This commit is contained in:
parent
c11f713e34
commit
ec7197316a
11 changed files with 572 additions and 560 deletions
|
|
@ -77,6 +77,7 @@
|
||||||
}
|
}
|
||||||
./system/all.nix
|
./system/all.nix
|
||||||
./system/browsers/firefox.nix
|
./system/browsers/firefox.nix
|
||||||
|
./system/shell/fish.nix
|
||||||
./system/hosts/${hostname}/default.nix
|
./system/hosts/${hostname}/default.nix
|
||||||
./hardware/${hostname}.nix
|
./hardware/${hostname}.nix
|
||||||
catppuccin.nixosModules.catppuccin
|
catppuccin.nixosModules.catppuccin
|
||||||
|
|
@ -105,7 +106,7 @@
|
||||||
home.homeDirectory = "/home/${user}";
|
home.homeDirectory = "/home/${user}";
|
||||||
modules = [
|
modules = [
|
||||||
./home/all.nix
|
./home/all.nix
|
||||||
./home/${hostname}.nix
|
./home/hosts/${hostname}.nix
|
||||||
catppuccin.homeModules.catppuccin
|
catppuccin.homeModules.catppuccin
|
||||||
home-manager.homeModules.home-manager
|
home-manager.homeModules.home-manager
|
||||||
plasma-manager.homeModules.plasma-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
|
# This value determines the Home Manager release that your
|
||||||
# configuration is compatible with. This helps avoid breakage
|
# configuration is compatible with. This helps avoid breakage
|
||||||
# when a new Home Manager release introduces backwards
|
# 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 = [
|
imports = [
|
||||||
../home/all.nix
|
../home/all.nix
|
||||||
../home/browsers/firefox/default.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";
|
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;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
|
@ -153,10 +148,6 @@
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
networking.extraHosts = ''
|
|
||||||
0.0.0.0 apresolve.spotify.com
|
|
||||||
'';
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# 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