mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
nixify: hyprland & kitty
This commit is contained in:
parent
db78fc2289
commit
f56fa1259c
22 changed files with 449 additions and 29 deletions
|
|
@ -75,6 +75,8 @@ vim:ft=gotmpl
|
||||||
.config/aichat
|
.config/aichat
|
||||||
.config/libvirt
|
.config/libvirt
|
||||||
.config/tmux
|
.config/tmux
|
||||||
|
.config/dunst
|
||||||
|
.config/kitty
|
||||||
.local/share/kio/**
|
.local/share/kio/**
|
||||||
.local/share/fonts/**
|
.local/share/fonts/**
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -30,4 +30,20 @@ return {
|
||||||
build = ":Cord update",
|
build = ":Cord update",
|
||||||
-- opts = {}
|
-- opts = {}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mikesmithgh/kitty-scrollback.nvim",
|
||||||
|
enabled = true,
|
||||||
|
lazy = true,
|
||||||
|
cmd = {
|
||||||
|
"KittyScrollbackGenerateKittens",
|
||||||
|
"KittyScrollbackCheckHealth",
|
||||||
|
"KittyScrollbackGenerateCommandLineEditing",
|
||||||
|
},
|
||||||
|
event = { "User KittyScrollbackLaunch" },
|
||||||
|
-- version = '*', -- latest stable version, may have breaking changes if major version changed
|
||||||
|
-- version = '^6.0.0', -- pin major version, include fixes and features that do not have breaking changes
|
||||||
|
config = function()
|
||||||
|
require("kitty-scrollback").setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,12 +38,12 @@ return {
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
require("multiple-cursors").setup({
|
require("multiple-cursors").setup({
|
||||||
pre_hook = function()
|
-- pre_hook = function()
|
||||||
require("nvim-autopairs").disable()
|
-- require("blink.pairs.mapping").disable()
|
||||||
end,
|
-- end,
|
||||||
post_hook = function()
|
-- post_hook = function()
|
||||||
require("nvim-autopairs").enable()
|
-- require("blink.pairs.mapping").enable()
|
||||||
end,
|
-- end,
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
nixcfgs/.gitignore
vendored
2
nixcfgs/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
secrets # TODO
|
|
||||||
users/js0ny/programs/desktop/wayland-wm/hyprland/
|
|
||||||
|
|
@ -25,8 +25,7 @@
|
||||||
../../modules/nixos/desktop/xremap.nix
|
../../modules/nixos/desktop/xremap.nix
|
||||||
|
|
||||||
# desktop environment and display manager
|
# desktop environment and display manager
|
||||||
../../modules/nixos/desktop/dm/sddm.nix
|
../../modules/nixos/desktop/dm/ly.nix
|
||||||
../../modules/nixos/desktop/de/kde.nix
|
|
||||||
../../modules/nixos/desktop/de/niri.nix
|
../../modules/nixos/desktop/de/niri.nix
|
||||||
../../modules/nixos/desktop/de/hyprland.nix
|
../../modules/nixos/desktop/de/hyprland.nix
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = false;
|
withUWSM = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
{
|
{
|
||||||
currentUser = {
|
currentUser = {
|
||||||
defaultShell = "zsh";
|
defaultShell = "zsh";
|
||||||
defaultTerminal = "ghostty";
|
defaultTerminal = "kitty";
|
||||||
defaultTerminalRunner = "alacritty";
|
|
||||||
iconTheme = "Papirus";
|
iconTheme = "Papirus";
|
||||||
defaultExplorer = "dolphin";
|
defaultExplorer = "dolphin";
|
||||||
defaultTerminalExplorer = "yazi";
|
defaultTerminalExplorer = "yazi";
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,8 @@ in {
|
||||||
blender
|
blender
|
||||||
logisim-evolution
|
logisim-evolution
|
||||||
onlyoffice-desktopeditors
|
onlyoffice-desktopeditors
|
||||||
|
wayland-bongocat
|
||||||
|
nur.repos.lonerOrz.antigravity
|
||||||
]
|
]
|
||||||
++ (mkFcitxIM [
|
++ (mkFcitxIM [
|
||||||
pkgs.neovim-qt
|
pkgs.neovim-qt
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
grimblast
|
|
||||||
];
|
|
||||||
imports = [
|
|
||||||
./packages.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,137 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
grimblast
|
||||||
|
];
|
||||||
|
imports = [
|
||||||
|
../packages.nix
|
||||||
|
./keymaps.nix
|
||||||
|
./window-rules.nix
|
||||||
|
];
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
||||||
|
systemd.enableXdgAutostart = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
# extraConfig = ''
|
||||||
|
# source=~/.config/hypr/debug.conf
|
||||||
|
# '';
|
||||||
|
settings = {
|
||||||
|
ecosystem = {
|
||||||
|
no_update_news = true;
|
||||||
|
};
|
||||||
|
exec-once = [
|
||||||
|
"waybar"
|
||||||
|
"dunst"
|
||||||
|
"${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"
|
||||||
|
];
|
||||||
|
general = {
|
||||||
|
gaps_in = 0;
|
||||||
|
gaps_out = 0;
|
||||||
|
|
||||||
|
border_size = 5;
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
|
"col.active_border" = "$lavender $pink 45deg";
|
||||||
|
"col.inactive_border" = "$overlay1";
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = true;
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false;
|
||||||
|
|
||||||
|
layout = "dwindle";
|
||||||
|
|
||||||
|
no_border_on_floating = false;
|
||||||
|
};
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true;
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
follow_mouse = 1;
|
||||||
|
|
||||||
|
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
scroll_factor = 0.2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true; # You probably want this
|
||||||
|
};
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master = {
|
||||||
|
new_status = "slave";
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = [
|
||||||
|
"easeOutQuint,0.23,1,0.32,1"
|
||||||
|
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||||
|
"linear,0,0,1,1"
|
||||||
|
"almostLinear,0.5,0.5,0.75,1.0"
|
||||||
|
"quick,0.15,0,0.1,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"global, 1, 10, default"
|
||||||
|
"border, 1, 5.39, easeOutQuint"
|
||||||
|
"windows, 1, 4.79, easeOutQuint"
|
||||||
|
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||||
|
# "windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||||
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||||
|
"fadeIn, 1, 1.73, almostLinear"
|
||||||
|
"fadeOut, 1, 1.46, almostLinear"
|
||||||
|
"fade, 1, 3.03, quick"
|
||||||
|
"layers, 1, 3.81, easeOutQuint"
|
||||||
|
"layersIn, 1, 4, easeOutQuint, fade"
|
||||||
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
|
"workspaces, 1, 1.94, almostLinear, slide"
|
||||||
|
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||||
|
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||||
|
"specialWorkspace, 1, 1.94, almostLinear, fade"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 20;
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
# active_opacity = 1
|
||||||
|
# inactive_opacity = 0.9
|
||||||
|
active_opacity = 0.9;
|
||||||
|
inactive_opacity = 0.85;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 4;
|
||||||
|
render_power = 3;
|
||||||
|
color = "$base";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 10;
|
||||||
|
passes = 2;
|
||||||
|
|
||||||
|
vibrancy = 0.1696;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
{config, ...}: let
|
||||||
|
term = config.currentUser.defaultTerminal;
|
||||||
|
termRunner = config.currentUser.defaultTerminalRunner;
|
||||||
|
iconTheme = config.currentUser.iconTheme;
|
||||||
|
explorer = config.currentUser.defaultExplorer;
|
||||||
|
explorerTerm = config.currentUser.defaultTerminalExplorer;
|
||||||
|
launcher = "rofi";
|
||||||
|
kbdBacklightDev = config.currentHost.keyboardBacklightDevice;
|
||||||
|
kbdBacklightStep = config.currentHost.keyboardBacklightStep;
|
||||||
|
mainMod = "SUPER";
|
||||||
|
screenshotPath = "$HOME/Pictures/Screenshots/\"$(%Y-%m-%d_%H-%M-%S.png)\"";
|
||||||
|
in {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
"$mainMod" = "${mainMod}";
|
||||||
|
bind = [
|
||||||
|
"$mainMod, return, exec, ${term}"
|
||||||
|
"$mainMod, Q, killactive"
|
||||||
|
''$mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"''
|
||||||
|
"$mainMod SHIFT, M, fullscreen"
|
||||||
|
"$mainMod, W, exec, ${launcher} -show window -icon-theme ${iconTheme} -show-icons"
|
||||||
|
"$mainMod, V, exec, cliphist list | ${launcher} -dmenu | cliphist decode | wl-copy"
|
||||||
|
"alt, space, exec, ${launcher} -show drun -icon-theme ${iconTheme} -show-icons"
|
||||||
|
"$mainMod, E, exec, ${explorer}"
|
||||||
|
"$mainMod SHIFT, E, exec, ${termRunner} -e ${explorerTerm}"
|
||||||
|
"$mainMod, P, pseudo"
|
||||||
|
"$mainMod, X, togglesplit"
|
||||||
|
"$mainMod, left, movefocus, l"
|
||||||
|
"$mainMod, right, movefocus, r"
|
||||||
|
"$mainMod, up, movefocus, u"
|
||||||
|
"$mainMod, down, movefocus, d"
|
||||||
|
"$mainMod, H, movefocus, l"
|
||||||
|
"$mainMod, L, movefocus, r"
|
||||||
|
"$mainMod, K, movefocus, u"
|
||||||
|
"$mainMod, J, movefocus, d"
|
||||||
|
"$mainMod SHIFT, H, swapwindow, l"
|
||||||
|
"$mainMod SHIFT, L, swapwindow, r"
|
||||||
|
"$mainMod SHIFT, K, swapwindow, u"
|
||||||
|
"$mainMod SHIFT, J, swapwindow, d"
|
||||||
|
"$mainMod CTRL, H, resizeactive, 10 0"
|
||||||
|
"$mainMod CTRL, L, resizeactive, -10 0"
|
||||||
|
"$mainMod CTRL, K, resizeactive, 0 10"
|
||||||
|
"$mainMod CTRL, J, resizeactive, 0 10"
|
||||||
|
"$mainMod, s, exec, grimblast copysave active ${screenshotPath}"
|
||||||
|
"$mainMod SHIFT, s, exec, grimblast copysave area ${screenshotPath}"
|
||||||
|
"alt, PRINT, exec, grimblast copysave active ${screenshotPath}"
|
||||||
|
",PRINT, exec, grimblast copysave active ${screenshotPath}"
|
||||||
|
"$mainMod SHIFT, c, exec, notify-send \"Color: $(hyprpicker)\""
|
||||||
|
"$mainMod, 1, workspace, 1"
|
||||||
|
"$mainMod, 2, workspace, 2"
|
||||||
|
"$mainMod, 3, workspace, 3"
|
||||||
|
"$mainMod, 4, workspace, 4"
|
||||||
|
"$mainMod, 5, workspace, 5"
|
||||||
|
"$mainMod, 6, workspace, 6"
|
||||||
|
"$mainMod, 7, workspace, 7"
|
||||||
|
"$mainMod, 8, workspace, 8"
|
||||||
|
"$mainMod, 9, workspace, 9"
|
||||||
|
"$mainMod, 0, workspace, 10"
|
||||||
|
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||||
|
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||||
|
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||||
|
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||||
|
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||||
|
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||||
|
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||||
|
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||||
|
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||||
|
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||||
|
"$mainMod, GRAVE, togglespecialworkspace, magic"
|
||||||
|
"$mainMod SHIFT, GRAVE, movetoworkspace, special:magic"
|
||||||
|
"$mainMod, mouse_down, workspace, e+1"
|
||||||
|
"$mainMod, mouse_up, workspace, e-1"
|
||||||
|
];
|
||||||
|
# m: Mouse: Will work with mouse buttons
|
||||||
|
bindm = [
|
||||||
|
"$mainMod, mouse:272, movewindow"
|
||||||
|
"$mainMod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
# l: locked: Will work when an input inhibitor is active (e.g. lock screen)
|
||||||
|
bindl = [
|
||||||
|
",XF86AudioNext, exec, playerctl next"
|
||||||
|
",XF86AudioPrev, exec, playerctl previous"
|
||||||
|
",XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
",XF86AudioPause, exec, playerctl play-pause"
|
||||||
|
];
|
||||||
|
# e: repeat: Will repeat when the key is held down
|
||||||
|
bindel = [
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
", XF86MonBrightnessUp, exec, brightnessctl set +10%"
|
||||||
|
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||||
|
", XF86KbdBrightnessUp, exec, brightnessctl --device ${kbdBacklightDev} set ${kbdBacklightStep}+"
|
||||||
|
", XF86KbdBrightnessDown, exec, brightnessctl --device ${kbdBacklightDev} set ${kbdBacklightStep}-"
|
||||||
|
", XF86Launch4, exec, powerprofiles-next"
|
||||||
|
", XF86Launch1, exec, ${launcher} -show drun -icon-theme ${iconTheme} -show-icons"
|
||||||
|
];
|
||||||
|
gesture = [
|
||||||
|
"4, horizontal, workspace"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
{...}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
windowrule = [
|
||||||
|
# windowrule = match:class mpv, float on, move (monitor_w-20-window_w) (monitor_h-20-window_h), pin on
|
||||||
|
];
|
||||||
|
windowrulev2 = [
|
||||||
|
"suppressevent maximize, class:.*"
|
||||||
|
# Right Bottom
|
||||||
|
"float, pin, size 25%, move 73% 73%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$"
|
||||||
|
"float, pin, size 25%, move 73% 73%, title:^(画中画)(.*)$"
|
||||||
|
|
||||||
|
# Right Top
|
||||||
|
"float, pin, size 25%, move 73% 10%, class:^(org.pulseaudio.pavucontrol)$"
|
||||||
|
# Right Top + no focus
|
||||||
|
"noinitialfocus, float, pin, size 25%, move 73% 10%, class:^(org.kde.(dolphin|ark))$, title:^(Extracting|Compressing)(.*)$"
|
||||||
|
"noinitialfocus, float, pin, size 25%, move 73% 10%, class:^(thunar)$, title:^(File Operation Progress)$"
|
||||||
|
# Centered
|
||||||
|
"float, center, size 50%, class:^(com.(telegram|ayugram).desktop)$, title:^(Media viewer)$"
|
||||||
|
"float, center, size 50%, class:^(io.github.kukuruzka165.materialgram)$, title:^(Media viewer)$"
|
||||||
|
"float, center, size 50%, class:^(wechat)$, title:^(图片和视频)$"
|
||||||
|
"float, center, size 50%, class:^(QQ)$, title:^(图片查看器)$"
|
||||||
|
"float, center, size 50%, class:^(QQ)$, title:^(群聊的聊天记录)$"
|
||||||
|
"float, center, size 50%, class:^(CherryStudio)$, title:^(Cherry Studio Quick Assistant)$"
|
||||||
|
"float, center, size 50%, class:^(anki)$, title:^(Add)$"
|
||||||
|
"float, center, title:^(Open File|打开文件|Select a File|选择文件|Choose wallpaper|Open Folder|Save As|保存|Library|File Upload)(.*)$"
|
||||||
|
"float, center, class:^(qt6ct)$"
|
||||||
|
# no focus
|
||||||
|
"float, noinitialfocus, center, class:^(gimp)$, title:^(GIMP Startup)$"
|
||||||
|
"float, noinitialfocus, center, class:^(wechat)$, title:^(wechat)$"
|
||||||
|
# Pin + Stay focused
|
||||||
|
"float, pin, stayfocused, class:^(rofi)$"
|
||||||
|
|
||||||
|
# Workspace 1 - Master
|
||||||
|
"workspace 1, class:^(firefox)$"
|
||||||
|
# Workspace 2 - Project
|
||||||
|
"workspace 2, class:^(code|dev.zed.Zed|Vitis IDE|Vivado)$"
|
||||||
|
# Workspace 3 - Info
|
||||||
|
"workspace 3, class:^(discord|thunderbird|QQ|wechat|com.(telegram|ayugram).desktop|io.github.kukuruzka165.materialgram)$"
|
||||||
|
# Workspace 9 - Background
|
||||||
|
"workspace 9, class:^(feishin|Cider)$"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -19,7 +19,7 @@ in {
|
||||||
criteria = lg4k60;
|
criteria = lg4k60;
|
||||||
alias = "lg4k60";
|
alias = "lg4k60";
|
||||||
mode = "3840x2160@59.997";
|
mode = "3840x2160@59.997";
|
||||||
scale = 1.75;
|
scale = 1.6666;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
# Profiles
|
# Profiles
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@
|
||||||
{argv = ["waybar"];}
|
{argv = ["waybar"];}
|
||||||
{argv = ["dunst"];}
|
{argv = ["dunst"];}
|
||||||
{argv = ["fcitx5"];}
|
{argv = ["fcitx5"];}
|
||||||
|
{argv = ["swww-daemon"];}
|
||||||
# polkit/portal helpers
|
# polkit/portal helpers
|
||||||
{argv = ["${pkgs.kdePackages.xdg-desktop-portal-kde}/libexec/xdg-desktop-portal-kde"];}
|
|
||||||
{argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
{argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,4 +55,12 @@ in {
|
||||||
services.cliphist.enable = true;
|
services.cliphist.enable = true;
|
||||||
services.dunst.enable = true;
|
services.dunst.enable = true;
|
||||||
catppuccin.dunst.enable = false;
|
catppuccin.dunst.enable = false;
|
||||||
|
home.pointerCursor = {
|
||||||
|
enable = true;
|
||||||
|
gtk.enable = true;
|
||||||
|
x11.enable = true;
|
||||||
|
size = 24;
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,21 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
style = ''
|
style = ''
|
||||||
* {
|
* {
|
||||||
font-family: "Font Awesome 7 Free", "JetBrainsMono Nerd Font";
|
font-family: "LXGW Neo XiHei", "Font Awesome 7 Free", "JetBrainsMono Nerd Font";
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-feature-settings: "tnum";
|
font-feature-settings: "tnum";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: @base;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
color: #f0f0ff;
|
||||||
|
background-color: rgba(30, 30, 46, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
#workspaces button:hover {
|
#workspaces button:hover {
|
||||||
background: @pink;
|
background: @pink;
|
||||||
}
|
}
|
||||||
|
|
@ -20,6 +31,33 @@
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background-color: @red;
|
background-color: @red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#custom-osicon {
|
||||||
|
color: @blue;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#tray,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#scratchpad,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
color: @text;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,6 @@
|
||||||
"alt+shift+_=new_split:down"
|
"alt+shift+_=new_split:down"
|
||||||
"alt+shift+enter=new_split:auto"
|
"alt+shift+enter=new_split:auto"
|
||||||
"global:super+backquote=toggle_quick_terminal"
|
"global:super+backquote=toggle_quick_terminal"
|
||||||
"alt+shift+n=new_window"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
### Misc
|
### Misc
|
||||||
|
|
|
||||||
81
nixcfgs/users/js0ny/programs/kitty.nix
Normal file
81
nixcfgs/users/js0ny/programs/kitty.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
alt =
|
||||||
|
if pkgs.stdenv.isDarwin
|
||||||
|
then "cmd"
|
||||||
|
else "alt";
|
||||||
|
in {
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
shellIntegration = {
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
"TERM_PROGRAM" = "kitty";
|
||||||
|
};
|
||||||
|
font = {
|
||||||
|
size = 12;
|
||||||
|
name = "Maple Mono NF CN";
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
# Font
|
||||||
|
disable_ligatures = "never";
|
||||||
|
# Cursor Trail
|
||||||
|
cursor_trail = 1;
|
||||||
|
cursor_trail_decay = "0.1 0.4";
|
||||||
|
cursor_trail_start_threshold = 2;
|
||||||
|
# Tab Bar
|
||||||
|
tab_bar_edge = "top";
|
||||||
|
tab_bar_align = "left";
|
||||||
|
tab_bar_style = "powerline";
|
||||||
|
# Hide tab bar when there is only one tab
|
||||||
|
tab_bar_min_tabs = 2;
|
||||||
|
tab_title_template = "{f'{title[:30]}…' if title.rindex(title[-1]) + 1 > 30 else (title.center(6) if (title.rindex(title[-1]) + 1) % 2 == 0 else title.center(5))}";
|
||||||
|
active_tab_font_style = "bold";
|
||||||
|
# macOS # TODO: true or "yes", untested
|
||||||
|
macos_option_as_alt = true;
|
||||||
|
macos_quit_when_last_window_closed = true;
|
||||||
|
enabled_layouts = "splits";
|
||||||
|
};
|
||||||
|
keybindings = {
|
||||||
|
"cmd+c" = "copy_and_clear_or_interrupt";
|
||||||
|
"ctrl+c" = "copy_and_clear_or_interrupt";
|
||||||
|
"${alt}+1" = "goto_tab 1";
|
||||||
|
"${alt}+2" = "goto_tab 2";
|
||||||
|
"${alt}+3" = "goto_tab 3";
|
||||||
|
"${alt}+4" = "goto_tab 4";
|
||||||
|
"${alt}+5" = "goto_tab 5";
|
||||||
|
"${alt}+6" = "goto_tab 6";
|
||||||
|
"${alt}+7" = "goto_tab 7";
|
||||||
|
"${alt}+8" = "goto_tab 8";
|
||||||
|
"${alt}+9" = "goto_tab 9"; # if less than 9 tabs, goes to last tab
|
||||||
|
"${alt}+0" = "goto_tab -1"; # previously active tab
|
||||||
|
"${alt}+shift+\\" = "launch --location=hsplit";
|
||||||
|
"${alt}+shift+-" = "launch --location=vsplit";
|
||||||
|
"ctrl+shift+h" = "kitty_scrollback_nvim";
|
||||||
|
"ctrl+shift+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output";
|
||||||
|
"alt+shift+h" = "move_window left";
|
||||||
|
"alt+shift+l" = "move_window right";
|
||||||
|
"alt+shift+k" = "move_window up";
|
||||||
|
"alt+shift+j" = "move_window down";
|
||||||
|
"ctrl+q>h" = "move_window left";
|
||||||
|
"ctrl+q>l" = "move_window right";
|
||||||
|
"ctrl+q>k" = "move_window up";
|
||||||
|
"ctrl+q>j" = "move_window down";
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
||||||
|
'';
|
||||||
|
actionAliases =
|
||||||
|
if config.programs.neovim.enable
|
||||||
|
then {
|
||||||
|
"kitty_scrollback_nvim" = "kitten /home/js0ny/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py";
|
||||||
|
}
|
||||||
|
else {};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
input-overlay
|
input-overlay
|
||||||
|
wlrobs
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,9 @@ in {
|
||||||
|
|
||||||
bindkey '^[#' pound-insert # Alt-# to comment line
|
bindkey '^[#' pound-insert # Alt-# to comment line
|
||||||
|
|
||||||
|
bindkey '^]' vi-find-next-char
|
||||||
|
bindkey '^[^]' vi-find-prev-char
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
# ========
|
# ========
|
||||||
# source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
|
# source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
prefix = "C-q";
|
prefix = "C-a";
|
||||||
shortcut = "q";
|
shortcut = "a";
|
||||||
keyMode = "vi";
|
keyMode = "vi";
|
||||||
historyLimit = 10000;
|
historyLimit = 10000;
|
||||||
mouse = true;
|
mouse = true;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
# Personal Program
|
# Personal Program
|
||||||
./programs/chromium.nix
|
./programs/chromium.nix
|
||||||
./programs/firefox
|
./programs/firefox
|
||||||
# ./programs/emacs.nix
|
./programs/emacs.nix
|
||||||
./programs/vscode.nix
|
./programs/vscode.nix
|
||||||
./programs/xilinx.nix
|
./programs/xilinx.nix
|
||||||
./programs/mime.nix
|
./programs/mime.nix
|
||||||
|
|
@ -52,11 +52,12 @@
|
||||||
./programs/obsidian
|
./programs/obsidian
|
||||||
./programs/aichat.nix
|
./programs/aichat.nix
|
||||||
./programs/tmux.nix
|
./programs/tmux.nix
|
||||||
|
./programs/kitty.nix
|
||||||
|
|
||||||
# Desktop Linux
|
# Desktop Linux
|
||||||
./programs/desktop/plasma
|
./programs/desktop/plasma
|
||||||
./programs/desktop/wayland-wm/niri
|
./programs/desktop/wayland-wm/niri
|
||||||
./programs/desktop/wayland-wm/hyprland.nix
|
./programs/desktop/wayland-wm/hyprland
|
||||||
|
|
||||||
../../modules/home/do-not-track.nix
|
../../modules/home/do-not-track.nix
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue