fix niri
This commit is contained in:
parent
db11846811
commit
67c2117563
16 changed files with 652 additions and 274 deletions
2
flake.lock
generated
2
flake.lock
generated
|
|
@ -206,7 +206,7 @@
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs-master"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
# helix.url = "github:helix-editor/helix";
|
||||||
|
# helix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
|
||||||
# software
|
# software
|
||||||
lix-module = {
|
lix-module = {
|
||||||
|
|
@ -15,7 +18,7 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
zen-browser.inputs.nixpkgs.follows = "nixpkgs-master";
|
||||||
kmonad = {
|
kmonad = {
|
||||||
url = "git+https://github.com/jokesper/kmonad?dir=nix&ref=feat-tap-overlap";
|
url = "git+https://github.com/jokesper/kmonad?dir=nix&ref=feat-tap-overlap";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
@ -11,7 +9,7 @@ in
|
||||||
{
|
{
|
||||||
options.xyno.git.enable = lib.mkEnableOption "xynos git config";
|
options.xyno.git.enable = lib.mkEnableOption "xynos git config";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,11 @@ in
|
||||||
## python
|
## python
|
||||||
ruff-lsp
|
ruff-lsp
|
||||||
# nodePackages_latest.pyright
|
# nodePackages_latest.pyright
|
||||||
inputs.roslyn-language-server.packages.${pkgs.system}.roslyn-language-server
|
# inputs.roslyn-language-server.packages.${pkgs.system}.roslyn-language-server
|
||||||
netcoredbg
|
netcoredbg
|
||||||
];
|
];
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
package = inputs.helix.packages.${pkgs.system}.default;
|
# package = inputs.helix.packages.${pkgs.system}.default;
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
./alacritty.nix
|
./alacritty.nix
|
||||||
./borgmatic.nix
|
./borgmatic.nix
|
||||||
# ./git.nix
|
./git.nix
|
||||||
./helix.nix
|
./helix.nix
|
||||||
./dark-theme.nix
|
./dark-theme.nix
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,10 @@
|
||||||
home-manager.users.${config.xyno.system.user.name} = (
|
home-manager.users.${config.xyno.system.user.name} = (
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
|
xyno.git.enable = true;
|
||||||
home.packages = [ # work
|
home.packages = [ # work
|
||||||
pkgs.unstable.jetbrains.rider
|
pkgs.jetbrains.rider
|
||||||
(pkgs.unstable.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; }))
|
(pkgs.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; }))
|
||||||
];
|
];
|
||||||
services.flatpak.update.auto.enable = true;
|
services.flatpak.update.auto.enable = true;
|
||||||
services.flatpak = {
|
services.flatpak = {
|
||||||
|
|
@ -34,6 +35,8 @@
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
services.tailscale.useRoutingFeatures = "client";
|
||||||
xyno.desktop.common-programs.enable = true;
|
xyno.desktop.common-programs.enable = true;
|
||||||
xyno.hardware.kmonad.enable = true;
|
xyno.hardware.kmonad.enable = true;
|
||||||
xyno.presets.cli.enable = true;
|
xyno.presets.cli.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -13,239 +13,237 @@ in
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.starship.enable = true;
|
programs.starship.enable = true;
|
||||||
programs.starship.settings = {
|
programs.starship.settings = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
settings = {
|
"add_newline" = false;
|
||||||
"add_newline" = false;
|
# "format" = "($direnv$nix_shell$container$fill$git_metrics\n)$cmd_duration$hostname$localip$shlvl$shell$env_var$jobs$username$directory ";
|
||||||
# "format" = "($direnv$nix_shell$container$fill$git_metrics\n)$cmd_duration$hostname$localip$shlvl$shell$env_var$jobs$username$directory ";
|
"format" = "$cmd_duration$status$hostname$localip$shlvl$shell$env_var$jobs$username$directory ";
|
||||||
"format" = "$cmd_duration$status$hostname$localip$shlvl$shell$env_var$jobs$username$directory";
|
"right_format" =
|
||||||
"right_format" =
|
"$nix_shell$git_branch$git_commit$git_state$git_status$package$custom$os$battery$time";
|
||||||
"$nix_shell$git_branch$git_commit$git_state$git_status$package$custom$os$battery$time";
|
aws.disabled = true;
|
||||||
aws.disabled = true;
|
status.disabled = false;
|
||||||
status.disabled = false;
|
battery.disabled = true;
|
||||||
battery.disabled = true;
|
"buf" = {
|
||||||
"buf" = {
|
"format" = " [buf](italic) [$symbol $version $buf_version]($style)";
|
||||||
"format" = " [buf](italic) [$symbol $version $buf_version]($style)";
|
# "symbol" = "■ ";
|
||||||
# "symbol" = "■ ";
|
};
|
||||||
};
|
"c" = {
|
||||||
"c" = {
|
"format" = " [$symbol($version(-$name))]($style)";
|
||||||
"format" = " [$symbol($version(-$name))]($style)";
|
# "symbol" = "ℂ ";
|
||||||
# "symbol" = "ℂ ";
|
};
|
||||||
};
|
"character" = {
|
||||||
"character" = {
|
"error_symbol" = "[:](italic purple)";
|
||||||
"error_symbol" = "[:](italic purple)";
|
"format" = "$symbol ";
|
||||||
"format" = "$symbol ";
|
"success_symbol" = "[:](bold italic bright-yellow)";
|
||||||
"success_symbol" = "[:](bold italic bright-yellow)";
|
"vimcmd_replace_one_symbol" = "r";
|
||||||
"vimcmd_replace_one_symbol" = "r";
|
"vimcmd_replace_symbol" = "R";
|
||||||
"vimcmd_replace_symbol" = "R";
|
"vimcmd_symbol" = "[>](italic dimmed green)";
|
||||||
"vimcmd_symbol" = "[>](italic dimmed green)";
|
"vimcmd_visual_symbol" = "SEL";
|
||||||
"vimcmd_visual_symbol" = "SEL";
|
};
|
||||||
};
|
"cmd_duration" = {
|
||||||
"cmd_duration" = {
|
"format" = "[$duration](italic white) ";
|
||||||
"format" = "[$duration](italic white) ";
|
};
|
||||||
};
|
"conda" = {
|
||||||
"conda" = {
|
"format" = " conda [$symbol$environment]($style)";
|
||||||
"format" = " conda [$symbol$environment]($style)";
|
# "symbol" = "◯ ";
|
||||||
# "symbol" = "◯ ";
|
};
|
||||||
};
|
"continuation_prompt" = "[▸▹ ](dimmed white)";
|
||||||
"continuation_prompt" = "[▸▹ ](dimmed white)";
|
"dart" = {
|
||||||
"dart" = {
|
"format" = " dart [$symbol($version )]($style)";
|
||||||
"format" = " dart [$symbol($version )]($style)";
|
# "symbol" = "◁◅ ";
|
||||||
# "symbol" = "◁◅ ";
|
};
|
||||||
};
|
"deno" = {
|
||||||
"deno" = {
|
"format" = " [deno](italic) [∫ $version](green bold)";
|
||||||
"format" = " [deno](italic) [∫ $version](green bold)";
|
"version_format" = "\${raw}";
|
||||||
"version_format" = "\${raw}";
|
};
|
||||||
};
|
"directory" = {
|
||||||
"directory" = {
|
"format" = "[$path]($style)[$read_only]($read_only_style)";
|
||||||
"format" = "[$path]($style)[$read_only]($read_only_style)";
|
"home_symbol" = "~";
|
||||||
"home_symbol" = "~";
|
"read_only" = " (ro) ";
|
||||||
"read_only" = " (ro) ";
|
"repo_root_format" =
|
||||||
"repo_root_format" =
|
"[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style)";
|
||||||
"[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style)";
|
"repo_root_style" = "bold blue";
|
||||||
"repo_root_style" = "bold blue";
|
"style" = "italic blue";
|
||||||
"style" = "italic blue";
|
"truncation_length" = 50;
|
||||||
"truncation_length" = 50;
|
"truncation_symbol" = "⋯";
|
||||||
"truncation_symbol" = "⋯";
|
"use_os_path_sep" = true;
|
||||||
"use_os_path_sep" = true;
|
};
|
||||||
};
|
"docker_context" = {
|
||||||
"docker_context" = {
|
"format" = " docker [$symbol$context]($style)";
|
||||||
"format" = " docker [$symbol$context]($style)";
|
# "symbol" = "◧ ";
|
||||||
# "symbol" = "◧ ";
|
};
|
||||||
};
|
direnv = {
|
||||||
direnv = {
|
disabled = false;
|
||||||
disabled = false;
|
};
|
||||||
};
|
"elixir" = {
|
||||||
"elixir" = {
|
"format" = " exs [$symbol $version OTP $otp_version ]($style)";
|
||||||
"format" = " exs [$symbol $version OTP $otp_version ]($style)";
|
# "symbol" = "△ ";
|
||||||
# "symbol" = "△ ";
|
};
|
||||||
};
|
"elm" = {
|
||||||
"elm" = {
|
"format" = " elm [$symbol($version )]($style)";
|
||||||
"format" = " elm [$symbol($version )]($style)";
|
# "symbol" = "◩ ";
|
||||||
# "symbol" = "◩ ";
|
};
|
||||||
};
|
"env_var" = {
|
||||||
"env_var" = {
|
"VIMSHELL" = {
|
||||||
"VIMSHELL" = {
|
"format" = "[$env_value]($style)";
|
||||||
"format" = "[$env_value]($style)";
|
"style" = "green italic";
|
||||||
"style" = "green italic";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"fill" = {
|
|
||||||
"symbol" = " ";
|
|
||||||
};
|
|
||||||
"git_branch" = {
|
|
||||||
"format" = " [$branch(:$remote_branch)]($style)";
|
|
||||||
"ignore_branches" = [
|
|
||||||
"main"
|
|
||||||
"master"
|
|
||||||
];
|
|
||||||
"only_attached" = true;
|
|
||||||
"style" = "italic bright-blue";
|
|
||||||
"symbol" = "(bold italic bright-blue)";
|
|
||||||
# "symbol" = "[△](bold italic bright-blue)";
|
|
||||||
"truncation_length" = 13;
|
|
||||||
"truncation_symbol" = "⋯";
|
|
||||||
};
|
|
||||||
"git_metrics" = {
|
|
||||||
"added_style" = "italic dimmed green";
|
|
||||||
"deleted_style" = "italic dimmed red";
|
|
||||||
"disabled" = false;
|
|
||||||
"format" = "([▴$added]($added_style))([▿$deleted]($deleted_style))";
|
|
||||||
"ignore_submodules" = true;
|
|
||||||
};
|
|
||||||
"git_status" = {
|
|
||||||
"ahead" = "[▴│[\${count}](bold white)│](italic green)";
|
|
||||||
"behind" = "[▿│[\${count}](bold white)│](italic red)";
|
|
||||||
"conflicted" = "[◪◦](italic bright-magenta)";
|
|
||||||
"deleted" = "[✕](italic red)";
|
|
||||||
"diverged" =
|
|
||||||
"[◇ ▴┤[\${ahead_count}](regular white)│▿┤[\${behind_count}](regular white)│](italic bright-magenta)";
|
|
||||||
"format" =
|
|
||||||
"([⎪$ahead_behind$staged$modified$untracked$renamed$deleted$conflicted$stashed⎥]($style))";
|
|
||||||
"modified" = "[●◦](italic yellow)";
|
|
||||||
"renamed" = "[◎◦](italic bright-blue)";
|
|
||||||
"staged" = "[▪┤[$count](bold white)│](italic bright-cyan)";
|
|
||||||
"stashed" = "[◃◈](italic white)";
|
|
||||||
"style" = "bold italic bright-blue";
|
|
||||||
"untracked" = "[◌◦](italic bright-yellow)";
|
|
||||||
};
|
|
||||||
"golang" = {
|
|
||||||
"format" = " go [$symbol($version )]($style)";
|
|
||||||
# "symbol" = "∩ ";
|
|
||||||
};
|
|
||||||
"haskell" = {
|
|
||||||
"format" = " hs [$symbol($version )]($style)";
|
|
||||||
# "symbol" = "❯λ ";
|
|
||||||
};
|
|
||||||
"java" = {
|
|
||||||
"format" = " java [\${symbol}(\${version} )]($style)";
|
|
||||||
# "symbol" = "∪ ";
|
|
||||||
};
|
|
||||||
"jobs" = {
|
|
||||||
"format" = "[$symbol$number]($style) ";
|
|
||||||
"style" = "white";
|
|
||||||
"symbol" = "[▶](blue italic)";
|
|
||||||
};
|
|
||||||
"julia" = {
|
|
||||||
"format" = " jl [$symbol($version )]($style)";
|
|
||||||
"symbol" = "◎ ";
|
|
||||||
};
|
|
||||||
"localip" = {
|
|
||||||
"disabled" = false;
|
|
||||||
"format" = " ◯[$localipv4](bold magenta)";
|
|
||||||
"ssh_only" = true;
|
|
||||||
};
|
|
||||||
"lua" = {
|
|
||||||
"format" = " [lua](italic) [\${symbol}\${version}]($style)";
|
|
||||||
"style" = "bold bright-yellow";
|
|
||||||
"symbol" = "⨀ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"memory_usage" = {
|
|
||||||
"format" = " mem [\${ram}( \${swap})]($style)";
|
|
||||||
"symbol" = "▪▫▪ ";
|
|
||||||
};
|
|
||||||
"nim" = {
|
|
||||||
"format" = " nim [$symbol($version )]($style)";
|
|
||||||
"symbol" = "▴▲▴ ";
|
|
||||||
};
|
|
||||||
"nix_shell" = {
|
|
||||||
"format" = "[$symbol]($style) [$name](italic dimmed white)";
|
|
||||||
"impure_msg" = "[impure](bold dimmed red)";
|
|
||||||
"pure_msg" = "[pure](bold dimmed green)";
|
|
||||||
"style" = "bold italic dimmed blue";
|
|
||||||
"symbol" = "";
|
|
||||||
"unknown_msg" = "[unknown](bold dimmed ellow)";
|
|
||||||
};
|
|
||||||
"nodejs" = {
|
|
||||||
"detect_extensions" = [
|
|
||||||
];
|
|
||||||
"detect_files" = [
|
|
||||||
"package-lock.json"
|
|
||||||
"yarn.lock"
|
|
||||||
"pnpm-lock.yaml"
|
|
||||||
];
|
|
||||||
"detect_folders" = [
|
|
||||||
"node_modules"
|
|
||||||
];
|
|
||||||
"format" = " [node](italic) [($version)](bold bright-green)";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"package" = {
|
|
||||||
"format" = " [pkg](italic dimmed) [$symbol$version]($style)";
|
|
||||||
"style" = "dimmed yellow italic bold";
|
|
||||||
# "symbol" = "◨ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"python" = {
|
|
||||||
"format" = " [py](italic) [\${symbol}\${version}]($style)";
|
|
||||||
"style" = "bold bright-yellow";
|
|
||||||
# "symbol" = "[⌉](bold bright-blue)⌊ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"ruby" = {
|
|
||||||
disabled = true;
|
|
||||||
"format" = " [rb](italic) [\${symbol}\${version}]($style)";
|
|
||||||
"style" = "bold red";
|
|
||||||
# "symbol" = "◆ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"rust" = {
|
|
||||||
"format" = " [rs](italic) [$symbol$version]($style)";
|
|
||||||
"style" = "bold red";
|
|
||||||
# "symbol" = "⊃ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"spack" = {
|
|
||||||
"format" = " spack [$symbol$environment]($style)";
|
|
||||||
# "symbol" = "◇ ";
|
|
||||||
};
|
|
||||||
"sudo" = {
|
|
||||||
"disabled" = true;
|
|
||||||
"format" = "[$symbol]($style)";
|
|
||||||
"style" = "bold italic bright-purple";
|
|
||||||
"symbol" = "sudo";
|
|
||||||
};
|
|
||||||
"swift" = {
|
|
||||||
"format" = " [sw](italic) [\${symbol}\${version}]($style)";
|
|
||||||
"style" = "bold bright-red";
|
|
||||||
# "symbol" = "◁ ";
|
|
||||||
"version_format" = "\${raw}";
|
|
||||||
};
|
|
||||||
"time" = {
|
|
||||||
"disabled" = true;
|
|
||||||
"format" = "[ $time]($style)";
|
|
||||||
"style" = "italic dimmed white";
|
|
||||||
"time_format" = "%R";
|
|
||||||
"utc_time_offset" = "local";
|
|
||||||
};
|
|
||||||
"username" = {
|
|
||||||
"disabled" = false;
|
|
||||||
"format" = "[$user]($style) ";
|
|
||||||
"show_always" = false;
|
|
||||||
"style_root" = "purple bold italic";
|
|
||||||
"style_user" = "bright-yellow bold italic";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"fill" = {
|
||||||
|
"symbol" = " ";
|
||||||
|
};
|
||||||
|
"git_branch" = {
|
||||||
|
"format" = " [$branch(:$remote_branch)]($style)";
|
||||||
|
"ignore_branches" = [
|
||||||
|
"main"
|
||||||
|
"master"
|
||||||
|
];
|
||||||
|
"only_attached" = true;
|
||||||
|
"style" = "italic bright-blue";
|
||||||
|
"symbol" = "(bold italic bright-blue)";
|
||||||
|
# "symbol" = "[△](bold italic bright-blue)";
|
||||||
|
"truncation_length" = 13;
|
||||||
|
"truncation_symbol" = "⋯";
|
||||||
|
};
|
||||||
|
"git_metrics" = {
|
||||||
|
"added_style" = "italic dimmed green";
|
||||||
|
"deleted_style" = "italic dimmed red";
|
||||||
|
"disabled" = false;
|
||||||
|
"format" = "([▴$added]($added_style))([▿$deleted]($deleted_style))";
|
||||||
|
"ignore_submodules" = true;
|
||||||
|
};
|
||||||
|
"git_status" = {
|
||||||
|
"ahead" = "[▴│[\${count}](bold white)│](italic green)";
|
||||||
|
"behind" = "[▿│[\${count}](bold white)│](italic red)";
|
||||||
|
"conflicted" = "[◪◦](italic bright-magenta)";
|
||||||
|
"deleted" = "[✕](italic red)";
|
||||||
|
"diverged" =
|
||||||
|
"[◇ ▴┤[\${ahead_count}](regular white)│▿┤[\${behind_count}](regular white)│](italic bright-magenta)";
|
||||||
|
"format" =
|
||||||
|
"([⎪$ahead_behind$staged$modified$untracked$renamed$deleted$conflicted$stashed⎥]($style))";
|
||||||
|
"modified" = "[●◦](italic yellow)";
|
||||||
|
"renamed" = "[◎◦](italic bright-blue)";
|
||||||
|
"staged" = "[▪┤[$count](bold white)│](italic bright-cyan)";
|
||||||
|
"stashed" = "[◃◈](italic white)";
|
||||||
|
"style" = "bold italic bright-blue";
|
||||||
|
"untracked" = "[◌◦](italic bright-yellow)";
|
||||||
|
};
|
||||||
|
"golang" = {
|
||||||
|
"format" = " go [$symbol($version )]($style)";
|
||||||
|
# "symbol" = "∩ ";
|
||||||
|
};
|
||||||
|
"haskell" = {
|
||||||
|
"format" = " hs [$symbol($version )]($style)";
|
||||||
|
# "symbol" = "❯λ ";
|
||||||
|
};
|
||||||
|
"java" = {
|
||||||
|
"format" = " java [\${symbol}(\${version} )]($style)";
|
||||||
|
# "symbol" = "∪ ";
|
||||||
|
};
|
||||||
|
"jobs" = {
|
||||||
|
"format" = "[$symbol$number]($style) ";
|
||||||
|
"style" = "white";
|
||||||
|
"symbol" = "[▶](blue italic)";
|
||||||
|
};
|
||||||
|
"julia" = {
|
||||||
|
"format" = " jl [$symbol($version )]($style)";
|
||||||
|
"symbol" = "◎ ";
|
||||||
|
};
|
||||||
|
"localip" = {
|
||||||
|
"disabled" = false;
|
||||||
|
"format" = " ◯[$localipv4](bold magenta)";
|
||||||
|
"ssh_only" = true;
|
||||||
|
};
|
||||||
|
"lua" = {
|
||||||
|
"format" = " [lua](italic) [\${symbol}\${version}]($style)";
|
||||||
|
"style" = "bold bright-yellow";
|
||||||
|
"symbol" = "⨀ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"memory_usage" = {
|
||||||
|
"format" = " mem [\${ram}( \${swap})]($style)";
|
||||||
|
"symbol" = "▪▫▪ ";
|
||||||
|
};
|
||||||
|
"nim" = {
|
||||||
|
"format" = " nim [$symbol($version )]($style)";
|
||||||
|
"symbol" = "▴▲▴ ";
|
||||||
|
};
|
||||||
|
"nix_shell" = {
|
||||||
|
"format" = "[$symbol]($style) [$name](italic dimmed white)";
|
||||||
|
"impure_msg" = "[impure](bold dimmed red)";
|
||||||
|
"pure_msg" = "[pure](bold dimmed green)";
|
||||||
|
"style" = "bold italic dimmed blue";
|
||||||
|
"symbol" = "";
|
||||||
|
"unknown_msg" = "[unknown](bold dimmed ellow)";
|
||||||
|
};
|
||||||
|
"nodejs" = {
|
||||||
|
"detect_extensions" = [
|
||||||
|
];
|
||||||
|
"detect_files" = [
|
||||||
|
"package-lock.json"
|
||||||
|
"yarn.lock"
|
||||||
|
"pnpm-lock.yaml"
|
||||||
|
];
|
||||||
|
"detect_folders" = [
|
||||||
|
"node_modules"
|
||||||
|
];
|
||||||
|
"format" = " [node](italic) [($version)](bold bright-green)";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"package" = {
|
||||||
|
"format" = " [pkg](italic dimmed) [$symbol$version]($style)";
|
||||||
|
"style" = "dimmed yellow italic bold";
|
||||||
|
# "symbol" = "◨ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"python" = {
|
||||||
|
"format" = " [py](italic) [\${symbol}\${version}]($style)";
|
||||||
|
"style" = "bold bright-yellow";
|
||||||
|
# "symbol" = "[⌉](bold bright-blue)⌊ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"ruby" = {
|
||||||
|
disabled = true;
|
||||||
|
"format" = " [rb](italic) [\${symbol}\${version}]($style)";
|
||||||
|
"style" = "bold red";
|
||||||
|
# "symbol" = "◆ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"rust" = {
|
||||||
|
"format" = " [rs](italic) [$symbol$version]($style)";
|
||||||
|
"style" = "bold red";
|
||||||
|
# "symbol" = "⊃ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"spack" = {
|
||||||
|
"format" = " spack [$symbol$environment]($style)";
|
||||||
|
# "symbol" = "◇ ";
|
||||||
|
};
|
||||||
|
"sudo" = {
|
||||||
|
"disabled" = true;
|
||||||
|
"format" = "[$symbol]($style)";
|
||||||
|
"style" = "bold italic bright-purple";
|
||||||
|
"symbol" = "sudo";
|
||||||
|
};
|
||||||
|
"swift" = {
|
||||||
|
"format" = " [sw](italic) [\${symbol}\${version}]($style)";
|
||||||
|
"style" = "bold bright-red";
|
||||||
|
# "symbol" = "◁ ";
|
||||||
|
"version_format" = "\${raw}";
|
||||||
|
};
|
||||||
|
"time" = {
|
||||||
|
"disabled" = true;
|
||||||
|
"format" = "[ $time]($style)";
|
||||||
|
"style" = "italic dimmed white";
|
||||||
|
"time_format" = "%R";
|
||||||
|
"utc_time_offset" = "local";
|
||||||
|
};
|
||||||
|
"username" = {
|
||||||
|
"disabled" = false;
|
||||||
|
"format" = "[$user]($style) ";
|
||||||
|
"show_always" = false;
|
||||||
|
"style_root" = "purple bold italic";
|
||||||
|
"style_user" = "bright-yellow bold italic";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
@ -25,7 +26,6 @@ in
|
||||||
services.gnome.evolution-data-server.enable = true;
|
services.gnome.evolution-data-server.enable = true;
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
programs.fuse.userAllowOther = true;
|
programs.fuse.userAllowOther = true;
|
||||||
programs.sway.enable = true;
|
|
||||||
programs.nix-ld.enable = true;
|
programs.nix-ld.enable = true;
|
||||||
programs.gamescope.enable = true;
|
programs.gamescope.enable = true;
|
||||||
programs.wireshark.enable = true;
|
programs.wireshark.enable = true;
|
||||||
|
|
@ -34,7 +34,7 @@ in
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
element-desktop # this is not a place of honor
|
element-desktop # this is not a place of honor
|
||||||
discord # shitcord
|
discord # shitcord
|
||||||
unstable.signal-desktop
|
signal-desktop
|
||||||
obsidian
|
obsidian
|
||||||
diebahn
|
diebahn
|
||||||
vlc
|
vlc
|
||||||
|
|
|
||||||
|
|
@ -28,19 +28,295 @@ in
|
||||||
xyno.desktop = {
|
xyno.desktop = {
|
||||||
waybar.enable = lib.mkDefault true;
|
waybar.enable = lib.mkDefault true;
|
||||||
mako.enable = lib.mkDefault true;
|
mako.enable = lib.mkDefault true;
|
||||||
|
shikane.enable = lib.mkDefault true;
|
||||||
|
swayidle.enable = lib.mkDefault true;
|
||||||
|
wpaperd.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
home-manager.users.${config.xyno.system.user.name} = lib.mkIf config.xyno.presets.home-manager.enable ({...}: {
|
home-manager.users.${config.xyno.system.user.name} =
|
||||||
xyno.dark-theme.enable = true;
|
lib.mkIf config.xyno.presets.home-manager.enable
|
||||||
});
|
(
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
xyno.dark-theme.enable = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
# xdg.portal = {
|
# xdg.portal = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# wlr.enable = true;
|
# wlr.enable = true;
|
||||||
# };
|
# };
|
||||||
programs.niri.enable = true;
|
programs.niri.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
fuzzel
|
||||||
|
libnotify
|
||||||
|
];
|
||||||
|
environment.etc."xdg/fuzzel/fuzzel.ini".text = ''
|
||||||
|
font=JetBrains Mono Nerd Font:size=10
|
||||||
|
dpi-aware=yes
|
||||||
|
# prompt=>
|
||||||
|
icon-theme=hicolor
|
||||||
|
icons-enabled=yes
|
||||||
|
fuzzy=yes
|
||||||
|
width=80
|
||||||
|
horizontal-pad=10
|
||||||
|
vertical-pad=10
|
||||||
|
inner-pad=10
|
||||||
|
line-height=18
|
||||||
|
[colors]
|
||||||
|
background=000000AA
|
||||||
|
text=efefefef
|
||||||
|
match=fabd2fff
|
||||||
|
selection-match=fabd2fff
|
||||||
|
selection=666666ff
|
||||||
|
selection-text=efefefef
|
||||||
|
border=33eeffee
|
||||||
|
[border]
|
||||||
|
width=2
|
||||||
|
radius=3
|
||||||
|
'';
|
||||||
environment.etc."niri/config.kdl".text = ''
|
environment.etc."niri/config.kdl".text = ''
|
||||||
// xwayland
|
// xwayland
|
||||||
spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite"
|
spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite"
|
||||||
|
environment {
|
||||||
|
DISPLAY ":0"
|
||||||
|
}
|
||||||
|
// keybinds
|
||||||
|
binds {
|
||||||
|
Mod+D { spawn "fuzzel"; }
|
||||||
|
Mod+T { spawn "alacritty"; }
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
|
||||||
|
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
||||||
|
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
||||||
|
|
||||||
|
Mod+Q { close-window; }
|
||||||
|
|
||||||
|
Mod+Left { focus-column-left; }
|
||||||
|
Mod+Down { focus-window-down; }
|
||||||
|
Mod+Up { focus-window-up; }
|
||||||
|
Mod+Right { focus-column-right; }
|
||||||
|
Mod+H { focus-column-left; }
|
||||||
|
Mod+J { focus-window-down; }
|
||||||
|
Mod+K { focus-window-up; }
|
||||||
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Left { move-column-left; }
|
||||||
|
Mod+Ctrl+Down { move-window-down; }
|
||||||
|
Mod+Ctrl+Up { move-window-up; }
|
||||||
|
Mod+Ctrl+Right { move-column-right; }
|
||||||
|
Mod+Ctrl+H { move-column-left; }
|
||||||
|
Mod+Ctrl+J { move-window-down; }
|
||||||
|
Mod+Ctrl+K { move-window-up; }
|
||||||
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
|
Mod+Home { focus-column-first; }
|
||||||
|
Mod+End { focus-column-last; }
|
||||||
|
Mod+Ctrl+Home { move-column-to-first; }
|
||||||
|
Mod+Ctrl+End { move-column-to-last; }
|
||||||
|
|
||||||
|
Mod+Shift+Left { focus-monitor-left; }
|
||||||
|
Mod+Shift+Down { focus-monitor-down; }
|
||||||
|
Mod+Shift+Up { focus-monitor-up; }
|
||||||
|
Mod+Shift+Right { focus-monitor-right; }
|
||||||
|
Mod+Shift+H { focus-monitor-left; }
|
||||||
|
Mod+Shift+J { focus-monitor-down; }
|
||||||
|
Mod+Shift+K { focus-monitor-up; }
|
||||||
|
Mod+Shift+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// And you can also move a whole workspace to another monitor:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Page_Down { focus-workspace-down; }
|
||||||
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
|
Mod+U { focus-workspace-down; }
|
||||||
|
Mod+I { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Shift+Page_Down { move-workspace-down; }
|
||||||
|
Mod+Shift+Page_Up { move-workspace-up; }
|
||||||
|
Mod+Shift+U { move-workspace-down; }
|
||||||
|
Mod+Shift+I { move-workspace-up; }
|
||||||
|
|
||||||
|
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||||
|
// These binds will change direction based on the natural-scroll setting.
|
||||||
|
//
|
||||||
|
// To avoid scrolling through workspaces really fast, you can use
|
||||||
|
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||||
|
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||||
|
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+WheelScrollRight { focus-column-right; }
|
||||||
|
Mod+WheelScrollLeft { focus-column-left; }
|
||||||
|
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||||
|
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
|
// Usually scrolling up and down with Shift in applications results in
|
||||||
|
// horizontal scrolling; these binds replicate that.
|
||||||
|
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
|
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
|
// Similarly, you can bind touchpad scroll "ticks".
|
||||||
|
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
||||||
|
|
||||||
|
// You can refer to workspaces by index. However, keep in mind that
|
||||||
|
// niri is a dynamic workspace system, so these commands are kind of
|
||||||
|
// "best effort". Trying to refer to a workspace index bigger than
|
||||||
|
// the current workspace count will instead refer to the bottommost
|
||||||
|
// (empty) workspace.
|
||||||
|
//
|
||||||
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
|
// will all refer to the 3rd workspace.
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
// Mod+Tab { focus-workspace-previous; }
|
||||||
|
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||||
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+Period { expel-window-from-column; }
|
||||||
|
|
||||||
|
Mod+R { switch-preset-column-width; }
|
||||||
|
Mod+Shift+R { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
Mod+F { maximize-column; }
|
||||||
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
|
Mod+C { center-column; }
|
||||||
|
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
|
// Finer height adjustments when in column with other windows.
|
||||||
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
|
// Move the focused window between the floating and the tiling layout.
|
||||||
|
Mod+V { toggle-window-floating; }
|
||||||
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
|
// Toggle tabbed column display mode.
|
||||||
|
// Windows in this column will appear as vertical tabs,
|
||||||
|
// rather than stacked on top of each other.
|
||||||
|
Mod+W { toggle-column-tabbed-display; }
|
||||||
|
|
||||||
|
// Actions to switch layouts.
|
||||||
|
// Note: if you uncomment these, make sure you do NOT have
|
||||||
|
// a matching layout switch hotkey configured in xkb options above.
|
||||||
|
// Having both at once on the same hotkey will break the switching,
|
||||||
|
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||||
|
// Mod+Space { switch-layout "next"; }
|
||||||
|
// Mod+Shift+Space { switch-layout "prev"; }
|
||||||
|
|
||||||
|
Mod+Alt+4 { screenshot; }
|
||||||
|
Mod+Alt+3 { screenshot-screen; }
|
||||||
|
Mod+Alt+2 { screenshot-window; }
|
||||||
|
Print { screenshot; }
|
||||||
|
Ctrl+Print { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||||
|
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+E { quit; }
|
||||||
|
Ctrl+Alt+Delete { quit; }
|
||||||
|
|
||||||
|
// Powers off the monitors. To turn them back on, do any input like
|
||||||
|
// moving the mouse or pressing any other key.
|
||||||
|
Mod+Shift+P { power-off-monitors; }
|
||||||
|
Super+Backslash { focus-workspace "scratchpad"; }
|
||||||
|
}
|
||||||
|
layout {
|
||||||
|
gaps 4
|
||||||
|
shadow {
|
||||||
|
on
|
||||||
|
}
|
||||||
|
tab-indicator {
|
||||||
|
hide-when-single-tab
|
||||||
|
position "top"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prefer-no-csd
|
||||||
|
// scratchpad
|
||||||
|
workspace "scratchpad"
|
||||||
|
|
||||||
|
|
||||||
screenshot-path "~/Pictures/screenshots/screenshot-%Y-%m-%d %H-%M-%S.png"
|
screenshot-path "~/Pictures/screenshots/screenshot-%Y-%m-%d %H-%M-%S.png"
|
||||||
// Indicate screencasted windows with red colors.
|
// Indicate screencasted windows with red colors.
|
||||||
|
|
@ -67,9 +343,10 @@ in
|
||||||
}
|
}
|
||||||
// Block out password managers from screencasts.
|
// Block out password managers from screencasts.
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
match app-id="KeePassXC"
|
||||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
|
||||||
|
|
||||||
|
open-floating true
|
||||||
|
open-on-workspace "scratchpad"
|
||||||
block-out-from "screencast"
|
block-out-from "screencast"
|
||||||
}
|
}
|
||||||
// Block out mako notifications from screencasts.
|
// Block out mako notifications from screencasts.
|
||||||
|
|
@ -78,11 +355,21 @@ in
|
||||||
|
|
||||||
block-out-from "screencast"
|
block-out-from "screencast"
|
||||||
}
|
}
|
||||||
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
|
window-rule {
|
||||||
|
// This app-id regular expression will work for both:
|
||||||
|
// - host Firefox (app-id is "firefox")
|
||||||
|
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||||
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
workspace-auto-back-and-forth
|
workspace-auto-back-and-forth
|
||||||
focus-follows-mouse max-scroll-amount="10%"
|
focus-follows-mouse
|
||||||
touchpad {
|
touchpad {
|
||||||
tap
|
tap
|
||||||
|
natural-scroll
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// autogenerated from here on
|
// autogenerated from here on
|
||||||
|
|
|
||||||
31
modules/desktop/shikane.nix
Normal file
31
modules/desktop/shikane.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.xyno.desktop.shikane;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.xyno.desktop.shikane.enable = lib.mkEnableOption "enable shikane screen size manager thing";
|
||||||
|
options.xyno.desktop.shikane.wantedBy = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "niri.service";
|
||||||
|
};
|
||||||
|
options.xyno.desktop.shikane.package = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.shikane;
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
systemd.user.services.shikane = {
|
||||||
|
unitConfig.PartOf = "graphical-session.target";
|
||||||
|
unitConfig.After = "graphical-session.target";
|
||||||
|
unitConfig.Requisite = "graphical-session.target";
|
||||||
|
serviceConfig.Restart = "on-failure";
|
||||||
|
wantedBy = [ cfg.wantedBy ];
|
||||||
|
script = "${cfg.package}/bin/shikane";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -6,13 +6,6 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.xyno.desktop.swayidle;
|
cfg = config.xyno.desktop.swayidle;
|
||||||
makoConf = pkgs.writeText "mako.conf" ''
|
|
||||||
font=Source Sans Pro Nerd Font 11
|
|
||||||
background-color=#1d2021ff
|
|
||||||
border-color=#3c3836FF
|
|
||||||
text-color=#ebdbb2ff
|
|
||||||
progress-color=over #928374FF
|
|
||||||
'';
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.xyno.desktop.swayidle.enable = lib.mkEnableOption "enable swayidle and swaylock and stuff";
|
options.xyno.desktop.swayidle.enable = lib.mkEnableOption "enable swayidle and swaylock and stuff";
|
||||||
|
|
@ -30,19 +23,18 @@ in
|
||||||
};
|
};
|
||||||
options.xyno.desktop.swayidle.swaylockArgs = lib.mkOption {
|
options.xyno.desktop.swayidle.swaylockArgs = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "--fade-in 2 --clock --timestr %T%z --datestr %F";
|
default = "-f --fade-in 2 --clock --timestr %T%z --datestr %F -i /home/${config.xyno.system.user.name}/Pictures/background.jpg";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with cfg; [ package swaylockPackage ];
|
environment.systemPackages = with cfg; [ package swaylockPackage ];
|
||||||
systemd.user.services.mako = {
|
systemd.user.services.swayidle = {
|
||||||
unitConfig.PartOf = "graphical-session.target";
|
unitConfig.PartOf = "graphical-session.target";
|
||||||
unitConfig.After = "graphical-session.target";
|
unitConfig.After = "graphical-session.target";
|
||||||
unitConfig.Requisite = "graphical-session.target";
|
unitConfig.Requisite = "graphical-session.target";
|
||||||
serviceConfig.Restart = "on-failure";
|
serviceConfig.Restart = "on-failure";
|
||||||
wantedBy = [ cfg.wantedBy ];
|
wantedBy = [ cfg.wantedBy ];
|
||||||
script = "${cfg.package}/bin/mako -c ${makoConf}";
|
script = "${cfg.package}/bin/swayidle -w timeout 310 'niri msg action power-off-monitors' timeout 300 '${cfg.swaylockPackage}/bin/swaylock ${cfg.swaylockArgs}' before-sleep '${cfg.swaylockPackage}/bin/swaylock ${cfg.swaylockArgs}'";
|
||||||
restartTrigers = makoConf;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,27 +23,32 @@ in
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
|
programs.waybar.package = cfg.package;
|
||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
|
|
||||||
systemd.user.services.waybar.wantedBy = lib.mkForce [ cfg.wantedBy ];
|
systemd.user.services.waybar.wantedBy = lib.mkForce [ cfg.wantedBy ];
|
||||||
environment.etc."xdg/waybar/config".text = builtins.toJSON {
|
systemd.user.services.waybar.restartTriggers = [ "/etc/xdg/waybar/config" "/etc/xdg/waybar/style.css" ];
|
||||||
mainBar = {
|
environment.etc."xdg/waybar/config".source =
|
||||||
|
let
|
||||||
|
json = pkgs.formats.json { };
|
||||||
|
in
|
||||||
|
|
||||||
|
(json.generate "waybar-config.json" {
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "top";
|
||||||
height = 15;
|
height = 15;
|
||||||
modules-left =
|
modules-left = (lib.optionals (cfg.mode == "river") [
|
||||||
(lib.optional (cfg.mode == "river") [
|
|
||||||
"river/tags"
|
"river/tags"
|
||||||
"river/layout"
|
"river/layout"
|
||||||
"river/window"
|
"river/window"
|
||||||
])
|
])
|
||||||
++ (lib.optional (cfg.mode == "niri") [
|
++ (lib.optionals (cfg.mode == "niri") [
|
||||||
"niri/workspaces"
|
"niri/workspaces"
|
||||||
"niri/window"
|
"niri/window"
|
||||||
]);
|
]);
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"tray"
|
"tray"
|
||||||
"power-profiles-daemon"
|
"power_profiles_daemon"
|
||||||
"idle_inhibitor"
|
"idle_inhibitor"
|
||||||
"wireplumber"
|
"wireplumber"
|
||||||
"battery"
|
"battery"
|
||||||
|
|
@ -52,13 +57,15 @@ in
|
||||||
"temperature"
|
"temperature"
|
||||||
"memory"
|
"memory"
|
||||||
"disk"
|
"disk"
|
||||||
"custom/tailscale"
|
|
||||||
"network"
|
"network"
|
||||||
"clock"
|
"clock"
|
||||||
];
|
];
|
||||||
"river/window" = {
|
"river/window" = {
|
||||||
max-length = 40;
|
max-length = 40;
|
||||||
};
|
};
|
||||||
|
"niri/window" = {
|
||||||
|
max-length = 40;
|
||||||
|
};
|
||||||
wireplumber = {
|
wireplumber = {
|
||||||
"format" = "{icon} {volume}%";
|
"format" = "{icon} {volume}%";
|
||||||
"format-muted" = " MUTE";
|
"format-muted" = " MUTE";
|
||||||
|
|
@ -162,8 +169,7 @@ in
|
||||||
"tooltip-format-disconnected" = "Disconnected";
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
"max-length" = 50;
|
"max-length" = 50;
|
||||||
};
|
};
|
||||||
};
|
});
|
||||||
};
|
|
||||||
environment.etc."xdg/waybar/style.css".text = ''
|
environment.etc."xdg/waybar/style.css".text = ''
|
||||||
* {
|
* {
|
||||||
/* `otf-font-awesome` is required to be installed for icons */
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
|
@ -202,7 +208,7 @@ in
|
||||||
border: none;
|
border: none;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
#tags button {
|
#workspaces button {
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
background-color: #1d2021;
|
background-color: #1d2021;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
|
|
@ -214,24 +220,24 @@ in
|
||||||
}
|
}
|
||||||
|
|
||||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
#tags button:hover {
|
#workspaces button:hover {
|
||||||
background: rgba(0, 0, 0, 0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
/* box-shadow: inset 0 -3px #fbf1c7;
|
/* box-shadow: inset 0 -3px #fbf1c7;
|
||||||
*/
|
*/
|
||||||
background-color: #3c3836;
|
background-color: #3c3836;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tags button.focused {
|
#workspaces button.focused {
|
||||||
/* box-shadow: inset 0 -3px #fbf1c7;
|
/* box-shadow: inset 0 -3px #fbf1c7;
|
||||||
*/
|
*/
|
||||||
background-color: #3c3836;
|
background-color: #3c3836;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tags button.occupied {
|
#workspaces button.occupied {
|
||||||
color: #d3869b;
|
color: #d3869b;
|
||||||
}
|
}
|
||||||
#tags button.urgent {
|
#workspaces button.urgent {
|
||||||
background-color: #cc241d;
|
background-color: #cc241d;
|
||||||
color: #ebdbb2;
|
color: #ebdbb2;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
38
modules/desktop/wpaperd.nix
Normal file
38
modules/desktop/wpaperd.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.xyno.desktop.wpaperd;
|
||||||
|
wpaperdConf = pkgs.writeText "wpaperd.conf" ''
|
||||||
|
[default]
|
||||||
|
path = "/home/${config.xyno.system.user.name}/Pictures/backgrounds"
|
||||||
|
duration = "10m"
|
||||||
|
sorting = "random"
|
||||||
|
mode = "center"
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.xyno.desktop.wpaperd.enable = lib.mkEnableOption "enable wpaperd notification daemon";
|
||||||
|
options.xyno.desktop.wpaperd.wantedBy = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "niri.service";
|
||||||
|
};
|
||||||
|
options.xyno.desktop.wpaperd.package = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.wpaperd;
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
systemd.user.services.wpaperd = {
|
||||||
|
unitConfig.PartOf = "graphical-session.target";
|
||||||
|
unitConfig.After = "graphical-session.target";
|
||||||
|
unitConfig.Requisite = "graphical-session.target";
|
||||||
|
serviceConfig.Restart = "on-failure";
|
||||||
|
wantedBy = [ cfg.wantedBy ];
|
||||||
|
script = "${cfg.package}/bin/wpaperd -c ${wpaperdConf}";
|
||||||
|
restartTriggers = [wpaperdConf];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
./desktop/common-programs.nix
|
./desktop/common-programs.nix
|
||||||
./desktop/mako.nix
|
./desktop/mako.nix
|
||||||
./desktop/niri.nix
|
./desktop/niri.nix
|
||||||
|
./desktop/shikane.nix
|
||||||
|
./desktop/swayidle.nix
|
||||||
./desktop/waybar.nix
|
./desktop/waybar.nix
|
||||||
|
./desktop/wpaperd.nix
|
||||||
./hardware/kmonad.nix
|
./hardware/kmonad.nix
|
||||||
./networking/networkd.nix
|
./networking/networkd.nix
|
||||||
./presets/cli.nix
|
./presets/cli.nix
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,24 @@ in
|
||||||
xyno.cli.fish.enable = true;
|
xyno.cli.fish.enable = true;
|
||||||
xyno.cli.starship.enable = true;
|
xyno.cli.starship.enable = true;
|
||||||
security.sudo.enable = false;
|
security.sudo.enable = false;
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
trusted-users = lib.mkDefault [ "root" "@wheel" ];
|
||||||
|
allowed-users = lib.mkDefault [ "root" "@wheel" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/361592 needed for run0
|
||||||
|
security.pam.services.systemd-run0 = {};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
jq
|
jq
|
||||||
bottom
|
bottom
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ in
|
||||||
lib.mkEnableOption "enables home manager on the default user";
|
lib.mkEnableOption "enables home manager on the default user";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs;};
|
||||||
home-manager.sharedModules = (import ../../hm-modules/module-list.nix) ++ [
|
home-manager.sharedModules = (import ../../hm-modules/module-list.nix) ++ [
|
||||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||||
];
|
];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue