refractor

This commit is contained in:
js0ny 2025-11-26 12:31:55 +00:00
parent 8f5d47590f
commit ab6da08e74
10 changed files with 138 additions and 77 deletions

View file

@ -51,6 +51,12 @@
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
elephant.url = "github:abenz1267/elephant";
walker = {
url = "github:abenz1267/walker";
inputs.elephant.follows = "elephant";
};
};
outputs = {
@ -72,6 +78,7 @@
nixcord,
catppuccin,
nix-index-database,
walker,
...
} @ inputs: let
overlays = [
@ -96,6 +103,9 @@
"nixvirt"
"polder"
];
darwinHosts = [
"zen"
];
mkNixosSystem = hostname:
nixpkgs.lib.nixosSystem {
@ -109,27 +119,22 @@
{nixpkgs.overlays = overlays;}
];
};
mkDarwinSystem = hostname:
nix-darwin.lib.darwinSystem {
system = "aarch64-darwin";
inherit specialArgs;
modules = [
./hosts/${hostname}
{nixpkgs.overlays = overlays;}
];
};
in {
# This will automatically generate nixOS config for `nixosHosts'
# Include the module ./hosts/${hostname} by default.
nixosConfigurations = nixpkgs.lib.genAttrs nixosHosts mkNixosSystem;
darwinConfigurations."zen" = nix-darwin.lib.darwinSystem {
system = "aarch64-darwin";
inherit specialArgs;
modules = [
./hosts/zen
];
};
darwinConfigurations = nixpkgs.lib.genAttrs darwinHosts mkDarwinSystem;
homeConfigurations = {
js0ny = home-manager.lib.homeManagerConfiguration {
pkgs = forSystem "x86_64-linux";
extraSpecialArgs = specialArgs;
modules = [
./users/js0ny
];
};
"js0ny@zephyrus" = home-manager.lib.homeManagerConfiguration {
pkgs = forSystem "x86_64-linux";
extraSpecialArgs = specialArgs;
@ -143,20 +148,7 @@
nixcord.homeModules.nixcord
catppuccin.homeModules.catppuccin
nix-index-database.homeModules.nix-index
];
};
"js0ny@nixvirt" = home-manager.lib.homeManagerConfiguration {
pkgs = forSystem "x86_64-linux";
extraSpecialArgs = specialArgs;
modules = [
./users/js0ny/nixvirt.nix
];
};
"js0ny@polder" = home-manager.lib.homeManagerConfiguration {
pkgs = forSystem "x86_64-linux";
extraSpecialArgs = specialArgs;
modules = [
./users/js0ny/polder.nix
walker.homeManagerModules.default
];
};
"js0ny@zen" = home-manager.lib.homeManagerConfiguration {

View file

@ -47,6 +47,7 @@
"telegram-desktop"
"io.github.kukuruzka165.materialgram"
"materialgram"
"com.ayugram.desktop"
"wechat"
];
};

View file

@ -42,6 +42,20 @@
''
)
);
# run wmname LG3D
mkLegacyJavaGUIApp = builtins.map (
p:
lib.hiPrio (
pkgs.runCommand "${p.name}-wrapped" {nativeBuildInputs = with pkgs; [makeWrapper wmname];} ''
mkdir -p $out/bin
ln -s ${p}/share $out/share
makeWrapper \
${p}/bin/${p.meta.mainProgram or p.pname} \
$out/bin/${p.meta.mainProgram or p.pname} \
--run 'wmname LG3D'
''
)
);
in {
home.packages = with pkgs;
[
@ -103,7 +117,6 @@ in {
bruno-cli
kicad
blender
logisim-evolution
onlyoffice-desktopeditors
wayland-bongocat
kdePackages.qttools
@ -111,6 +124,7 @@ in {
nur.repos.forkprince.helium-nightly
prismlauncher
obsidian
file-roller
]
++ (mkFcitxIM [
pkgs.neovim-qt
@ -118,6 +132,9 @@ in {
++ (mkElectronWayland [
# pkgs.ticktick
pkgs.cider-2
])
++ (mkLegacyJavaGUIApp [
pkgs.logisim-evolution
]);
home.sessionVariables = {

View file

@ -1,13 +0,0 @@
# ~/.config/nixcfgs/users/js0ny/polder.nix
{...}: {
imports = [
./default.nix
./programs/shell.nix
../../modules/home/dev/nix.nix
../../modules/home/programs/fzf.nix
../../modules/home/programs/lsd.nix
../../modules/home/programs/nvim.nix
];
home.stateVersion = "25.05";
}

View file

@ -9,7 +9,7 @@
iconTheme = config.currentUser.iconTheme;
explorer = config.currentUser.defaultExplorer;
explorerTerm = config.currentUser.defaultTerminalExplorer;
launcher = "rofi";
launcher = "walker";
kbdBacklightDev = config.currentHost.keyboardBacklightDevice;
kbdBacklightStep = config.currentHost.keyboardBacklightStep;
nirictl = import ./scripts.nix {inherit pkgs;};
@ -23,6 +23,7 @@ in {
"Mod+B".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "firefox" "firefox";
"Mod+Shift+B".hotkey-overlay.title = "Launch web browser in private mode";
"Mod+Shift+B".action = spawn "firefox" "--private-window";
"Mod+A".action = spawn-sh "${termRunner} --class=terminal-popup -e aichat --session";
"Mod+Shift+A".hotkey-overlay.title = "Focus or launch CherryStudio (AI assistant)";
"Mod+Shift+A".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "CherryStudio" "cherry-studio";
"Mod+O".hotkey-overlay.title = "Focus or launch Obsidian";
@ -30,10 +31,12 @@ in {
# TODO: Change "org.kde.dolphin" to a more generic explorer app id via config.currentUser
"Mod+E".hotkey-overlay.title = "Focus or launch file explorer";
"Mod+E".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "org.kde.dolphin" "dolphin";
"Mod+T".action = spawn-sh "${termRunner} --class=terminal-popup";
"Mod+Shift+T".action = spawn-sh "${termRunner} --class=${termRunner}-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop";
"Mod+Semicolon".action = spawn "neovide" "${config.home.homeDirectory}/Atelier";
"Mod+Apostrophe".action =
spawn-sh "EDITOR_MINIMAL=1 ${termRunner} -o close_on_child_death=yes --class=edit-clipboard-popup -e edit-clipboard --minimal";
spawn-sh "EDITOR_MINIMAL=1 ${termRunner} -o close_on_child_death=yes --class=terminal-popup -e edit-clipboard --minimal";
"Mod+Shift+Slash".action = show-hotkey-overlay;
@ -42,17 +45,19 @@ in {
"Mod+D".hotkey-overlay.title = "Run an Application: rofi";
"Mod+D".action =
spawn "${launcher}" "-show" "drun" "-icon-theme" "${iconTheme}" "-show-icons";
spawn "${launcher}" "-m" "desktopapplications";
"Alt+Space".hotkey-overlay.title = "Run an Application: rofi";
"Alt+Space".action =
spawn "${launcher}" "-show" "drun" "-icon-theme" "${iconTheme}" "-show-icons";
spawn "${launcher}" "-m" "desktopapplications";
"Mod+W".hotkey-overlay.title = "Search open Window: rofi";
"Mod+W".action =
spawn "${launcher}" "-show" "window" "-icon-theme" "${iconTheme}" "-show-icons";
spawn "${launcher}" "-m" "windows";
"Mod+V".action = spawn-sh "cliphist list | ${launcher} -dmenu | cliphist decode | wl-copy";
"Mod+V".action =
# spawn-sh "cliphist list | ${launcher} -dmenu | cliphist decode | wl-copy";
spawn "${launcher}" "-m" "clipboard";
"XF86AudioRaiseVolume".allow-when-locked = true;
"XF86AudioRaiseVolume".action =

View file

@ -5,7 +5,7 @@
{
matches = [
{
app-id = "^edit-clipboard-popup$";
app-id = "^.*terminal-popup$";
}
];
@ -100,7 +100,7 @@
}
{
app-id = "^com.ayugram.desktop$";
title = "^Media viewer$";
title = "^m|Media viewer$";
}
{
app-id = "^io.github.kukuruzka165.materialgram$";

View file

@ -33,7 +33,7 @@
'';
in {
imports = [
../../rofi.nix
../../walker.nix
./waybar
./swww.nix
./kanshi.nix

View file

@ -44,6 +44,7 @@ in {
shell = config.currentUser.defaultShell;
allow_remote_control = "socket-only";
listen_on = "unix:/tmp/kitty.sock";
confirm_os_window_close = 0;
};
keybindings = {
"cmd+c" = "copy_and_clear_or_interrupt";

View file

@ -3,6 +3,47 @@
# * when `rga-fzf`: nvim wrapper failed to launch
# * nvim wrapper reports error on parsing filename with spaces
gvim = "neovide.desktop";
simpleText = [
"text/plain"
"text/x-csrc" # .c
"text/x-chdr" # .h
"text/javascript"
"text/x-python"
"application/yaml" # .yaml, .yml
];
image = [
"image/jpeg"
"image/jpg"
"image/png"
"image/gif"
"image/bmp"
"image/avif"
"image/webp"
];
audio = [
"audio/flac"
"audio/vnd.wave" # .wav
];
browser = [
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
];
archive = [
"application/zip"
"application/x-rar"
"application/x-7z-compressed"
"application/x-tar"
"application/x-zstd-compressed-tar" # .tar.zst
];
# Image Viewer:
# gwenview: keyboard driven, high compatibility
# loupe: Performance is incredible
imageViewers = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
audioPlayers = "mpv.desktop;org.kde.elisa";
browsers = "firefox.desktop;chromium-browser.desktop";
archiveManager = "org.gnome.FileRoller.desktop;org.kde.ark.desktop;peazip.desktop";
in {
xdg.configFile."mimeapps.list".force = true;
xdg.mime.enable = true;
@ -25,30 +66,34 @@ in {
"text/markdown" = gvim;
# File Explorer
"inode/directory" = "org.kde.dolphin.desktop";
# Image Viewer:
# gwenview: keyboard driven, high compatibility
# loupe: Performance is incredible
"image/jpeg" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/jpg" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/png" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/gif" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/bmp" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/avif" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/webp" = "org.kde.gwenview.desktop;org.gnome.Loupe.desktop";
"image/jpeg" = imageViewers;
"image/jpg" = imageViewers;
"image/png" = imageViewers;
"image/gif" = imageViewers;
"image/bmp" = imageViewers;
"image/avif" = imageViewers;
"image/webp" = imageViewers;
# Audio:
# music: elisa: fully featured, good cjk support
# audio: mpv: simple and fast
"audio/flac" = "mpv.desktop;org.kde.elisa";
"audio/vnd.wave" = "mpv.desktop;org.kde.elisa"; # .wav
"audio/flac" = audioPlayers;
"audio/vnd.wave" = audioPlayers; # .wav
# Browser
"text/html" = "firefox.desktop;chromium-browser.desktop";
"x-scheme-handler/http" = "firefox.desktop;chromium-browser.desktop";
"x-scheme-handler/https" = "firefox.desktop;chromium-browser.desktop";
"text/html" = browsers;
"x-scheme-handler/http" = browsers;
"x-scheme-handler/https" = browsers;
# URL Scheme
"x-scheme-handler/tg" = "org.telegram.desktop.desktop";
"x-scheme-handler/tonsite" = "org.telegram.desktop.desktop";
# Archives
"application/zip" = archiveManager;
"application/x-rar" = archiveManager;
"application/x-7z-compressed" = archiveManager;
"application/x-tar" = archiveManager;
"application/x-zstd-compressed-tar" = archiveManager; # .tar.zst
};
};
home.sessionVariables.BROWSER = "firefox";

View file

@ -2,7 +2,18 @@
programs.walker = {
enable = true;
runAsService = true;
providers.prefixes = [
config = {
keybinds = {
next = ["Down" "ctrl j"];
previous = ["Up" "ctrl k"];
};
providers = {
default = [
"websearch"
"desktopapplications"
"calc"
];
prefixes = [
{
provider = "websearch";
prefix = "+";
@ -13,4 +24,6 @@
}
];
};
};
};
}