#1 hater of infinite recursion

This commit is contained in:
do butterflies cry? 2026-02-13 23:27:35 +10:00
parent 39e5c40e12
commit f66aa330c3
31 changed files with 946 additions and 851 deletions

View file

@ -1,10 +1,14 @@
{ config, inputs, lib, pkgs, ... }:
{
home.packages = with pkgs; [
(inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww.overrideAttrs (old: {
cargoBuildFlags = [ "--features=avif" ];
buildInputs = (old.buildInputs or []) ++ [ pkgs.dav1d ];
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.pkg-config ];
inputs,
upkgs,
system,
...
}: {
home.packages = [
(inputs.awww.packages.${system}.awww.overrideAttrs (old: {
cargoBuildFlags = ["--features=avif"];
buildInputs = (old.buildInputs or []) ++ [upkgs.dav1d];
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [upkgs.pkg-config];
}))
];
}

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{...}: {
programs.hyprlock = {
enable = true;
@ -16,17 +12,17 @@ in
general = {
disable_loading_bar = true;
hide_cursor = true;
immediate_render = true;
immediate_render = true;
};
background = [
{
monitor = "";
monitor = "";
path = "screenshot";
blur_passes = 3;
blur_size = 4;
}
path = "screenshot";
blur_passes = 3;
blur_size = 4;
}
];
};
};
@ -38,4 +34,3 @@ in
source = ./hypr;
};
}

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{...}: {
programs.rofi = {
enable = true;

View file

@ -1,102 +1,98 @@
{ config, inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{upkgs, ...}: {
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 20;
modules-left = [ "hyprland/workspaces" "wlr/taskbar" "custom/media" ];
modules-center = [ "clock" ];
modules-right = [ "cpu" "memory" "network" "pulseaudio" "privacy" "tray" ];
layer = "top";
position = "top";
height = 20;
modules-left = ["hyprland/workspaces" "wlr/taskbar" "custom/media"];
modules-center = ["clock"];
modules-right = ["cpu" "memory" "network" "pulseaudio" "privacy" "tray"];
# left
"hyprland/workspaces" = {
format = "{id}";
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 12;
};
"custom/media" = {
exec = "auroramedia";
return-type = "json";
escape = true;
restart-interval = 1;
};
"hyprland/workspaces" = {
format = "{id}";
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 12;
};
"custom/media" = {
exec = "auroramedia";
return-type = "json";
escape = true;
restart-interval = 1;
};
# center
"clock" = {
format = "{:%Y %b %a %d %H:%M:%S}";
interval = 1;
tooltip = false;
};
"clock" = {
format = "{:%Y %b %a %d %H:%M:%S}";
interval = 1;
tooltip = false;
};
# right
"cpu" = {
format = " {usage}%";
interval = 1;
};
"memory" = {
format = " {used:0.1f} / {total:0.1f} GiB";
interval = 1;
};
"network" = {
format = "{bandwidthUpBytes} {bandwidthDownBytes} {ifname}";
format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes} ";
format-ethernet = "󰈀 {bandwidthUpBytes} {bandwidthDownBytes} ";
format-disconnected = "no internet ~ rawr! ~ x3"; # empty format hides module
interval = 1;
max-length = 32;
};
"pulseaudio" = {
format = "{icon} {volume}%";
format-muted = " {volume}%";
format-icons = {
default = [
""
""
""
];
};
"scroll-step" = 5;
};
"privacy" = {
icon-size = 12;
icon-spacing = 5;
transition-duration = 200;
modules = [
{
type = "screenshare";
tooltip = true;
tooltip-icon-size = 12;
}
{
type = "audio-in";
tooltip = true;
tooltip-icon-size = 12;
}
];
};
"tray" = {
icon-size = 12;
spacing = 10;
# fixes spotify not showing up when "close button should minimize the Spotify window" is false
show-passive-items = true;
};
"cpu" = {
format = " {usage}%";
interval = 1;
};
"memory" = {
format = " {used:0.1f} / {total:0.1f} GiB";
interval = 1;
};
"network" = {
format = "{bandwidthUpBytes} {bandwidthDownBytes} {ifname}";
format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes} ";
format-ethernet = "󰈀 {bandwidthUpBytes} {bandwidthDownBytes} ";
format-disconnected = "no internet ~ rawr! ~ x3"; # empty format hides module
interval = 1;
max-length = 32;
};
"pulseaudio" = {
format = "{icon} {volume}%";
format-muted = " {volume}%";
format-icons = {
default = [
""
""
""
];
};
"scroll-step" = 5;
};
"privacy" = {
icon-size = 12;
icon-spacing = 5;
transition-duration = 200;
modules = [
{
type = "screenshare";
tooltip = true;
tooltip-icon-size = 12;
}
{
type = "audio-in";
tooltip = true;
tooltip-icon-size = 12;
}
];
};
"tray" = {
icon-size = 12;
spacing = 10;
# fixes spotify not showing up when "close button should minimize the Spotify window" is false
show-passive-items = true;
};
# i only enable this for debugging of window rules lol
"hyprland/window" = {
format = "{class} | {title}";
};
# i only enable this for debugging of window rules lol
"hyprland/window" = {
format = "{class} | {title}";
};
};
};
style = pkgs.writeTextFile {
style = upkgs.writeTextFile {
name = "waybar-style.css";
text = builtins.readFile ./style.css;
};

View file

@ -1,10 +1,10 @@
{ config, inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
inputs.iamb.packages."${stdenv.hostPlatform.system}".default
inputs,
system,
...
}: {
home.packages = [
inputs.iamb.packages.${system}.default
];
xdg.configFile."iamb/config.toml" = {

View file

@ -1,4 +1,8 @@
{ config, lib, inputs, upkgs, ... }: let
{
inputs,
spkgs,
...
}: let
utils = inputs.nixcats.utils;
in {
imports = [
@ -14,93 +18,105 @@ in {
# this will add the overlays from ./overlays and also,
# add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins
# It will not apply to overall system, just nixCats.
addOverlays = /* (import ./overlays inputs) ++ */ [
(utils.standardPluginOverlay inputs)
];
addOverlays =
/*
(import ./overlays inputs) ++
*/
[
(utils.standardPluginOverlay inputs)
];
# see the packageDefinitions below.
# This says which of those to install.
packageNames = [ "auroranvim" ];
packageNames = ["auroranvim"];
luaPath = "${./.}";
# the .replace vs .merge options are for modules based on existing configurations,
# they refer to how multiple categoryDefinitions get merged together by the module.
# for useage of this section, refer to :h nixCats.flake.outputs.categories
categoryDefinitions.replace = ({ pkgs, settings, categories, extra, name, mkNvimPlugin, ... }@packageDef: {
categoryDefinitions.replace = {
pkgs,
settings,
categories,
extra,
name,
mkNvimPlugin,
...
} @ packageDef: {
lspsAndRuntimeDeps = {
general = with pkgs; [
ripgrep
fd
];
treesitter = with pkgs; [
tree-sitter
];
lang = with pkgs; {
lua = [
lua-language-server
];
nix = [
nil
nix-doc
];
rust = with pkgs; [
cargo
ripgrep
fd
];
treesitter = with pkgs; [
tree-sitter
];
lang = with pkgs; {
lua = [
lua-language-server
];
nix = [
nil
nix-doc
];
rust = with pkgs; [
cargo
rust-analyzer
];
zig = with pkgs; [
upkgs.zls # FIX: using upkgs version as zls is broken rn ;-;
];
elixir = with pkgs; [
elixir-ls
];
gleam = with pkgs; [
gleam
];
java = with pkgs; [
jdt-language-server
];
zig = with pkgs; [
spkgs.zls # FIX: using spkgs version as zls is broken rn ;-;
];
elixir = with pkgs; [
elixir-ls
];
gleam = with pkgs; [
gleam
];
java = with pkgs; [
jdt-language-server
javaPackages.compiler.openjdk17
javaPackages.compiler.openjdk21
];
};
];
};
};
startupPlugins = {
general = with pkgs.vimPlugins; [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = with pkgs.vimPlugins; [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = with pkgs.vimPlugins; [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
};
optionalPlugins = {
general = with pkgs.vimPlugins; [
];
ui = with pkgs.vimPlugins; [
dressing-nvim
];
qol = with pkgs.vimPlugins; [
undotree
];
ui = with pkgs.vimPlugins; [
dressing-nvim
];
qol = with pkgs.vimPlugins; [
undotree
mini-hipatterns
];
telescope = with pkgs.vimPlugins; [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = with pkgs.vimPlugins; [
fyler-nvim
];
lsp = with pkgs.vimPlugins; [
nvim-lspconfig
];
completion = with pkgs.vimPlugins; [
blink-cmp
];
telescope = with pkgs.vimPlugins; [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = with pkgs.vimPlugins; [
fyler-nvim
];
lsp = with pkgs.vimPlugins; [
nvim-lspconfig
];
completion = with pkgs.vimPlugins; [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
@ -113,15 +129,15 @@ in {
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
lang = with pkgs.vimPlugins; {
java = [
nvim-jdtls
];
};
discord = with pkgs.vimPlugins; [
neocord # discord presence plugin :3
];
];
lang = with pkgs.vimPlugins; {
java = [
nvim-jdtls
];
};
discord = with pkgs.vimPlugins; [
neocord # discord presence plugin :3
];
};
# shared libraries to be added to LD_LIBRARY_PATH
@ -132,25 +148,25 @@ in {
];
};
environmentVariables = {
lang = {
lang = {
rust = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${pkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java = {
java = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
};
};
};
};
extraWrapperArgs = {
test = [
'' --set CATTESTVAR2 "It worked again!"''
''--set CATTESTVAR2 "It worked again!"''
];
};
# lists of the functions you would have passed to
@ -161,50 +177,50 @@ in {
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = {
test = (_:[]);
test = _: [];
};
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = {
test = [ (_:[]) ];
test = [(_: [])];
};
});
};
# see :help nixCats.flake.outputs.packageDefinitions
packageDefinitions.replace = {
# these are the names of your packages
# you can include as many as you wish.
auroranvim = {pkgs , ... }: {
auroranvim = {pkgs, ...}: {
# they contain a settings set defined above
# see :help nixCats.flake.outputs.settings
settings = {
wrapRc = true;
# IMPORTANT:
# your alias may not conflict with your other packages.
aliases = [ "auroravim" "auravim" "foxyvim" "avix" "fvix" "auim" ];
aliases = ["auroravim" "auravim" "foxyvim" "avix" "fvix" "auim"];
};
# and a set of categories that you want
# (and other information to pass to lua)
categories = {
general = true;
ui = true;
qol = true;
telescope = true;
fyler = true;
lsp = true;
completion = true;
treesitter = true;
discord = false;
ui = true;
qol = true;
telescope = true;
fyler = true;
lsp = true;
completion = true;
treesitter = true;
discord = false;
lang = {
lua = true;
nix = true;
rust = true;
zig = true;
elixir = true;
gleam = true;
java = true;
};
lang = {
lua = true;
nix = true;
rust = true;
zig = true;
elixir = true;
gleam = true;
java = true;
};
};
};
};

View file

@ -1,5 +1,4 @@
{ config, inputs, lib, pkgs, ... }:
{
{inputs, ...}: {
imports = [
inputs.nixcord.homeModules.nixcord
];
@ -20,125 +19,125 @@
];
plugins = {
anonymiseFileNames = {
enable = true;
anonymiseByDefault = true;
method = 0;
randomisedLength = 16;
};
betterSessions = {
backgroundCheck = true;
checkInterval = 1;
};
biggerStreamPreview.enable = true;
callTimer.enable = true;
fixYoutubeEmbeds.enable = true;
fixSpotifyEmbeds.enable = true;
tidalEmbeds.enable = true;
youtubeAdblock.enable = true;
followVoiceUser.enable = true;
friendsSince.enable = true;
ircColors = {
enable = true;
lightness = 80;
memberListColors = true;
applyColorOnlyInDms = false;
applyColorOnlyToUsersWithoutColor = false;
};
messageLogger = {
enable = true;
showEditDiffs = true;
separatedDiffs = false;
};
fakeNitro.enable = true;
ghosted.enable = true;
noF1.enable = true;
noMaskedUrlPaste.enable = true;
messageLatency = {
enable = false;
latency = -1;
showMillis = true;
};
openInApp.enable = true;
crashHandler.enable = true;
disableCallIdle.enable = true;
experiments.enable = true;
expressionCloner.enable = true;
favoriteGifSearch.enable = true;
fixImagesQuality.enable = true;
forceOwnerCrown.enable = true;
forwardAnywhere.enable = true;
spotifyCrack.enable = true;
spotifyShareCommands.enable = true;
spotifyControls.enable = true;
fullUserInChatbox.enable = true;
gifPaste.enable = true;
ignoreActivities = {
enable = true;
ignorePlaying = true;
ignoreStreaming = true;
ignoreListening = true;
ignoreWatching = true;
ignoreCompeting = true;
};
imageLink.enable = true;
imageZoom.enable = true;
memberCount.enable = true;
noDevtoolsWarning.enable = true;
noUnblockToJump.enable = true;
pauseInvitesForever.enable = true;
permissionsViewer.enable = true;
pictureInPicture = {
enable = true;
loop = true;
};
platformIndicators.enable = true;
previewMessage.enable = true;
relationshipNotifier.enable = true;
revealAllSpoilers.enable = true;
serverInfo.enable = true;
serverListIndicators.enable = true;
showHiddenChannels.enable = true;
showHiddenThings.enable = true;
showTimeoutDuration = {
enable = true;
displayStyle = "tooltip";
};
silentTyping = {
enable = true;
enabledGlobally = false;
};
startupTimings.enable = true;
typingIndicator.enable = true;
unlockedAvatarZoom = {
enable = true;
zoomMultiplier = 4.0;
};
userMessagesPronouns.enable = true;
validUser.enable = true;
validReply.enable = true;
viewIcons = {
enable = true;
format = "webp";
imgSize = "4096";
};
voiceChatDoubleClick.enable = true;
voiceDownload.enable = true;
voiceMessages = {
enable = true;
noiseSuppression = false;
echoCancellation = true;
};
volumeBooster.enable = true;
webKeybinds.enable = true;
webScreenShareFixes.enable = true;
whoReacted.enable = true;
whosWatching.enable = true;
quickReply.enable = true;
questCompleter.enable = true;
shikiCodeblocks = {
enable = true;
useDevIcon = "COLOR";
theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/kanagawa-wave.json";
enable = true;
anonymiseByDefault = true;
method = 0;
randomisedLength = 16;
};
betterSessions = {
backgroundCheck = true;
checkInterval = 1;
};
biggerStreamPreview.enable = true;
callTimer.enable = true;
fixYoutubeEmbeds.enable = true;
fixSpotifyEmbeds.enable = true;
tidalEmbeds.enable = true;
youtubeAdblock.enable = true;
followVoiceUser.enable = true;
friendsSince.enable = true;
ircColors = {
enable = true;
lightness = 80;
memberListColors = true;
applyColorOnlyInDms = false;
applyColorOnlyToUsersWithoutColor = false;
};
messageLogger = {
enable = true;
showEditDiffs = true;
separatedDiffs = false;
};
fakeNitro.enable = true;
ghosted.enable = true;
noF1.enable = true;
noMaskedUrlPaste.enable = true;
messageLatency = {
enable = false;
latency = -1;
showMillis = true;
};
openInApp.enable = true;
crashHandler.enable = true;
disableCallIdle.enable = true;
experiments.enable = true;
expressionCloner.enable = true;
favoriteGifSearch.enable = true;
fixImagesQuality.enable = true;
forceOwnerCrown.enable = true;
forwardAnywhere.enable = true;
spotifyCrack.enable = true;
spotifyShareCommands.enable = true;
spotifyControls.enable = true;
fullUserInChatbox.enable = true;
gifPaste.enable = true;
ignoreActivities = {
enable = true;
ignorePlaying = true;
ignoreStreaming = true;
ignoreListening = true;
ignoreWatching = true;
ignoreCompeting = true;
};
imageLink.enable = true;
imageZoom.enable = true;
memberCount.enable = true;
noDevtoolsWarning.enable = true;
noUnblockToJump.enable = true;
pauseInvitesForever.enable = true;
permissionsViewer.enable = true;
pictureInPicture = {
enable = true;
loop = true;
};
platformIndicators.enable = true;
previewMessage.enable = true;
relationshipNotifier.enable = true;
revealAllSpoilers.enable = true;
serverInfo.enable = true;
serverListIndicators.enable = true;
showHiddenChannels.enable = true;
showHiddenThings.enable = true;
showTimeoutDuration = {
enable = true;
displayStyle = "tooltip";
};
silentTyping = {
enable = true;
enabledGlobally = false;
};
startupTimings.enable = true;
typingIndicator.enable = true;
unlockedAvatarZoom = {
enable = true;
zoomMultiplier = 4.0;
};
userMessagesPronouns.enable = true;
validUser.enable = true;
validReply.enable = true;
viewIcons = {
enable = true;
format = "webp";
imgSize = "4096";
};
voiceChatDoubleClick.enable = true;
voiceDownload.enable = true;
voiceMessages = {
enable = true;
noiseSuppression = false;
echoCancellation = true;
};
volumeBooster.enable = true;
webKeybinds.enable = true;
webScreenShareFixes.enable = true;
whoReacted.enable = true;
whosWatching.enable = true;
quickReply.enable = true;
questCompleter.enable = true;
shikiCodeblocks = {
enable = true;
useDevIcon = "COLOR";
theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/kanagawa-wave.json";
};
};
};

View file

@ -1,8 +1,12 @@
{ inputs, lib, pkgs, ... }:
let
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
{
inputs,
upkgs,
system,
...
}: let
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${system};
in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
imports = [inputs.spicetify-nix.homeManagerModules.default];
programs.spicetify = {
enable = true;
@ -10,15 +14,17 @@ in {
adblock
shuffle
keyboardShortcut
({
src = (pkgs.fetchFromGitHub {
owner = "Spikerko";
repo = "spicy-lyrics";
rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648";
hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw=";
}) + /builds;
name = "spicy-lyrics.mjs";
})
{
src =
(upkgs.fetchFromGitHub {
owner = "Spikerko";
repo = "spicy-lyrics";
rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648";
hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw=";
})
+ /builds;
name = "spicy-lyrics.mjs";
}
];
theme = spicetifyPkgs.themes.comfy;
colorScheme = "Sakura";

View file

@ -1,8 +1,8 @@
{ config, inputs, lib, pkgs, ... }:
{
{upkgs, ...}: {
# optional dependencies can be found here:
# https://yazi-rs.github.io/docs/installation/
home.packages = with pkgs; [ # dependencies
home.packages = with upkgs; [
# dependencies
ripdrag
];
@ -22,9 +22,15 @@
keymap = {
mgr.prepend_keymap = [
# drag and drop!!
{ on = [ "<S-c>" ]; run = ''shell "ripdrag -x -a \"$@\"" --confirm''; }
{
on = ["<S-c>"];
run = ''shell "ripdrag -x -a \"$@\"" --confirm'';
}
# copy hovered file to clipboard
{ on = [ "<S-y>" ]; run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list''; }
{
on = ["<S-y>"];
run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list'';
}
];
};
@ -34,36 +40,122 @@
theme = {
icon = {
dirs = [
{ name = ".config"; text = ""; fg = "red"; }
{ name = ".git"; text = ""; fg = "blue"; }
{ name = ".github"; text = ""; fg = "blue"; }
{ name = ".npm"; text = ""; fg = "blue"; }
{ name = "Desktop"; text = ""; fg = "magenta"; }
{ name = "Documents"; text = ""; fg = "magenta"; }
{ name = "Downloads"; text = ""; fg = "red"; }
{ name = "Library"; text = ""; fg = "magenta"; }
{ name = "Movies"; text = ""; fg = "magenta"; }
{ name = "Music"; text = ""; fg = "magenta"; }
{ name = "Pictures"; text = ""; fg = "magenta"; }
{ name = "Public"; text = ""; fg = "magenta"; }
{ name = "Videos"; text = ""; fg = "red"; }
{
name = ".config";
text = "";
fg = "red";
}
{
name = ".git";
text = "";
fg = "blue";
}
{
name = ".github";
text = "";
fg = "blue";
}
{
name = ".npm";
text = "";
fg = "blue";
}
{
name = "Desktop";
text = "";
fg = "magenta";
}
{
name = "Documents";
text = "";
fg = "magenta";
}
{
name = "Downloads";
text = "";
fg = "red";
}
{
name = "Library";
text = "";
fg = "magenta";
}
{
name = "Movies";
text = "";
fg = "magenta";
}
{
name = "Music";
text = "";
fg = "magenta";
}
{
name = "Pictures";
text = "";
fg = "magenta";
}
{
name = "Public";
text = "";
fg = "magenta";
}
{
name = "Videos";
text = "";
fg = "red";
}
];
conds = [
# special files
{ "if" = "orphan"; text = ""; }
{ "if" = "link"; text = ""; }
{ "if" = "block"; text = ""; }
{ "if" = "char"; text = ""; }
{ "if" = "fifo"; text = ""; }
{ "if" = "sock"; text = ""; }
{ "if" = "sticky"; text = ""; }
{ "if" = "dummy"; text = ""; }
conds = [
# special files
{
"if" = "orphan";
text = "";
}
{
"if" = "link";
text = "";
}
{
"if" = "block";
text = "";
}
{
"if" = "char";
text = "";
}
{
"if" = "fifo";
text = "";
}
{
"if" = "sock";
text = "";
}
{
"if" = "sticky";
text = "";
}
{
"if" = "dummy";
text = "";
}
# fallback
{ "if" = "dir"; text = ""; fg = "blue"; }
{ "if" = "exec"; text = ""; }
{ "if" = "!dir"; text = ""; }
];
# fallback
{
"if" = "dir";
text = "";
fg = "blue";
}
{
"if" = "exec";
text = "";
}
{
"if" = "!dir";
text = "";
}
];
};
};
};
@ -76,7 +168,7 @@
force = true;
text = ''
[filechooser]
cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
cmd=${upkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
default_dir=$HOME
env=TERMCMD='kitty --title filechooser'
open_mode=suggested

View file

@ -1,9 +1,5 @@
{ config, inputs, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
{upkgs, ...}: {
home.packages = with upkgs; [
libnotify
];
@ -12,21 +8,21 @@ in
settings = {
global = {
monitor = "DP-3"; # second monitor
origin = "top-left";
layer = "top"; # above windows, below fullscreen
offset = "(16, 24)";
origin = "top-left";
layer = "top"; # above windows, below fullscreen
offset = "(16, 24)";
padding = 4;
gap_size = 4;
frame_width = 2;
padding = 4;
gap_size = 4;
frame_width = 2;
font = "DepartureMono Nerd Font 8";
font = "DepartureMono Nerd Font 8";
corner_radius = 12;
icon_corner_radius = 12;
corner_radius = 12;
icon_corner_radius = 12;
progress_bar = true;
progress_bar_height = 16;
progress_bar = true;
progress_bar_height = 16;
};
};
};

View file

@ -1,20 +1,19 @@
{ config, inputs, lib, pkgs, ... }:
{
home.packages = with pkgs; [
{upkgs, ...}: {
home.packages = with upkgs; [
keepassxc
];
systemd.user.services.keepassxc = {
Unit = {
Description = "KeePassXC password manager";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
After = ["graphical-session-pre.target"];
PartOf = ["graphical-session.target"];
};
Service = {
Description = "${pkgs.keepassxc}/bin/keepassxc";
Description = "${upkgs.keepassxc}/bin/keepassxc";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
Install.WantedBy = ["graphical-session.target"];
};
xdg.configFile."keepassxc/keepassxc.ini" = {

View file

@ -1,7 +1,11 @@
{ inputs, lib, pkgs, config, osConfig, ... }:
{
{
config,
osConfig,
...
}: {
# writes ./client.conf to ~/.config/pulse/client.conf
xdg.configFile."pulse/client.conf".text = builtins.replaceStrings
xdg.configFile."pulse/client.conf".text =
builtins.replaceStrings
["{uid}"]
# make sure ur user id is set!!!
["${toString osConfig.users.users.${config.home.username}.uid}"]

View file

@ -1,5 +1,4 @@
{ inputs, lib, pkgs, config, ... }:
{
{...}: {
# writes ./config to ~/.config/wireplumber
xdg.configFile."wireplumber" = {
recursive = true;

View file

@ -1,6 +1,5 @@
{ inputs, lib, pkgs, ... }:
{
home.packages = with pkgs; [
{upkgs, ...}: {
home.packages = with upkgs; [
fastfetch # displays system info! x3
];

View file

@ -1,5 +1,4 @@
{ inputs, lib, pkgs, ... }:
{
{...}: {
programs = {
zoxide = {
enable = true;
@ -12,14 +11,14 @@
hyfetch = {
enable = true;
settings = {
preset = "genderfae";
mode = "rgb";
backend = "fastfetch";
color_align = {
mode = "vertical";
};
auto_detect_light_dark = true;
pride_month_disable = false;
preset = "genderfae";
mode = "rgb";
backend = "fastfetch";
color_align = {
mode = "vertical";
};
auto_detect_light_dark = true;
pride_month_disable = false;
};
};
};

View file

@ -1,8 +1,4 @@
{ inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{...}: {
# the theme file template for zellij is in wallust
programs.zellij = {
@ -10,8 +6,8 @@ in
enableZshIntegration = false;
extraConfig = ''
theme "test"
show_startup_tips false
theme "test"
show_startup_tips false
'';
};
}

View file

@ -1,8 +1,4 @@
{ inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{upkgs, ...}: {
programs.zsh = {
enable = true;
enableCompletion = true;
@ -12,22 +8,22 @@ in
plugins = [
{
name = "vi-mode";
src = pkgs.zsh-vi-mode;
src = upkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}
];
initContent = ''
# yazi wrapper!!!
function yazi() {
local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d ''' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
# yazi wrapper!!!
function yazi() {
local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d ''' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
hyfetch # oh i'm so gay!! :3
hyfetch # oh i'm so gay!! :3
'';
shellAliases = {
@ -87,4 +83,3 @@ in
theme = "agnoster";
};
}

View file

@ -1,20 +1,16 @@
{ config, inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
{upkgs, ...}: {
home.packages = with upkgs; [
hellwal
];
# writes ./wallust.toml to ~/.config/hellwal/wallust.toml
#xdg.configFile."wallust/wallust.toml" = {
#source = ./wallust.toml;
#source = ./wallust.toml;
#};
# writes ./templates to ~/.config/hellwal/templates
#xdg.configFile."hellwal/templates" = {
#recursive = true;
#source = ./templates;
#recursive = true;
#source = ./templates;
#};
}

View file

@ -1,9 +1,5 @@
{ config, inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
{upkgs, ...}: {
home.packages = with upkgs; [
wallust
];

View file

@ -1,9 +1,4 @@
{ config, inputs, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
hyprland-git = inputs.hyprland-git.packages.${pkgs.stdenv.hostPlatform.system};
in
{
{...}: {
wayland.windowManager.hyprland = {
enable = true;
package = null;
@ -37,44 +32,44 @@ in
# startup programs
exec-once = [
"waybar"
"awww-daemon"
"waybar"
"awww-daemon"
"wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store"
"wl-clip-persist --clipboard regular"
"wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store"
"wl-clip-persist --clipboard regular"
"playerctld daemon"
"playerctld daemon"
# swaps around the 3rd and 4th workspace because they always start
# in the wrong order
"hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 1"
# in the wrong order
"hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 1"
];
# monitor configuration
monitor = [
# note: display stream compression pending for open source
# amd gpu driver and my monitor (VG279QM) only supports DP 1.2
# so no >240hz atm
"DP-2, 1920x1080@239.76, 0x0, 1" # main monitor
"DP-3, 1920x1080@143.61, 1920x0, 1" # second monitor
"HDMI-A-2, 2560x1440@59.95, 3840x0, 1" # third monitor (drawing tablet)
"HDMI-A-1, 1920x1080@60.00, -1920x0, 1" # tv
# note: display stream compression pending for open source
# amd gpu driver and my monitor (VG279QM) only supports DP 1.2
# so no >240hz atm
"DP-2, 1920x1080@239.76, 0x0, 1" # main monitor
"DP-3, 1920x1080@143.61, 1920x0, 1" # second monitor
"HDMI-A-2, 2560x1440@59.95, 3840x0, 1" # third monitor (drawing tablet)
"HDMI-A-1, 1920x1080@60.00, -1920x0, 1" # tv
];
general = {
gaps_in = 5;
gaps_out = "0, 10, 10, 10";
border_size = 2;
layout = "dwindle";
gaps_in = 5;
gaps_out = "0, 10, 10, 10";
border_size = 2;
layout = "dwindle";
};
plugin = {
# options at https://github.com/hyprwm/hyprland-plugins/tree/main/hyprscrolling
hyprscrolling = {
fullscreen_on_one_column = false;
column_width = 1.0;
};
# options at https://github.com/hyprwm/hyprland-plugins/tree/main/hyprscrolling
hyprscrolling = {
fullscreen_on_one_column = false;
column_width = 1.0;
};
};
dwindle = {
@ -82,23 +77,23 @@ in
};
decoration = {
rounding = 8;
active_opacity = 1.00;
inactive_opacity = 1.00;
rounding = 8;
blur = {
xray = true;
size = 6;
passes = 2;
#vibrancy = 0.3;
special = true;
};
active_opacity = 1.00;
inactive_opacity = 1.00;
blur = {
xray = true;
size = 6;
passes = 2;
#vibrancy = 0.3;
special = true;
};
};
bezier = [
"workspace_curve, 0.56,0.19,0.24,0.58"
"workspace_in_curve, 0.56,0.19,0.56,0.99"
"workspace_in_curve, 0.56,0.19,0.56,0.99"
];
animation = [
@ -109,11 +104,11 @@ in
input = {
repeat_rate = 50;
repeat_delay = 300;
repeat_delay = 300;
sensitivity = 0; # 0 = no modification
accel_profile = "flat";
force_no_accel = false; # not recommended to turn on
sensitivity = 0; # 0 = no modification
accel_profile = "flat";
force_no_accel = false; # not recommended to turn on
};
cursor.no_hardware_cursors = true;
@ -125,66 +120,66 @@ in
# bindings
bind = [
# binds for applications
"$mod, t, exec, $terminal"
"$mod, r, exec, $browser"
"$mod, e, exec, $explorer"
# binds for applications
"$mod, t, exec, $terminal"
"$mod, r, exec, $browser"
"$mod, e, exec, $explorer"
# binds for rofi
"$mod, d, exec, pkill -x rofi || rofi -show drun -show-icons"
"alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons"
"$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy"
# binds for rofi
"$mod, d, exec, pkill -x rofi || rofi -show drun -show-icons"
"alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons"
"$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy"
# screenshots
# todo: add active monitor
"$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region
"$mod+alt, s, exec, grim -g \"\$(slurp -o)\" - | wl-copy" # monitor
"$mod+ctrl, s, exec, grim - | wl-copy" # all monitors
# screenshots
# todo: add active monitor
"$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region
"$mod+alt, s, exec, grim -g \"\$(slurp -o)\" - | wl-copy" # monitor
"$mod+ctrl, s, exec, grim - | wl-copy" # all monitors
# hyprpicker
"$mod, n, exec, hyprpicker -v"
# hyprlock
"$mod+alt, y, exec, hyprlock"
# task manager
"$mod+ctrl, escape, exec, task-manager.sh"
"$mod+ctrl, grave, exec, task-manager.sh"
# hyprpicker
"$mod, n, exec, hyprpicker -v"
# hyprlock
"$mod+alt, y, exec, hyprlock"
# task manager
"$mod+ctrl, escape, exec, task-manager.sh"
"$mod+ctrl, grave, exec, task-manager.sh"
# media binds (more in binde below)
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
"Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle"
"Shift_R, XF86AudioNext, exec, playerctl loop track"
# media binds (more in binde below)
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
"Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle"
"Shift_R, XF86AudioNext, exec, playerctl loop track"
# manage windows / session
"$mod+alt, c, killactive"
"$mod, f, fullscreen"
"$mod, x, togglefloating"
"$mod, i, togglesplit"
"$mod+Alt, Delete, exit" # exit hyprland
"$mod+alt, c, killactive"
"$mod, f, fullscreen"
"$mod, x, togglefloating"
"$mod, i, togglesplit"
"$mod+Alt, Delete, exit" # exit hyprland
# move focus
"$mod, h, movefocus, l"
"$mod, j, movefocus, d"
"$mod, k, movefocus, u"
"$mod, l, movefocus, r"
"$mod, h, movefocus, l"
"$mod, j, movefocus, d"
"$mod, k, movefocus, u"
"$mod, l, movefocus, r"
# move window
"$mod+alt, h, movewindow, l"
"$mod+alt, j, movewindow, d"
"$mod+alt, k, movewindow, u"
"$mod+alt, l, movewindow, r"
"$mod+alt, h, movewindow, l"
"$mod+alt, j, movewindow, d"
"$mod+alt, k, movewindow, u"
"$mod+alt, l, movewindow, r"
# swap window
"$mod+ctrl, h, swapwindow, l"
"$mod+ctrl, j, swapwindow, d"
"$mod+ctrl, k, swapwindow, u"
"$mod+ctrl, l, swapwindow, r"
"$mod+ctrl, h, swapwindow, l"
"$mod+ctrl, j, swapwindow, d"
"$mod+ctrl, k, swapwindow, u"
"$mod+ctrl, l, swapwindow, r"
# move column (hyprscrolling)
"$mod, period, layoutmsg, move +col"
"$mod, comma, layoutmsg, move -col"
# move column (hyprscrolling)
"$mod, period, layoutmsg, move +col"
"$mod, comma, layoutmsg, move -col"
# focus monitor
#"$mod+Ctrl+Tab, 1, focusmonitor, DP-2"
@ -192,114 +187,114 @@ in
#"$mod+Ctrl+Tab, 3, focusmonitor, HDMI-A-2"
#"$mod+Ctrl+Tab, 4, focusmonitor, HDMI-A-1"
# move workspace to monitor
# move workspace to monitor
#"$mod+Tab, 1, movecurrentworkspacetomonitor, DP-2"
#"$mod+Tab, 2, movecurrentworkspacetomonitor, DP-3"
#"$mod+Tab, 3, movecurrentworkspacetomonitor, HDMI-A-2"
#"$mod+Tab, 4, movecurrentworkspacetomonitor, HDMI-A-1"
# special workspace
"$mod, escape, togglespecialworkspace"
"$mod+shift, escape, movetoworkspace, special"
"$mod+alt, escape, movetoworkspacesilent, special"
"$mod, grave, togglespecialworkspace"
"$mod+shift, grave, movetoworkspace, special"
"$mod+alt, grave, movetoworkspacesilent, special"
# special workspace
"$mod, escape, togglespecialworkspace"
"$mod+shift, escape, movetoworkspace, special"
"$mod+alt, escape, movetoworkspacesilent, special"
"$mod, grave, togglespecialworkspace"
"$mod+shift, grave, movetoworkspace, special"
"$mod+alt, grave, movetoworkspacesilent, special"
# switch workspaces
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod, minus, workspace, 11"
"$mod, equal, workspace, 12"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod, minus, workspace, 11"
"$mod, equal, workspace, 12"
# move focused window to workspace
"$mod+shift, 1, movetoworkspace, 1"
"$mod+shift, 2, movetoworkspace, 2"
"$mod+shift, 3, movetoworkspace, 3"
"$mod+shift, 4, movetoworkspace, 4"
"$mod+shift, 5, movetoworkspace, 5"
"$mod+shift, 6, movetoworkspace, 6"
"$mod+shift, 7, movetoworkspace, 7"
"$mod+shift, 8, movetoworkspace, 8"
"$mod+shift, 9, movetoworkspace, 9"
"$mod+shift, 0, movetoworkspace, 10"
"$mod+shift, minus, movetoworkspace, 11"
"$mod+shift, equal, movetoworkspace, 12"
"$mod+shift, 1, movetoworkspace, 1"
"$mod+shift, 2, movetoworkspace, 2"
"$mod+shift, 3, movetoworkspace, 3"
"$mod+shift, 4, movetoworkspace, 4"
"$mod+shift, 5, movetoworkspace, 5"
"$mod+shift, 6, movetoworkspace, 6"
"$mod+shift, 7, movetoworkspace, 7"
"$mod+shift, 8, movetoworkspace, 8"
"$mod+shift, 9, movetoworkspace, 9"
"$mod+shift, 0, movetoworkspace, 10"
"$mod+shift, minus, movetoworkspace, 11"
"$mod+shift, equal, movetoworkspace, 12"
# move focused window to workspace silently
"$mod+alt, 1, movetoworkspacesilent, 1"
"$mod+alt, 2, movetoworkspacesilent, 2"
"$mod+alt, 3, movetoworkspacesilent, 3"
"$mod+alt, 4, movetoworkspacesilent, 4"
"$mod+alt, 5, movetoworkspacesilent, 5"
"$mod+alt, 6, movetoworkspacesilent, 6"
"$mod+alt, 7, movetoworkspacesilent, 7"
"$mod+alt, 8, movetoworkspacesilent, 8"
"$mod+alt, 9, movetoworkspacesilent, 9"
"$mod+alt, 0, movetoworkspacesilent, 10"
"$mod+alt, minus, movetoworkspacesilent, 11"
"$mod+alt, equal, movetoworkspacesilent, 12"
"$mod+alt, 1, movetoworkspacesilent, 1"
"$mod+alt, 2, movetoworkspacesilent, 2"
"$mod+alt, 3, movetoworkspacesilent, 3"
"$mod+alt, 4, movetoworkspacesilent, 4"
"$mod+alt, 5, movetoworkspacesilent, 5"
"$mod+alt, 6, movetoworkspacesilent, 6"
"$mod+alt, 7, movetoworkspacesilent, 7"
"$mod+alt, 8, movetoworkspacesilent, 8"
"$mod+alt, 9, movetoworkspacesilent, 9"
"$mod+alt, 0, movetoworkspacesilent, 10"
"$mod+alt, minus, movetoworkspacesilent, 11"
"$mod+alt, equal, movetoworkspacesilent, 12"
# move current workspace to monitor
"$mod+shift+alt, 1, movecurrentworkspacetomonitor, DP-2"
"$mod+shift+alt, 2, movecurrentworkspacetomonitor, DP-3"
"$mod+shift+alt, 3, movecurrentworkspacetomonitor, HDMI-A-2"
"$mod+shift+alt, 4, movecurrentworkspacetomonitor, HDMI-A-1"
# move current workspace to monitor
"$mod+shift+alt, 1, movecurrentworkspacetomonitor, DP-2"
"$mod+shift+alt, 2, movecurrentworkspacetomonitor, DP-3"
"$mod+shift+alt, 3, movecurrentworkspacetomonitor, HDMI-A-2"
"$mod+shift+alt, 4, movecurrentworkspacetomonitor, HDMI-A-1"
];
# bindings for mouse
bindm = [
"$mod, mouse:272, movewindow" # left click
"$mod, mouse:273, resizewindow" # right click
"$mod, mouse:272, movewindow" # left click
"$mod, mouse:273, resizewindow" # right click
];
# repeating binds, repeats when held
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-"
"Shift_R, XF86AudioRaiseVolume, exec, playerctl volume 0.05+"
"Shift_R, XF86AudioLowerVolume, exec, playerctl volume 0.05-"
"Shift_R, XF86AudioRaiseVolume, exec, playerctl volume 0.05+"
"Shift_R, XF86AudioLowerVolume, exec, playerctl volume 0.05-"
# resize window
# variable for `resizeactive` is (x, y)
# starting at 0, 0 in the top left
# meaning:
# -x = left
# +x = right
# -y = up
# +y = down
"$mod+ctrl+shift, h, resizeactive, -10 0"
"$mod+ctrl+shift, j, resizeactive, 0 10"
"$mod+ctrl+shift, k, resizeactive, 0 -10"
"$mod+ctrl+shift, l, resizeactive, 10 0"
# variable for `resizeactive` is (x, y)
# starting at 0, 0 in the top left
# meaning:
# -x = left
# +x = right
# -y = up
# +y = down
"$mod+ctrl+shift, h, resizeactive, -10 0"
"$mod+ctrl+shift, j, resizeactive, 0 10"
"$mod+ctrl+shift, k, resizeactive, 0 -10"
"$mod+ctrl+shift, l, resizeactive, 10 0"
];
layerrule = [
#"blur, rofi"
#"ignorezero, rofi"
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
#"blur, rofi"
#"ignorezero, rofi"
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
];
env = [
"EDITOR,auravim"
"EDITOR,auravim"
"XCURSOR_THEME,Bunny (Icy) and Strawberries"
"XCURSOR_SIZE,24"
"HYPRCURSOR_THEME,Bunny (Icy) and Strawberries"
"HYPRCURSOR_SIZE,24"
"XCURSOR_THEME,Bunny (Icy) and Strawberries"
"XCURSOR_SIZE,24"
"HYPRCURSOR_THEME,Bunny (Icy) and Strawberries"
"HYPRCURSOR_SIZE,24"
"QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORM,wayland"
];
};
};

View file

@ -1,14 +1,10 @@
{ config, inputs, pkgs, upkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{spkgs, ...}: {
wayland.windowManager.river = let
layout = "rivertile";
in {
enable = true;
xwayland.enable = true;
package = upkgs.river-classic; # FIX: using upkgs version as zls is broken rn ;-;
enable = true;
xwayland.enable = true;
package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
settings = let
main = "Super";
@ -22,61 +18,61 @@ in
border-width = 1;
spawn = [
''${layout}''
''${layout}''
"awww-daemon"
"waybar"
"awww-daemon"
"waybar"
];
map.normal = {
"${main} C" = "close"; # close focused window
"${main}+Alt Delete" = "exit"; # exit river
"${main} C" = "close"; # close focused window
"${main}+Alt Delete" = "exit"; # exit river
# app launcher
"${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"'';
"Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"'';
# app launcher
"${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"'';
"Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"'';
# spawn applications
"${main} T" = ''spawn "${terminal}"'';
"${main} R" = ''spawn "${browser}"'';
"${main} T" = ''spawn "${terminal}"'';
"${main} R" = ''spawn "${browser}"'';
# move focused view to top of layout stack
"${main} N" = ''zoom'';
"${main} N" = ''zoom'';
# focus next/previous view
"${main} J" = "focus-view previous";
"${main} K" = "focus-view next";
# move to next/previous output
"${main} H" = "focus-output previous";
"${main} L" = "focus-output next";
"${main} J" = "focus-view previous";
"${main} K" = "focus-view next";
# move to next/previous output
"${main} H" = "focus-output previous";
"${main} L" = "focus-output next";
# swap next/previous view
"${main}+Alt J" = "swap previous";
"${main}+Alt K" = "swap next";
# send view to next/previous output
# and switch to that output (wip)
"${main}+Alt H" = "send-to-output previous";
#"${main}+Alt H" = "focus-output previous";
"${main}+Alt L" = "send-to-output next";
#"${main}+Alt L" = "focus-output next";
"${main}+Alt J" = "swap previous";
"${main}+Alt K" = "swap next";
# send view to next/previous output
# and switch to that output (wip)
"${main}+Alt H" = "send-to-output previous";
#"${main}+Alt H" = "focus-output previous";
"${main}+Alt L" = "send-to-output next";
#"${main}+Alt L" = "focus-output next";
# move views
#"${main}+Alt H" = "move left 100";
#"${main}+Alt J" = "move down 100";
#"${main}+Alt K" = "move up 100";
#"${main}+Alt L" = "move right 100";
#"${main}+Alt H" = "move left 100";
#"${main}+Alt J" = "move down 100";
#"${main}+Alt K" = "move up 100";
#"${main}+Alt L" = "move right 100";
# snap views
#"${main}+Control H" = "snap left";
#"${main}+Control J" = "snap down";
#"${main}+Control K" = "snap up";
#"${main}+Control L" = "snap right";
#"${main}+Control H" = "snap left";
#"${main}+Control J" = "snap down";
#"${main}+Control K" = "snap up";
#"${main}+Control L" = "snap right";
# resize views
#"${main}+Shift H" = "resize horizontal -100";
#"${main}+Shift J" = "resize vertical -100";
#"${main}+Shift K" = "resize vertical 100";
#"${main}+Shift L" = "resize horizontal 100";
#"${main}+Shift H" = "resize horizontal -100";
#"${main}+Shift J" = "resize vertical -100";
#"${main}+Shift K" = "resize vertical 100";
#"${main}+Shift L" = "resize horizontal 100";
};
};
};

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
{config, ...}: {
wayland.windowManager.sway = {
enable = true;
config = rec {
@ -10,43 +6,43 @@ in
terminal = "kitty";
# disable sway bar
bars = [ ];
bars = [];
# set border colors
#colors = {
#focused =
#focused =
startup = [
{ command = "awww-daemon"; }
{ command = "waybar"; }
{command = "awww-daemon";}
{command = "waybar";}
];
keybindings = let
main = config.wayland.windowManager.sway.config.modifier;
terminal = config.wayland.windowManager.sway.config.terminal;
browser = "firefox";
main = config.wayland.windowManager.sway.config.modifier;
terminal = config.wayland.windowManager.sway.config.terminal;
browser = "firefox";
in {
"${main}+c" = "kill"; # close focused window
"${main}+Alt+Delete" = "exit"; # exit sway
"${main}+c" = "kill"; # close focused window
"${main}+Alt+Delete" = "exit"; # exit sway
# open launcher
"${main}+d" = "exec pkill -x rofi || rofi -show drun -show-icons";
"Alt+Tab" = "exec pkill -x rofi || rofi -modi window -show window -show-icons";
"${main}+t" = "exec ${terminal}"; # open terminal
"${main}+r" = "exec ${browser}"; # open browser
"${main}+t" = "exec ${terminal}"; # open terminal
"${main}+r" = "exec ${browser}"; # open browser
# move focus
"${main}+h" = "focus left";
"${main}+j" = "focus down";
"${main}+k" = "focus up";
"${main}+l" = "focus right";
"${main}+h" = "focus left";
"${main}+j" = "focus down";
"${main}+k" = "focus up";
"${main}+l" = "focus right";
# move focused window
"${main}+Alt+h" = "move left";
"${main}+Alt+j" = "move down";
"${main}+Alt+k" = "move up";
"${main}+Alt+l" = "move right";
"${main}+Alt+h" = "move left";
"${main}+Alt+j" = "move down";
"${main}+Alt+k" = "move up";
"${main}+Alt+l" = "move right";
};
};
};