many changes

This commit is contained in:
Kat Inskip 2025-06-17 16:41:48 -07:00
parent 3150cf3c12
commit 0262081094
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
43 changed files with 4022 additions and 204 deletions

View file

@ -0,0 +1,210 @@
{
std,
pkgs,
inputs,
...
}: let
inherit (std) list;
in {
home.packages = with pkgs; [
grimblast
wl-clipboard
wlr-randr
wl-screenrec
slurp
grim
swww
pavucontrol
hyprpicker
brightnessctl
playerctl
glib
];
services.swww.enable = true;
wayland.windowManager.hyprland = let
import-gsettings = pkgs.writeShellScriptBin "import-gsettings" ''
# usage: import-gsettings
config="''${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
${pkgs.glib}/bin/gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" icon-theme "$icon_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" font-name "$font_name"
'';
in {
enable = true;
systemd = {
enable = true;
variables = ["--all"];
extraCommands = [
"systemctl --user stop graphical-session.target"
"systemctl --user start hyprland-session.target"
];
};
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = [
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
];
settings = {
"$mod" = "SUPER";
input = {
kb_options = "ctrl:nocaps";
};
workspace = let
commonOptions = "gapsin:0,gapsout:0,rounding:false";
in
["1,monitor:DP-1,default:true,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:DP-1${commonOptions}"
) (list.range 2 10))
++ [ "11,monitor:DP-2,default:true"] ++ (list.map (
workspace: "${toString workspace},monitor:DP-2${commonOptions}"
) (list.range 12 20));
/*list.concat (list.generate (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"${toString x},monitor:DP-1"
"${toString (x + 10)},monitor:DP-2${commonOptions}"
]
)
10);
*/
env = [
"NVD_BACKEND,direct"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"QT_QPA_PLATFORM,wayland"
"__NV_DISABLE_EXPLICIT_SYNC,1"
];
exec-once = [
"${pkgs.swww}/bin/swww init"
"${pkgs.hypridle}/bin/hypridle"
"${pkgs.dbus}/bin/dbus-update-activation-environment --all"
"${pkgs.libsForQt5.polkit-kde-agent}/bin/polkit-kde-agent"
"${pkgs.networkmanagerapplet}/bin/nm-applet"
"${pkgs.mako}/bin/mako"
"${pkgs.udiskie}/bin/udiskie &"
"${pkgs.pasystray}/bin/pasystray"
"${pkgs.systemd}/bin/systemctl restart waybar --user"
"${pkgs.systemd}/bin/systemctl restart konawall-py --user"
];
plugin.split-monitor-workspaces = {
count = 10;
keep_focused = 0;
enable_notifications = 0;
enable_persistent_workspaces = 1;
};
group.groupbar = {
font_family = "Monaspace Krypton";
font_size = 12;
};
exec = [
"${import-gsettings}/bin/import-gsettings"
];
xwayland = {
force_zero_scaling = true;
};
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
];
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%+"
", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%-"
];
bind =
[
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl prev"
"$mod, R, exec, wofi -t wezterm -IS drun"
"$mod SHIFT, R, exec, wofi -t wezterm -IS run"
"$mod, Return, exec, wezterm"
", Print, exec, grimblast copy area"
"$mod SHIFT, E, exec, pkill Hyprland"
"$mod SHIFT, Q, killactive,"
"$mod, F, fullscreen,"
"$mod, G, togglegroup,"
"$mod SHIFT, N, changegroupactive, f"
"$mod SHIFT, P, changegroupactive, b"
"$mod, T, togglefloating,"
"$mod SHIFT, T, togglesplit,"
"$mod SHIFT, X, pseudo,"
"$mod ALT, ,resizeactive,"
"$mod, Escape, exec, wlogout -p layer-shell"
"$mod, L, exec, loginctl lock-session"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod ALT, left, movewindoworgroup, l"
"$mod ALT, right, movewindoworgroup, r"
"$mod ALT, up, movewindoworgroup, u"
"$mod ALT, down, movewindoworgroup, d"
"$mod, P, exec, ${pkgs.hyprpicker}/bin/hyprpicker -na"
"CTRL, Print, exec, grimblast --notify --cursor copysave output"
"$mod SHIFT CTRL, R, exec, grimblast --notify --cursor copysave output"
"ALT, Print, exec, grimblast --notify --cursor copysave screen"
"$mod SHIFT ALT, R, exec, grimblast --notify --cursor copysave screen"
"$mod, bracketleft, workspace, m-1"
"$mod, bracketright, workspace, m+1"
"$mod SHIFT, bracketleft, focusmonitor, l"
"$mod SHIFT, bracketright, focusmonitor, r"
"$mod SHIFT ALT, bracketleft, movecurrentworkspacetomonitor, l"
"$mod SHIFT ALT, bracketright, movecurrentworkspacetomonitor, r"
]
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
list.concat (list.generate (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}"
"$mod, F${if ws == "0" then "10" else ws}, workspace, ${toString (x + 11)}"
"$mod SHIFT, F${if ws == "0" then "10" else ws}, movetoworkspacesilent, ${toString (x + 11)}"
"$mod ALT, ${ws}, split-workspace, ${toString (x + 1)}"
"$mod SHIFT ALT, ${ws}, split-movetoworkspacesilent, ${toString (x + 1)}"
"$mod ALT, F${if ws == "0" then "10" else ws}, split-workspace, ${toString (x + 11)}"
"$mod SHIFT ALT, F${if ws == "0" then "10" else ws}, split-movetoworkspacesilent, ${toString (x + 11)}"
]
)
10)
);
};
};
}

View file

@ -0,0 +1,5 @@
_: {
programs.hyprlock = {
enable = true;
};
}

View file

@ -0,0 +1,120 @@
_: {
programs.waybar = {
enable = true;
systemd.enable = true;
style = ''
* {
border: none;
border-radius: 0;
font-family: Monaspace Krypton, monospace;
font-size: 13px;
min-height: 0;
}
window#waybar {
background: @theme_base_color;
border-bottom: 1px solid @unfocused_borders;
color: @theme_text_color;
}
tooltip {
background: rgba(43, 48, 59, 0.5);
border: 1px solid rgba(100, 114, 125, 0.5);
}
tooltip label {
color: white;
}
#workspaces button.persistent {
background: shade(@insensitive_bg_color, 0.5);
color: shade(@insensitive_fg_color, 0.5);
}
#workspaces button {
padding: 0 5px;
background: @theme_unfocused_bg_color;
border-bottom: 3px solid transparent;
}
#workspaces button.active, #workspaces button.focused {
background: @theme_selected_bg_color;
color: @theme_selected_fg_color;
border-bottom: 3px solid white;
}
#mode, #clock, #battery, #idle_inhibitor, #tray, #window, #wireplumber, #bluetooth, #mpris {
padding: 0 5px;
margin: 0 5px;
}
#mode {
background: #64727D;
border-bottom: 3px solid white;
}
#clock, #mpris {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: black;
}
#battery.charging {
color: white;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: black;
}
}
#battery.warning:not(.charging) {
background: #f53c3c;
color: white;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
'';
settings.main = {
layer = "top";
position = "top";
height = 24;
modules-left = [
"hyprland/workspaces"
"hyprland/submap"
"hyprland/window"
];
modules-center = [
"clock"
"mpris"
];
modules-right = [
"privacy"
"bluetooth"
"wireplumber"
"idle_inhibitor"
"power-profiles-daemon"
"battery"
"tray"
];
bluetooth = {
on-click = "blueman-manager";
};
clock = {
format = "{:%F %H:%M %Z}";
};
};
};
}

View file

@ -0,0 +1,5 @@
_: {
programs.wlogout = {
enable = true;
};
}

View file

@ -0,0 +1,12 @@
_: {
programs.wofi = {
enable = true;
settings = {
insensitive = true;
allow_images = true;
hide_scroll = true;
mode = "dmenu";
prompt = "";
};
};
}

View file

@ -54,13 +54,25 @@ function cpu_sct()
end
function conky_mem_section()
local mem_tpl = tpl([[
${lua fmt h1 RAM} ${hr}
${color grey}Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Easy-to-free:$color ${memeasyfree}
]])
end
function conky_storage_section()
end
function conky_cpu_section()
local cpu_tpl = tpl([[
${lua fmt h1 CPU} ${hr}
${color grey}Variety:$color {%= cpu_model() %} {%= cpu_sct() %}
${cpugraph}
${color grey}Frequency:$color ${freq_g} GHz
${color grey}Usage:$color $cpu%
${color grey}Usage:$color $cpu% ${cpubar 4}
]])
return conky_parse(cpu_tpl({ cpu_model = cpu_model, cpu_sct = cpu_sct }))
end
@ -77,19 +89,20 @@ local query_headers = {
"fan.speed",
"utilization.gpu",
"utilization.memory",
"memory.used",
"clocks.current.graphics",
"clocks.current.memory",
"temperature.gpu",
"clocks.current.sm",
"clocks.current.video",
"memory.total",
"utilization.encoder",
"utilization.decoder",
"clocks.current.graphics",
"clocks.current.sm",
"clocks.current.memory",
"clocks.current.video",
"memory.used",
"memory.total",
"temperature.gpu",
}
local gpu_display_templates = {
index = "${lua fmt h1 GPU %s} ${hr}",
default = "${lua fmt item %s} %s",
hasbar = "${lua fmt item %s} %s ${nvidiabar %s %s}",
}
local gpu_header_aliases = {
["name"] = "Card",
@ -107,6 +120,15 @@ local gpu_header_aliases = {
["memory.total"] = "Memory Total",
["temperature.gpu"] = "Temperature",
};
local gpu_header_to_nvidiabar = {
--[[["fan.speed"] = "fanlevel",
["utilization.gpu"] = "gpuutil",
["utilization.memory"] = "memutil",
["clocks.current.graphics"] = "gpufreq",
["clocks.current.memory"] = "memfreq",
["temperature.gpu"] = "temp",
["memory.used"] = "mem",]]--
};
-- Reverse index
local query_headers_index = {}
for i, header in ipairs(query_headers) do
@ -171,7 +193,12 @@ function gpu_csv_query()
if gpu_display_templates[cur_header.clean] ~= nil then
display = string.format(gpu_display_templates[cur_header.clean], data_sf)
else
display = string.format(gpu_display_templates.default, gpu_header_aliases[cur_header.clean], data_sf)
if gpu_header_to_nvidiabar[cur_header.clean] ~= nil then
local nvidiabar = gpu_header_to_nvidiabar[cur_header.clean]
display = string.format(gpu_display_templates.hasbar, gpu_header_aliases[cur_header.clean], data_sf, nvidiabar, i)
else
display = string.format(gpu_display_templates.default, gpu_header_aliases[cur_header.clean], data_sf)
end
end
current_gpu[display_idx] = display
end

View file

@ -29,8 +29,8 @@ conky.config = {
out_to_console = false,
out_to_ncurses = false,
out_to_stderr = false,
out_to_wayland = false,
out_to_x = true,
out_to_wayland = true,
out_to_x = false,
own_window = true,
own_window_class = 'Conky',
own_window_type = 'override',

View file

@ -1,7 +1,7 @@
{ config, pkgs, ... }: {
home.packages = with pkgs; [
jq
conky
];
xdg.configFile.conky = {
@ -22,7 +22,7 @@
Restart = "always";
RestartSec = "3";
ExecStartPre = "${pkgs.coreutils}/bin/sleep 5";
ExecStart = toString ([ "${pkgs.conky}/bin/conky"]);
ExecStart = toString ([ "${(pkgs.conky.override { nvidiaSupport = true; })}/bin/conky"]);
};
Install.WantedBy = [ "graphical-session.target" ];

View file

@ -48,6 +48,7 @@
libksysguard
systemsettings
kcmutils
pkgs.plasma-applet-commandoutput
];
programs.plasma = {
configFile = {

View file

@ -1,42 +0,0 @@
{
inputs,
pkgs,
...
}: let
konawallWithDelay = pkgs.writeShellScriptBin "konawally" ''
sleep 5 && XDG_BACKEND=x11 GDK_BACKEND=x11 ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall
'';
desktop_entry = ''
[Desktop Entry]
Exec=${konawallWithDelay}/bin/konawally
Icon=
Name=konawall
Path=
Terminal=False
Type=Application
'';
konawallConfig = {
interval = 30 * 60;
rotate = true;
source = "konachan";
tags = [
#"rating:s"
"touhou"
"score:>=50"
"width:>=1500"
];
logging = {
file = "INFO";
console = "DEBUG";
};
};
in {
home.packages = [
konawallWithDelay
inputs.konawall-py.packages.${pkgs.system}.konawall-py
];
xdg.configFile = {
"konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig;
"autostart/konawall.desktop".text = desktop_entry;
};
}

View file

@ -8,9 +8,10 @@ in {
home.packages = with pkgs; [
(discord-krisp.override {
withOpenASAR = true;
withVencord = true; # can do this here too
withVencord = false; # can do this here too
})
vesktop
#legcord
dorion
#betterdiscordctl
];
}

View file

@ -18,6 +18,7 @@ in {
containersForce = true;
extensions = {
packages = with nur.repos.rycee.firefox-addons; [
pronoundb
sponsorblock
link-cleaner
canvasblocker

View file

@ -10,9 +10,6 @@
# Mail
thunderbird
# Music
spotify
# Chat
tdesktop # Telegram
dino # XMPP
@ -35,6 +32,8 @@
alsa-utils
pwvucontrol
veracrypt
deluge
gimp
xarchiver
];
}

View file

@ -0,0 +1,22 @@
{pkgs, inputs, ... }: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in {
programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
volumePercentage
queueTime
groupSession
];
experimentalFeatures = true;
windowManagerPatch = true;
colorScheme = "CatppuccinMocha";
theme = spicePkgs.themes.text // {
additionalCss = ''
:root {
--font-family: 'Monaspace Krypton', monospace;
}
'';
};
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
programs.taskwarrior = {
enable = true;
package = pkgs.taskwarrior3;
};
home.packages = [ pkgs.taskwarrior-tui ];
}

View file

@ -24,7 +24,7 @@
}),
window_decorations = "TITLE | RESIZE",
enable_wayland = true,
enable_wayland = false,
warn_about_missing_glyphs = false,
font_size = 12.0,
check_for_updates = false,

View file

@ -7,16 +7,14 @@
}: let
inherit (lib.modules) mkIf;
inherit (std) string set;
initLua = pkgs.substituteAll ({
name = "init.lua";
src = ./init.lua;
initLua = (pkgs.replaceVars ./init.lua ({
base16ShellPath = config.base16.shell.package;
catppuccin_flavour = config.catppuccin.flavor;
inherit (config.base16) defaultSchemeName;
defaultSchemeSlug = config.base16.defaultScheme.slug;
}
// set.map (_: col: string.justifyRight 2 "0" (builtins.toString col.ansiIndex))
(set.filter (var: _: string.hasInfix "base" var) config.base16.defaultScheme));
(set.filter (var: _: string.hasInfix "base" var) config.base16.defaultScheme)));
in {
home.sessionVariables = mkIf config.programs.neovim.enable {EDITOR = "nvim";};
programs.neovim = {
@ -60,6 +58,9 @@ in {
# tree
nui-nvim
neo-tree-nvim
# hardtime
hardtime-nvim
nvim-notify
# Session management
resession-nvim
# tree sitter

View file

@ -278,6 +278,13 @@ vim.api.nvim_create_autocmd("VimLeavePre", {
end,
})
-- hardtime
vim.notify = require("notify")
--[[require("hardtime").setup({
disable_mouse = false,
disabled_keys = {},
})]]--
-- telescope
local telescope = require('telescope.builtin')