This commit is contained in:
zastian@mrthoddata.com
2025-09-15 13:04:52 +01:00
parent cdb912796e
commit 935257bc4b
7 changed files with 638 additions and 139 deletions

View File

@@ -9,7 +9,9 @@
}:
let
caelestia-cli = inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli;
hypr-package = inputs.hyprland.packages.${pkgs.system}.hyprland;
hypr-portal = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
hypr-split = inputs.hyprland-hyprsplit.packages.${pkgs.system}.split-monitor-workspaces;
mod = "Alt";
terminal = "footclient";
fileManager = "dolphin";
@@ -21,9 +23,11 @@ in
{
wayland.windowManager.hyprland = {
enable = window_manager == "hyprland" || window_manager == "all";
package = hypr-package;
portalPackage = hypr-portal;
plugins = [
pkgs.hyprlandPlugins.hyprsplit
pkgs.hyprlandPlugins.hyprscrolling
#pkgs.hyprlandPlugins.hyprsplit
hypr-split
];
settings = {
@@ -105,16 +109,9 @@ in
##########################################################################
plugin = {
hyprsplit = {
num_workspaces = 10;
persistent_workspaces = true;
};
hyprscrolling = {
fullscreen_on_one_column = false;
column_width = 0.7;
explicit_column_widths = [ 0.333 0.5 0.667 1.0 ];
focus_fit_method = 0;
split-monitor-workspaces = {
count = 10;
penable_persistent_workspaces = 1;
};
};
@@ -308,28 +305,28 @@ in
"${mod} SHIFT, J, movewindow, d"
# Workspaces (switch)
"${mod}, 1, split:workspace, 1 "
"${mod}, 2, split:workspace, 2 "
"${mod}, 3, split:workspace, 3 "
"${mod}, 4, split:workspace, 4 "
"${mod}, 5, split:workspace, 5 "
"${mod}, 6, split:workspace, 6 "
"${mod}, 7, split:workspace, 7 "
"${mod}, 8, split:workspace, 8 "
"${mod}, 9, split:workspace, 9 "
"${mod}, 0, split:workspace, 10"
"${mod}, 1, split-workspace, 1 "
"${mod}, 2, split-workspace, 2 "
"${mod}, 3, split-workspace, 3 "
"${mod}, 4, split-workspace, 4 "
"${mod}, 5, split-workspace, 5 "
"${mod}, 6, split-workspace, 6 "
"${mod}, 7, split-workspace, 7 "
"${mod}, 8, split-workspace, 8 "
"${mod}, 9, split-workspace, 9 "
"${mod}, 0, split-workspace, 10"
# Workspaces (move active window)
"${mod} SHIFT, 1, split:movetoworkspacesilent, 1 "
"${mod} SHIFT, 2, split:movetoworkspacesilent, 2 "
"${mod} SHIFT, 3, split:movetoworkspacesilent, 3 "
"${mod} SHIFT, 4, split:movetoworkspacesilent, 4 "
"${mod} SHIFT, 5, split:movetoworkspacesilent, 5 "
"${mod} SHIFT, 6, split:movetoworkspacesilent, 6 "
"${mod} SHIFT, 7, split:movetoworkspacesilent, 7 "
"${mod} SHIFT, 8, split:movetoworkspacesilent, 8 "
"${mod} SHIFT, 9, split:movetoworkspacesilent, 9 "
"${mod} SHIFT, 0, split:movetoworkspacesilent, 10"
"${mod} SHIFT, 1, split-movetoworkspacesilent, 1 "
"${mod} SHIFT, 2, split-movetoworkspacesilent, 2 "
"${mod} SHIFT, 3, split-movetoworkspacesilent, 3 "
"${mod} SHIFT, 4, split-movetoworkspacesilent, 4 "
"${mod} SHIFT, 5, split-movetoworkspacesilent, 5 "
"${mod} SHIFT, 6, split-movetoworkspacesilent, 6 "
"${mod} SHIFT, 7, split-movetoworkspacesilent, 7 "
"${mod} SHIFT, 8, split-movetoworkspacesilent, 8 "
"${mod} SHIFT, 9, split-movetoworkspacesilent, 9 "
"${mod} SHIFT, 0, split-movetoworkspacesilent, 10"
# Special workspace (scratchpad)
"${mod}, SLASH, togglespecialworkspace, magic"

View File

@@ -3,81 +3,97 @@
lib,
pkgs,
window_manager,
inputs,
...
}:
{
xdg = {
enable = true;
portal = {
enable = true;
config.common.default = [
"hyprland;kde"
"river"
"kde"
"gtk"
];
xdgOpenUsePortal = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
kdePackages.xdg-desktop-portal-kde
];
};
mime.enable = true;
mimeApps = {
enable = true;
defaultApplications =
let
browser = [ "zen-beta.desktop" ];
browser = [ "zen-beta.desktop" ];
fileManager = [ "pcmanfm.desktop" ];
editor = [ "emacs.desktop" ];
player = [ "mpv.desktop" ];
viewer = [ "imv-dir.desktop" ];
reader = [ "org.pwmt.zathura.desktop" ];
in
{
"application/pdf" = reader;
editor = [ "emacs.desktop" ];
player = [ "mpv.desktop" ];
viewer = [ "imv-dir.desktop" ];
reader = [ "org.pwmt.zathura.desktop" ];
in {
# Documents
"application/pdf" = reader;
"application/epub" = reader;
"text/html" = browser;
"text/xml" = browser;
"text/plain" = editor;
# Text / markup
"text/plain" = editor;
"application/x-wine-extension-ini" = editor;
"text/html" = browser;
"text/xml" = browser;
"application/json" = browser;
"application/xml" = browser;
"application/xhtml+xml" = browser;
"application/xhtml_xml" = browser;
"application/rdf+xml" = browser;
"application/rss+xml" = browser;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
# Web / XML-ish
"application/json" = browser;
"application/xml" = browser;
"application/xhtml+xml" = browser;
"application/xhtml_xml" = browser;
"application/rdf+xml" = browser;
"application/rss+xml" = browser;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xht" = browser;
"application/x-extension-xht" = browser;
"application/x-extension-xhtml" = browser;
# URL schemes
"x-scheme-handler/about" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
# Files / directories
"inode/directory" = fileManager;
"application/zip" = fileManager;
# Audio
"audio/mpeg" = player;
"audio/aac" = player;
"audio/aac" = player;
"audio/flac" = player;
"audio/wav" = player;
"video/mp4" = player;
"video/vnd.mpegurl" = player;
"video/x-matroska" = player;
"audio/wav" = player;
# Video
"video/mp4" = player;
"video/vnd.mpegurl" = player;
"video/x-matroska" = player;
"application/x-mpegURL" = player;
"image/gif" = viewer;
# Images
"image/gif" = viewer;
"image/jpeg" = viewer;
"image/png" = viewer;
"image/png" = viewer;
"image/webp" = viewer;
};
};
@@ -85,13 +101,14 @@
userDirs = {
enable = true;
createDirectories = true;
download = "${config.home.homeDirectory}/Downloads";
documents = "${config.home.homeDirectory}/Documents";
desktop = "${config.home.homeDirectory}/Desktop";
videos = "${config.home.homeDirectory}/Videos";
pictures = "${config.home.homeDirectory}/Pictures";
music = "${config.home.homeDirectory}/Music";
templates = "${config.home.homeDirectory}/.local/share/templates";
download = "${config.home.homeDirectory}/Downloads";
documents = "${config.home.homeDirectory}/Documents";
desktop = "${config.home.homeDirectory}/Desktop";
videos = "${config.home.homeDirectory}/Videos";
pictures = "${config.home.homeDirectory}/Pictures";
music = "${config.home.homeDirectory}/Music";
templates = "${config.home.homeDirectory}/.local/share/templates";
publicShare = "${config.home.homeDirectory}/.local/share/public";
};
@@ -100,7 +117,8 @@
--enable-features=UseOzonePlatform
--ozone-platform-hint=wayland
'';
#configFile."hypr/hyprland.conf".onChange = "hyprctl reload";
# Example:
# configFile."hypr/hyprland.conf".onChange = "hyprctl reload";
};
}

View File

@@ -6,69 +6,77 @@
}:
{
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
enable = true;
dotDir = ".config/zsh";
plugins = [
#pkgs.zsh-autosuggestions
#pkgs.spaceship-prompt
# pkgs.zsh-autosuggestions
# pkgs.spaceship-prompt
];
autosuggestion = {
enable = true;
enable = true;
highlight = "fg=#64677a,bold,underline";
};
history = {
path = "$XDG_DATA_HOME/zsh/history";
};
sessionVariables = {
LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
HISTSIZE = 3000;
SAVEHIST = 3000;
CARGO_HOME = "$XDG_DATA_HOME/cargo";
GNUPGHOME = "$XDG_DATA_HOME/gnupg";
GOPATH = "$XDG_DATA_HOME/go";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
IPYTHONDIR = "$XDG_CONFIG_HOMEipython";
JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
LESSHISTFILE = "$XDG_CACHE_HOME/less/history";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";
PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc";
KERAS_HOME = "$XDG_STATE_HOME/keras";
RUSTUP_HOME = "$XDG_DATA_HOME/rustup";
XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
SSB_HOME = "$XDG_DATA_HOME/zoom";
HISTFILE = "$XDG_STATE_HOME/zsh/history";
LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
HISTSIZE = 3000;
SAVEHIST = 3000;
CARGO_HOME = "$XDG_DATA_HOME/cargo";
GNUPGHOME = "$XDG_DATA_HOME/gnupg";
GOPATH = "$XDG_DATA_HOME/go";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
IPYTHONDIR = "$XDG_CONFIG_HOMEipython";
JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
LESSHISTFILE = "$XDG_CACHE_HOME/less/history";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";
PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc";
KERAS_HOME = "$XDG_STATE_HOME/keras";
RUSTUP_HOME = "$XDG_DATA_HOME/rustup";
XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
SSB_HOME = "$XDG_DATA_HOME/zoom";
HISTFILE = "$XDG_STATE_HOME/zsh/history";
};
shellAliases = {
nix-switch = "sudo nixos-rebuild switch";
nix-switch = "sudo nixos-rebuild switch";
nix-upgrade = "sudo nixos-rebuild switch --upgrade";
nix-edit = "sudo vim /etc/nixos/configuration.nix";
ls = "exa -lag --icons";
upload = "~/.config/script/upload.sh";
record = "~/.config/script/record.sh";
speak = "~/.config/script/wisper.sh";
vim = "nvim";
cat = "bat";
anime = "~/repos/ani-cli/ani-cli";
hentai = "~/repos/and-scripts/fap-cli";
manga = "manga-cli";
yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t";
cd = "z";
rm = "rip";
df = "duf";
time = "hyperfine";
kami = "~/Documents/Rust/kami/target/release/kami";
calc = "cpc";
pdf = "mupdf";
emacs = "emacs";
river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river";
cp = "xcp";
wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts";
nix-edit = "sudo vim /etc/nixos/configuration.nix";
ls = "exa -lag --icons";
upload = "~/.config/script/upload.sh";
record = "~/.config/script/record.sh";
speak = "~/.config/script/wisper.sh";
vim = "nvim";
cat = "bat";
anime = "~/repos/ani-cli/ani-cli";
hentai = "~/repos/and-scripts/fap-cli";
manga = "manga-cli";
yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t";
cd = "z";
rm = "rip";
df = "duf";
time = "hyperfine";
kami = "~/Documents/Rust/kami/target/release/kami";
calc = "cpc";
pdf = "mupdf";
emacs = "emacs";
river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river";
cp = "xcp";
wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts";
};
initContent = ''
eval "$(${lib.getExe pkgs.zoxide} init zsh)"
eval "$(${lib.getExe pkgs.atuin} init zsh)"
source ${pkgs.spaceship-prompt}/lib/spaceship-prompt/spaceship.zsh
'';
envExtra = ''
${lib.getExe pkgs.macchina}
nixdev() {