feat: lisps, hyprland changes, god knows what else

This commit is contained in:
Kat Inskip 2026-01-13 17:52:02 -08:00
parent 35072f0885
commit 6f044a8349
30 changed files with 673 additions and 202 deletions

View file

@ -53,6 +53,7 @@
"$mod SHIFT, F, fullscreenstate, -1 2" # do inform
"$mod, T, togglefloating,"
"$mod, tab, hy3:togglefocuslayer"
"$mod, b, exec, ${getExe' config.services.emacs.package "emacsclient"} -c -n -e '(switch-to-buffer nil)'"
"$mod SHIFT, T, togglesplit,"
"$mod SHIFT, X, pseudo,"
"$mod ALT, ,resizeactive,"

View file

@ -5,7 +5,7 @@
"${getExe pkgs.swww} init"
"${getExe' pkgs.dbus "dbus-update-activation-environment"} --all"
(getExe' pkgs.networkmanagerapplet "nm-applet")
(getExe pkgs.udiskie)
(getExe' pkgs.udiskie "udiskie")
"${getExe' pkgs.systemd "systemctl"} restart konawall-py --user"
];
}

View file

@ -15,7 +15,6 @@ in {
brightnessctl
playerctl
glib
pcmanfm
];
services = {
swww.enable = true;

View file

@ -14,7 +14,7 @@ _: {
"unset, title:Wine System Tray"
"workspace special:hidden silent, title:Wine System Tray"
"noinitialfocus, title:Wine System Tray"
"no_follow_mouse, class:Unity"
];
};
}

View file

@ -0,0 +1,29 @@
{ lib, pkgs, ... }: let
inherit (lib.generators) toINI;
in {
xdg = {
enable = true;
autostart.enable = true;
mime.enable = true;
portal = {
xdgOpenUsePortal = true;
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
kdePackages.xdg-desktop-portal-kde
];
};
mimeApps = {
enable = true;
};
};
xdg.configFile."xdg-desktop-portal/hyprland-portals.conf".text = toINI {} {
preferred = {
default = "hyprland;gtk";
"org.freedesktop.impl.portal.FileChooser" = "kde";
"org.freedesktop.impl.portal.AppChooser" = "kde";
};
};
}

View file

@ -15,10 +15,8 @@ in {
grim
pavucontrol
brightnessctl
nautilus
playerctl
glib
pcmanfm
];
stylix.targets.niri.enable = true;
programs.niri = {

View file

@ -8,7 +8,7 @@
noctalia = "${getExe parent.services.noctalia-shell.package} ipc call";
in {
services.swayidle = {
enable = true;
enable = false;
timeouts = [
{
timeout = 600;

View file

@ -1,4 +1,11 @@
{pkgs, ...}: {
home.sessionVariables = {
TERMINAL = "alacritty";
};
xdg.terminal-exec = {
enable = true;
settings.default = [ "alacritty.desktop" ];
};
stylix.targets.alacritty.enable = true;
programs.alacritty = {
enable = true;

View file

@ -1,6 +1,11 @@
_: {
programs.librewolf.profiles.main.settings = {
"browser.tabs.allow_transparent_browser" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.location" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1;
"widget.use-xdg-desktop-portal.open-uri" = 1;
"widget.use-xdg-desktop-portal.settings" = 1;
"zen.welcome-screen.seen" = true;
"zen.watermark.enabled" = false;

View file

@ -1,16 +1,36 @@
{
pkgs,
inputs,
lib,
...
}: let
inherit (lib.attrsets) mapAttrsToList;
inherit (lib.meta) getExe';
wssrc = inputs.mpv-websocket.outPath;
wspkg = inputs.mpv-websocket.packages.${pkgs.system}.default;
in {
xdg.configFile."mpv/mpv_websocket".source = getExe' wspkg "mpv_websocket";
xdg.configFile."mpv/input.conf".source = "${wssrc}/mpv/input.conf";
programs.mpv = {
enable = true;
scripts = with pkgs.mpvScripts; [
sponsorblock
mpris
uosc
thumbfast
(pkgs.stdenvNoCC.mkDerivation rec {
pname = "run_websocket_server";
inherit (wspkg) version;
src = wssrc;
dontBuild = true;
dontUnpack = true;
installPhase = ''
install -Dm644 ${src}/mpv/scripts/run_websocket_server.lua $out/share/mpv/scripts/run_websocket_server.lua
'';
passthru.scriptName = "run_websocket_server.lua";
})
];
config = {
profile = "gpu-hq";
@ -18,6 +38,8 @@ in {
vo = "gpu";
volume-max = 200;
opengl-waitvsync = true;
# https://github.com/kuroahna/mpv_websocket/blob/master/mpv/mpv.conf
input-ipc-server = "/tmp/mpv-socket";
script-opts =
builtins.concatStringsSep ","
(mapAttrsToList (k: v: "${k}=${builtins.toString v}") {

View file

@ -1,13 +1,28 @@
{
pkgs,
lib,
std,
...
}: let
inherit (lib.attrsets) genAttrs;
inherit (std) set;
in {
xdg.mimeApps.defaultApplications = let
xdg.mimeApps = {
enable = true;
# https://www.iana.org/assignments/media-types/media-types.xhtml
defaultApplications = let
genDefault = application: types: genAttrs types (_: application);
imageTypes = map (x: "image/${x}") [
mimePrefix = prefix: map (x: "${prefix}/${x}");
archiveTypes = mimePrefix "application" [
"x-bzip"
"x-bzip2"
"gzip"
"x-gzip"
"x-zip"
"x-tar"
"x-7z-compressed"
];
imageTypes = mimePrefix "image" [
"apng"
"avif"
"bmp"
@ -19,7 +34,7 @@ in {
"svg+xml"
"webp"
];
videoTypes = map (x: "video/${x}") [
videoTypes = mimePrefix "video" [
"AV1"
"H264"
"H265"
@ -31,18 +46,32 @@ in {
"VP8"
"VP9"
];
archiveDefaults = genDefault "ark.desktop" archiveTypes;
imageDefaults = genDefault "imv.desktop" imageTypes;
videoDefaults = genDefault "mpv.desktop" videoTypes;
combinedDefaults = imageDefaults // videoDefaults;
combinedDefaults = set.merge [
archiveDefaults
imageDefaults
videoDefaults
{
"inode/directory" = "dolphin.desktop";
}
];
in
combinedDefaults;
};
home.packages = with pkgs; [
anki
# File management
kdePackages.dolphin
# Imagery
aseprite
imv
gimp
blender
krita
# Chat
telegram-desktop # Telegram
@ -52,10 +81,11 @@ in {
mumble
# Archivery
xarchiver
kdePackages.ark
unzip
zip
p7zip
rar
# Misc
exiftool # EXIF Stripping

View file

@ -77,6 +77,8 @@ in {
#tree-sitter-bash
tree-sitter-css
tree-sitter-dockerfile
tree-sitter-fennel
tree-sitter-clojure
tree-sitter-go
tree-sitter-hcl
tree-sitter-html

View file

@ -1,8 +1,12 @@
{
config,
pkgs,
lib,
tree,
...
}: {
}: let
inherit (lib.meta) getExe';
in {
home.packages = with pkgs; [
git-remote-gcrypt
git-crypt
@ -30,7 +34,9 @@
inherit (tree.home.user.data) userName userEmail;
package = pkgs.gitFull;
enable = true;
extraConfig = {
settings = {
core = {
};
init = {defaultBranch = "main";};
protocol.gcrypt.allow = "always";
merge.conflictstyle = "diff3";

View file

@ -7,9 +7,11 @@
}: let
inherit (lib.meta) getExe;
in {
home.packages = [
pkgs.quickshell
home.packages = with pkgs; [
quickshell
inputs.qml-niri.packages.${pkgs.system}.default
cliphist
networkmanager
];
programs.noctalia-shell = {
enable = true;