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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
"nixpkgs-master"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
# helix.url = "github:helix-editor/helix";
|
||||
# helix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
|
||||
# software
|
||||
lix-module = {
|
||||
|
|
@ -15,7 +18,7 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs-master";
|
||||
kmonad = {
|
||||
url = "git+https://github.com/jokesper/kmonad?dir=nix&ref=feat-tap-overlap";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
|
@ -11,7 +9,7 @@ in
|
|||
{
|
||||
options.xyno.git.enable = lib.mkEnableOption "xynos git config";
|
||||
config = lib.mkIf cfg.enable {
|
||||
git = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,11 +19,11 @@ in
|
|||
## python
|
||||
ruff-lsp
|
||||
# nodePackages_latest.pyright
|
||||
inputs.roslyn-language-server.packages.${pkgs.system}.roslyn-language-server
|
||||
# inputs.roslyn-language-server.packages.${pkgs.system}.roslyn-language-server
|
||||
netcoredbg
|
||||
];
|
||||
programs.helix = {
|
||||
package = inputs.helix.packages.${pkgs.system}.default;
|
||||
# package = inputs.helix.packages.${pkgs.system}.default;
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
./alacritty.nix
|
||||
./borgmatic.nix
|
||||
# ./git.nix
|
||||
./git.nix
|
||||
./helix.nix
|
||||
./dark-theme.nix
|
||||
]
|
||||
|
|
|
|||
|
|
@ -10,9 +10,10 @@
|
|||
home-manager.users.${config.xyno.system.user.name} = (
|
||||
{ ... }:
|
||||
{
|
||||
xyno.git.enable = true;
|
||||
home.packages = [ # work
|
||||
pkgs.unstable.jetbrains.rider
|
||||
(pkgs.unstable.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; }))
|
||||
pkgs.jetbrains.rider
|
||||
(pkgs.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; }))
|
||||
];
|
||||
services.flatpak.update.auto.enable = true;
|
||||
services.flatpak = {
|
||||
|
|
@ -34,6 +35,8 @@
|
|||
}
|
||||
);
|
||||
|
||||
services.tailscale.enable = true;
|
||||
services.tailscale.useRoutingFeatures = "client";
|
||||
xyno.desktop.common-programs.enable = true;
|
||||
xyno.hardware.kmonad.enable = true;
|
||||
xyno.presets.cli.enable = true;
|
||||
|
|
|
|||
|
|
@ -13,239 +13,237 @@ in
|
|||
config = lib.mkIf cfg.enable {
|
||||
programs.starship.enable = true;
|
||||
programs.starship.settings = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"add_newline" = false;
|
||||
# "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";
|
||||
"right_format" =
|
||||
"$nix_shell$git_branch$git_commit$git_state$git_status$package$custom$os$battery$time";
|
||||
aws.disabled = true;
|
||||
status.disabled = false;
|
||||
battery.disabled = true;
|
||||
"buf" = {
|
||||
"format" = " [buf](italic) [$symbol $version $buf_version]($style)";
|
||||
# "symbol" = "■ ";
|
||||
};
|
||||
"c" = {
|
||||
"format" = " [$symbol($version(-$name))]($style)";
|
||||
# "symbol" = "ℂ ";
|
||||
};
|
||||
"character" = {
|
||||
"error_symbol" = "[:](italic purple)";
|
||||
"format" = "$symbol ";
|
||||
"success_symbol" = "[:](bold italic bright-yellow)";
|
||||
"vimcmd_replace_one_symbol" = "r";
|
||||
"vimcmd_replace_symbol" = "R";
|
||||
"vimcmd_symbol" = "[>](italic dimmed green)";
|
||||
"vimcmd_visual_symbol" = "SEL";
|
||||
};
|
||||
"cmd_duration" = {
|
||||
"format" = "[$duration](italic white) ";
|
||||
};
|
||||
"conda" = {
|
||||
"format" = " conda [$symbol$environment]($style)";
|
||||
# "symbol" = "◯ ";
|
||||
};
|
||||
"continuation_prompt" = "[▸▹ ](dimmed white)";
|
||||
"dart" = {
|
||||
"format" = " dart [$symbol($version )]($style)";
|
||||
# "symbol" = "◁◅ ";
|
||||
};
|
||||
"deno" = {
|
||||
"format" = " [deno](italic) [∫ $version](green bold)";
|
||||
"version_format" = "\${raw}";
|
||||
};
|
||||
"directory" = {
|
||||
"format" = "[$path]($style)[$read_only]($read_only_style)";
|
||||
"home_symbol" = "~";
|
||||
"read_only" = " (ro) ";
|
||||
"repo_root_format" =
|
||||
"[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style)";
|
||||
"repo_root_style" = "bold blue";
|
||||
"style" = "italic blue";
|
||||
"truncation_length" = 50;
|
||||
"truncation_symbol" = "⋯";
|
||||
"use_os_path_sep" = true;
|
||||
};
|
||||
"docker_context" = {
|
||||
"format" = " docker [$symbol$context]($style)";
|
||||
# "symbol" = "◧ ";
|
||||
};
|
||||
direnv = {
|
||||
disabled = false;
|
||||
};
|
||||
"elixir" = {
|
||||
"format" = " exs [$symbol $version OTP $otp_version ]($style)";
|
||||
# "symbol" = "△ ";
|
||||
};
|
||||
"elm" = {
|
||||
"format" = " elm [$symbol($version )]($style)";
|
||||
# "symbol" = "◩ ";
|
||||
};
|
||||
"env_var" = {
|
||||
"VIMSHELL" = {
|
||||
"format" = "[$env_value]($style)";
|
||||
"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";
|
||||
# enable = true;
|
||||
"add_newline" = false;
|
||||
# "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 ";
|
||||
"right_format" =
|
||||
"$nix_shell$git_branch$git_commit$git_state$git_status$package$custom$os$battery$time";
|
||||
aws.disabled = true;
|
||||
status.disabled = false;
|
||||
battery.disabled = true;
|
||||
"buf" = {
|
||||
"format" = " [buf](italic) [$symbol $version $buf_version]($style)";
|
||||
# "symbol" = "■ ";
|
||||
};
|
||||
"c" = {
|
||||
"format" = " [$symbol($version(-$name))]($style)";
|
||||
# "symbol" = "ℂ ";
|
||||
};
|
||||
"character" = {
|
||||
"error_symbol" = "[:](italic purple)";
|
||||
"format" = "$symbol ";
|
||||
"success_symbol" = "[:](bold italic bright-yellow)";
|
||||
"vimcmd_replace_one_symbol" = "r";
|
||||
"vimcmd_replace_symbol" = "R";
|
||||
"vimcmd_symbol" = "[>](italic dimmed green)";
|
||||
"vimcmd_visual_symbol" = "SEL";
|
||||
};
|
||||
"cmd_duration" = {
|
||||
"format" = "[$duration](italic white) ";
|
||||
};
|
||||
"conda" = {
|
||||
"format" = " conda [$symbol$environment]($style)";
|
||||
# "symbol" = "◯ ";
|
||||
};
|
||||
"continuation_prompt" = "[▸▹ ](dimmed white)";
|
||||
"dart" = {
|
||||
"format" = " dart [$symbol($version )]($style)";
|
||||
# "symbol" = "◁◅ ";
|
||||
};
|
||||
"deno" = {
|
||||
"format" = " [deno](italic) [∫ $version](green bold)";
|
||||
"version_format" = "\${raw}";
|
||||
};
|
||||
"directory" = {
|
||||
"format" = "[$path]($style)[$read_only]($read_only_style)";
|
||||
"home_symbol" = "~";
|
||||
"read_only" = " (ro) ";
|
||||
"repo_root_format" =
|
||||
"[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style)";
|
||||
"repo_root_style" = "bold blue";
|
||||
"style" = "italic blue";
|
||||
"truncation_length" = 50;
|
||||
"truncation_symbol" = "⋯";
|
||||
"use_os_path_sep" = true;
|
||||
};
|
||||
"docker_context" = {
|
||||
"format" = " docker [$symbol$context]($style)";
|
||||
# "symbol" = "◧ ";
|
||||
};
|
||||
direnv = {
|
||||
disabled = false;
|
||||
};
|
||||
"elixir" = {
|
||||
"format" = " exs [$symbol $version OTP $otp_version ]($style)";
|
||||
# "symbol" = "△ ";
|
||||
};
|
||||
"elm" = {
|
||||
"format" = " elm [$symbol($version )]($style)";
|
||||
# "symbol" = "◩ ";
|
||||
};
|
||||
"env_var" = {
|
||||
"VIMSHELL" = {
|
||||
"format" = "[$env_value]($style)";
|
||||
"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";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
|
@ -25,7 +26,6 @@ in
|
|||
services.gnome.evolution-data-server.enable = true;
|
||||
services.flatpak.enable = true;
|
||||
programs.fuse.userAllowOther = true;
|
||||
programs.sway.enable = true;
|
||||
programs.nix-ld.enable = true;
|
||||
programs.gamescope.enable = true;
|
||||
programs.wireshark.enable = true;
|
||||
|
|
@ -34,7 +34,7 @@ in
|
|||
environment.systemPackages = with pkgs; [
|
||||
element-desktop # this is not a place of honor
|
||||
discord # shitcord
|
||||
unstable.signal-desktop
|
||||
signal-desktop
|
||||
obsidian
|
||||
diebahn
|
||||
vlc
|
||||
|
|
|
|||
|
|
@ -28,19 +28,295 @@ in
|
|||
xyno.desktop = {
|
||||
waybar.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 ({...}: {
|
||||
xyno.dark-theme.enable = true;
|
||||
});
|
||||
home-manager.users.${config.xyno.system.user.name} =
|
||||
lib.mkIf config.xyno.presets.home-manager.enable
|
||||
(
|
||||
{ ... }:
|
||||
{
|
||||
xyno.dark-theme.enable = true;
|
||||
}
|
||||
);
|
||||
|
||||
# xdg.portal = {
|
||||
# enable = true;
|
||||
# wlr.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 = ''
|
||||
// xwayland
|
||||
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"
|
||||
// Indicate screencasted windows with red colors.
|
||||
|
|
@ -67,9 +343,10 @@ in
|
|||
}
|
||||
// Block out password managers from screencasts.
|
||||
window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
match app-id="KeePassXC"
|
||||
|
||||
open-floating true
|
||||
open-on-workspace "scratchpad"
|
||||
block-out-from "screencast"
|
||||
}
|
||||
// Block out mako notifications from screencasts.
|
||||
|
|
@ -78,11 +355,21 @@ in
|
|||
|
||||
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 {
|
||||
workspace-auto-back-and-forth
|
||||
focus-follows-mouse max-scroll-amount="10%"
|
||||
focus-follows-mouse
|
||||
touchpad {
|
||||
tap
|
||||
natural-scroll
|
||||
}
|
||||
}
|
||||
// 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
|
||||
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
|
||||
{
|
||||
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 {
|
||||
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 {
|
||||
environment.systemPackages = with cfg; [ package swaylockPackage ];
|
||||
systemd.user.services.mako = {
|
||||
systemd.user.services.swayidle = {
|
||||
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/mako -c ${makoConf}";
|
||||
restartTrigers = 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}'";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,27 +23,32 @@ in
|
|||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.waybar.enable = true;
|
||||
programs.waybar.package = cfg.package;
|
||||
programs.light.enable = true;
|
||||
|
||||
systemd.user.services.waybar.wantedBy = lib.mkForce [ cfg.wantedBy ];
|
||||
environment.etc."xdg/waybar/config".text = builtins.toJSON {
|
||||
mainBar = {
|
||||
systemd.user.services.waybar.restartTriggers = [ "/etc/xdg/waybar/config" "/etc/xdg/waybar/style.css" ];
|
||||
environment.etc."xdg/waybar/config".source =
|
||||
let
|
||||
json = pkgs.formats.json { };
|
||||
in
|
||||
|
||||
(json.generate "waybar-config.json" {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 15;
|
||||
modules-left =
|
||||
(lib.optional (cfg.mode == "river") [
|
||||
modules-left = (lib.optionals (cfg.mode == "river") [
|
||||
"river/tags"
|
||||
"river/layout"
|
||||
"river/window"
|
||||
])
|
||||
++ (lib.optional (cfg.mode == "niri") [
|
||||
++ (lib.optionals (cfg.mode == "niri") [
|
||||
"niri/workspaces"
|
||||
"niri/window"
|
||||
]);
|
||||
modules-right = [
|
||||
"tray"
|
||||
"power-profiles-daemon"
|
||||
"power_profiles_daemon"
|
||||
"idle_inhibitor"
|
||||
"wireplumber"
|
||||
"battery"
|
||||
|
|
@ -52,13 +57,15 @@ in
|
|||
"temperature"
|
||||
"memory"
|
||||
"disk"
|
||||
"custom/tailscale"
|
||||
"network"
|
||||
"clock"
|
||||
];
|
||||
"river/window" = {
|
||||
max-length = 40;
|
||||
};
|
||||
"niri/window" = {
|
||||
max-length = 40;
|
||||
};
|
||||
wireplumber = {
|
||||
"format" = "{icon} {volume}%";
|
||||
"format-muted" = " MUTE";
|
||||
|
|
@ -162,8 +169,7 @@ in
|
|||
"tooltip-format-disconnected" = "Disconnected";
|
||||
"max-length" = 50;
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
environment.etc."xdg/waybar/style.css".text = ''
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
|
|
@ -202,7 +208,7 @@ in
|
|||
border: none;
|
||||
}*/
|
||||
|
||||
#tags button {
|
||||
#workspaces button {
|
||||
padding: 0 2px;
|
||||
background-color: #1d2021;
|
||||
color: #ebdbb2;
|
||||
|
|
@ -214,24 +220,24 @@ in
|
|||
}
|
||||
|
||||
/* 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);
|
||||
/* box-shadow: inset 0 -3px #fbf1c7;
|
||||
*/
|
||||
background-color: #3c3836;
|
||||
}
|
||||
|
||||
#tags button.focused {
|
||||
#workspaces button.focused {
|
||||
/* box-shadow: inset 0 -3px #fbf1c7;
|
||||
*/
|
||||
background-color: #3c3836;
|
||||
color: #ebdbb2;
|
||||
}
|
||||
|
||||
#tags button.occupied {
|
||||
#workspaces button.occupied {
|
||||
color: #d3869b;
|
||||
}
|
||||
#tags button.urgent {
|
||||
#workspaces button.urgent {
|
||||
background-color: #cc241d;
|
||||
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/mako.nix
|
||||
./desktop/niri.nix
|
||||
./desktop/shikane.nix
|
||||
./desktop/swayidle.nix
|
||||
./desktop/waybar.nix
|
||||
./desktop/wpaperd.nix
|
||||
./hardware/kmonad.nix
|
||||
./networking/networkd.nix
|
||||
./presets/cli.nix
|
||||
|
|
|
|||
|
|
@ -14,6 +14,24 @@ in
|
|||
xyno.cli.fish.enable = true;
|
||||
xyno.cli.starship.enable = true;
|
||||
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; [
|
||||
jq
|
||||
bottom
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ in
|
|||
lib.mkEnableOption "enables home manager on the default user";
|
||||
config = lib.mkIf cfg.enable {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs;};
|
||||
home-manager.sharedModules = (import ../../hm-modules/module-list.nix) ++ [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue