Complete system rework feat. Niri, Noctalia, Helix, Vicinae, Zellij, & Kanshi
BIN
assets/profile-picture.jpg
Normal file
|
After Width: | Height: | Size: 622 KiB |
BIN
assets/wallpapers/gruvbox-mountain-village.png
Normal file
|
After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 7.5 MiB After Width: | Height: | Size: 7.5 MiB |
BIN
assets/wallpapers/mountains.jpg
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 826 KiB After Width: | Height: | Size: 826 KiB |
|
Before Width: | Height: | Size: 6.0 MiB After Width: | Height: | Size: 6.0 MiB |
1022
flake.lock
generated
40
flake.nix
@@ -31,37 +31,31 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
plasma-manager = {
|
|
||||||
url = "github:nix-community/plasma-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:nix-community/stylix";
|
url = "github:nix-community/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
mango.url = "github:DreamMaoMao/mango?rev=1271832e947d3d4af27b36f687edd2f2e535f051";
|
noctalia = {
|
||||||
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
|
||||||
|
|
||||||
silentSDDM = {
|
|
||||||
url = "github:uiriansan/SilentSDDM";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors";
|
niri = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
elephant = {
|
|
||||||
url = "github:abenz1267/elephant";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
walker = {
|
zen-browser = {
|
||||||
url = "github:abenz1267/walker";
|
url = "github:0xc000022070/zen-browser-flake";
|
||||||
inputs.elephant.follows = "elephant";
|
inputs = {
|
||||||
|
# IMPORTANT: To ensure compatibility with the latest Firefox version, use nixpkgs-unstable.
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-jmu-cs345.url = "github:Eclypsed/nix-jmu-cs345";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -74,13 +68,7 @@
|
|||||||
{
|
{
|
||||||
nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = { inherit inputs; };
|
||||||
inherit inputs;
|
|
||||||
host = "vanta";
|
|
||||||
wallpaper = "twilight-village.png";
|
|
||||||
# Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub).
|
|
||||||
hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
|
||||||
};
|
|
||||||
modules = [
|
modules = [
|
||||||
./modules/system
|
./modules/system
|
||||||
./hosts/vanta
|
./hosts/vanta
|
||||||
|
|||||||
21
hosts/hosts.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.host = {
|
||||||
|
name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Logical host name";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub).
|
||||||
|
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
||||||
|
# exist until it is generated after the first rebuild.
|
||||||
|
pubKey = lib.mkOption {
|
||||||
|
type = lib.types.nullOr lib.types.str;
|
||||||
|
default = null;
|
||||||
|
description = "The public key of the host. Will be null until generated on first rebuild";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -7,5 +7,11 @@
|
|||||||
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../profiles/intel.nix
|
../../profiles/intel.nix
|
||||||
|
../hosts.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
host = {
|
||||||
|
name = "vanta";
|
||||||
|
pubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
12
modules/home/assets.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.file.".face".source = ../../assets/profile-picture.jpg;
|
||||||
|
|
||||||
|
home.file."${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}" = {
|
||||||
|
source = ../../assets/wallpapers;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,28 +3,24 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./assets.nix
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./foot.nix
|
|
||||||
# ./ghostty.nix
|
|
||||||
./git.nix
|
./git.nix
|
||||||
# ./helix.nix
|
./helix.nix
|
||||||
./hypr
|
./kanshi.nix
|
||||||
./mango.nix
|
./niri.nix
|
||||||
|
./noctalia.nix
|
||||||
./nvf.nix
|
./nvf.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
# ./plasma.nix
|
|
||||||
./screenshot.nix
|
./screenshot.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./stylix.nix
|
./stylix.nix
|
||||||
./swaync.nix
|
./terminal.nix
|
||||||
./vscode.nix
|
./vesktop.nix
|
||||||
./walker.nix
|
./vicinae.nix
|
||||||
./wallpaper.nix
|
|
||||||
./waybar
|
|
||||||
./wlogout.nix
|
|
||||||
./xdg.nix
|
./xdg.nix
|
||||||
./yazi.nix
|
./yazi.nix
|
||||||
./zed.nix
|
./zed.nix
|
||||||
./zsh.nix
|
./zen-browser.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,20 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
# This gets around having to run `pywalfox install` manually, which just creates this manifest
|
||||||
|
home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = builtins.toJSON {
|
||||||
|
name = "pywalfox";
|
||||||
|
description = "Automatically theme your browser using the colors generated by Pywal";
|
||||||
|
path = "${pkgs.pywalfox-native}/bin/pywalfox";
|
||||||
|
type = "stdio";
|
||||||
|
allowed_extensions = [ "pywalfox@frewacom.org" ];
|
||||||
|
};
|
||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
languagePacks = [ "en-US" ];
|
languagePacks = [ "en-US" ];
|
||||||
nativeMessagingHosts = with pkgs; [
|
nativeMessagingHosts = with pkgs; [
|
||||||
kdePackages.plasma-browser-integration
|
pywalfox-native
|
||||||
];
|
];
|
||||||
policies = {
|
policies = {
|
||||||
DefaultDownloadDirectory = config.xdg.userDirs.download;
|
DefaultDownloadDirectory = config.xdg.userDirs.download;
|
||||||
@@ -70,7 +79,7 @@
|
|||||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
ublock-origin
|
ublock-origin
|
||||||
bitwarden
|
bitwarden
|
||||||
plasma-integration
|
pywalfox
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
"uBlock0@raymondhill.net".settings = {
|
"uBlock0@raymondhill.net".settings = {
|
||||||
@@ -108,16 +117,6 @@
|
|||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
chat-gpt = {
|
|
||||||
name = "ChatGPT";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://chatgpt.com?q={searchTerms}&temporary-chat=true";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
iconMapObj."64" = "https://chatgpt.com/favicon.ico";
|
|
||||||
definedAliases = [ "@gpt" ];
|
|
||||||
};
|
|
||||||
surugaya = {
|
surugaya = {
|
||||||
name = "Surugaya";
|
name = "Surugaya";
|
||||||
urls = [
|
urls = [
|
||||||
@@ -125,8 +124,7 @@
|
|||||||
template = "https://www.suruga-ya.jp/search?search_word={searchTerms}";
|
template = "https://www.suruga-ya.jp/search?search_word={searchTerms}";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
iconMapObj."32" =
|
iconMapObj."16" = "https://www.suruga-ya.jp/drupal/themes/surugaya/favicon.ico";
|
||||||
"https://www.suruga-ya.jp/drupal/themes/surugaya_mobile/images/pwa/images/icons/favicon-32x32.png";
|
|
||||||
definedAliases = [ "@suru" ];
|
definedAliases = [ "@suru" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.foot = {
|
|
||||||
enable = true;
|
|
||||||
server.enable = false;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
term = "xterm-256color";
|
|
||||||
};
|
|
||||||
mouse = {
|
|
||||||
hide-when-typing = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
term = "xterm-256color";
|
|
||||||
};
|
|
||||||
systemd.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -2,17 +2,38 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
yazi-picker = pkgs.writeShellApplication {
|
||||||
|
name = "yazi-picker";
|
||||||
|
text = ''
|
||||||
|
paths=$(yazi --chooser-file=/dev/stdout)
|
||||||
|
|
||||||
|
if [[ -n "$paths" ]]; then
|
||||||
|
zellij action toggle-floating-panes
|
||||||
|
zellij action write 27 # send <Escape> key
|
||||||
|
zellij action write-chars ":$1 $paths"
|
||||||
|
zellij action write 13 # send <Enter> key
|
||||||
|
else
|
||||||
|
zellij action toggle-floating-panes
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
home.packages = [ yazi-picker ];
|
||||||
|
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
basedpyright
|
basedpyright
|
||||||
ruff
|
ruff
|
||||||
# pylyzer
|
|
||||||
isort
|
isort
|
||||||
black
|
black
|
||||||
nixd
|
nixd
|
||||||
nixfmt
|
nixfmt
|
||||||
|
rust-analyzer
|
||||||
|
rustfmt
|
||||||
];
|
];
|
||||||
languages = {
|
languages = {
|
||||||
language = [
|
language = [
|
||||||
@@ -21,7 +42,6 @@
|
|||||||
language-servers = [
|
language-servers = [
|
||||||
"basedpyright"
|
"basedpyright"
|
||||||
"ruff"
|
"ruff"
|
||||||
# "pylyzer"
|
|
||||||
];
|
];
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter = {
|
formatter = {
|
||||||
@@ -40,6 +60,18 @@
|
|||||||
command = "nixfmt";
|
command = "nixfmt";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "rust";
|
||||||
|
language-servers = [ "rust-analyzer" ];
|
||||||
|
auto-format = true;
|
||||||
|
roots = [
|
||||||
|
"Cargo.toml"
|
||||||
|
"Cargo.lock"
|
||||||
|
];
|
||||||
|
formatter = {
|
||||||
|
command = "rustfmt";
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
language-server = {
|
language-server = {
|
||||||
basedpyright.config.python.analysis = {
|
basedpyright.config.python.analysis = {
|
||||||
@@ -49,17 +81,29 @@
|
|||||||
command = "ruff";
|
command = "ruff";
|
||||||
args = [ "server" ];
|
args = [ "server" ];
|
||||||
};
|
};
|
||||||
# pylyzer = {
|
|
||||||
# command = "pylyzer";
|
|
||||||
# args = [ "--server" ];
|
|
||||||
# };
|
|
||||||
nixd = {
|
nixd = {
|
||||||
command = "nixd";
|
command = "nixd";
|
||||||
};
|
};
|
||||||
|
rust-analyzer = {
|
||||||
|
command = "rust-analyzer";
|
||||||
|
config = {
|
||||||
|
inlayHints = {
|
||||||
|
bindingModeHints.enable = false;
|
||||||
|
closingBraceHints.minLines = 10;
|
||||||
|
closureReturnTypeHints.enable = "with_block";
|
||||||
|
discriminantHints.enable = "fieldless";
|
||||||
|
lifetimeElisionHints.enable = "skip_trivial";
|
||||||
|
typeHints.hideClosureInitialization = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
editor = {
|
editor = {
|
||||||
|
bufferline = "always";
|
||||||
|
completion-timeout = 5;
|
||||||
|
completion-trigger-len = 1;
|
||||||
line-number = "relative";
|
line-number = "relative";
|
||||||
cursorline = true;
|
cursorline = true;
|
||||||
color-modes = true;
|
color-modes = true;
|
||||||
@@ -68,8 +112,22 @@
|
|||||||
normal = "block";
|
normal = "block";
|
||||||
select = "underline";
|
select = "underline";
|
||||||
};
|
};
|
||||||
|
lsp = {
|
||||||
|
display-inlay-hints = true;
|
||||||
|
};
|
||||||
indent-guides = {
|
indent-guides = {
|
||||||
render = true;
|
render = true;
|
||||||
|
skip-levels = 1;
|
||||||
|
};
|
||||||
|
soft-wrap = {
|
||||||
|
enable = true;
|
||||||
|
max-indent-retain = 80;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keys = {
|
||||||
|
normal = {
|
||||||
|
"C-y" =
|
||||||
|
":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- yazi-picker open %{buffer_name}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
theme = "catppuccin_mocha";
|
theme = "catppuccin_mocha";
|
||||||
|
|||||||
39
modules/home/kanshi.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "laptop";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "enable";
|
||||||
|
scale = 1.0;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "docked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "disable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "LG Electronics LG TV SSCR2 *";
|
||||||
|
mode = "3840x2160@120Hz";
|
||||||
|
scale = 1.0;
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.mango.hmModules.mango
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.mango = {
|
|
||||||
enable = true;
|
|
||||||
settings = ''
|
|
||||||
bind=SUPER,Return,spawn,alacritty
|
|
||||||
bind=SUPER,s,spawn,rofi -show drun
|
|
||||||
|
|
||||||
bind=SUPER,q,killclient
|
|
||||||
bind=SUPER+SHIFT,r,reload_config
|
|
||||||
|
|
||||||
bind=SUPER,t,setlayout,tile
|
|
||||||
bind=SUPER,v,setlayout,vertical_grid
|
|
||||||
bind=SUPER,c,setlayout,spiral
|
|
||||||
bind=SUPER,x,setlayout,scroller
|
|
||||||
bind=SUPER,n,switch_layout
|
|
||||||
bind=SUPER,a,togglegaps
|
|
||||||
|
|
||||||
bind=SUPER,Up,focusdir,up
|
|
||||||
bind=SUPER,Down,focusdir,down
|
|
||||||
bind=SUPER,Left,focusdir,left
|
|
||||||
bind=SUPER,Right,focusdir,right
|
|
||||||
|
|
||||||
bind=SUPER+SHIFT,Up,exchange_client,up
|
|
||||||
bind=SUPER+SHIFT,Down,exchange_client,down
|
|
||||||
bind=SUPER+SHIFT,Left,exchange_client,left
|
|
||||||
bind=SUPER+SHIFT,Right,exchange_client,right
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
427
modules/home/niri.nix
Normal file
@@ -0,0 +1,427 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# Executables
|
||||||
|
foot = lib.getExe' config.programs.foot.package "foot";
|
||||||
|
vicinae = lib.getExe' config.programs.vicinae.package "vicinae";
|
||||||
|
noctalia-shell = lib.getExe' config.programs.noctalia-shell.package "noctalia-shell";
|
||||||
|
playerctl = lib.getExe' pkgs.playerctl "playerctl";
|
||||||
|
wpctl = lib.getExe' pkgs.wireplumber "wpctl";
|
||||||
|
brightnessctl = lib.getExe' pkgs.brightnessctl "brightnessctl";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.niri = {
|
||||||
|
# Niri is enabled by niri.nixosModules.nir in desktop.nix
|
||||||
|
settings = {
|
||||||
|
input = {
|
||||||
|
keyboard = {
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
options = "compose:ralt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
touchpad = {
|
||||||
|
enable = true;
|
||||||
|
click-method = "clickfinger";
|
||||||
|
drag = true;
|
||||||
|
drag-lock = true;
|
||||||
|
dwt = true;
|
||||||
|
natural-scroll = false;
|
||||||
|
scroll-method = "two-finger";
|
||||||
|
tap = true;
|
||||||
|
tap-button-map = "left-right-middle"; # Mouse button click to register when tapping with 1, 2, or 3 fingers
|
||||||
|
};
|
||||||
|
warp-mouse-to-focus = {
|
||||||
|
enable = true;
|
||||||
|
mode = "center-xy-always";
|
||||||
|
};
|
||||||
|
focus-follows-mouse = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
mod-key = "Super";
|
||||||
|
};
|
||||||
|
binds = {
|
||||||
|
# General
|
||||||
|
"Mod+Slash" = {
|
||||||
|
action.show-hotkey-overlay = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Show hotkeys";
|
||||||
|
};
|
||||||
|
"Mod+Q" = {
|
||||||
|
action.close-window = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Close window";
|
||||||
|
};
|
||||||
|
"Mod+W" = {
|
||||||
|
action.spawn = foot;
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Terminal";
|
||||||
|
};
|
||||||
|
"Mod+A" = {
|
||||||
|
action.spawn = [
|
||||||
|
vicinae
|
||||||
|
"toggle"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Launcher";
|
||||||
|
};
|
||||||
|
"Mod+Escape" = {
|
||||||
|
action.spawn = [
|
||||||
|
noctalia-shell
|
||||||
|
"ipc"
|
||||||
|
"call"
|
||||||
|
"sessionMenu"
|
||||||
|
"toggle"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Session menu";
|
||||||
|
};
|
||||||
|
"Mod+N" = {
|
||||||
|
action.spawn = [
|
||||||
|
noctalia-shell
|
||||||
|
"ipc"
|
||||||
|
"call"
|
||||||
|
"notifications"
|
||||||
|
"toggleHistory"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Show notifications";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Media keys
|
||||||
|
"XF86AudioPrev" = {
|
||||||
|
action.spawn = [
|
||||||
|
playerctl
|
||||||
|
"previous"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Previous track";
|
||||||
|
};
|
||||||
|
"XF86AudioPlay" = {
|
||||||
|
action.spawn = [
|
||||||
|
playerctl
|
||||||
|
"play-pause"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Play / pause track";
|
||||||
|
};
|
||||||
|
"XF86AudioNext" = {
|
||||||
|
action.spawn = [
|
||||||
|
playerctl
|
||||||
|
"next"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Next track";
|
||||||
|
};
|
||||||
|
"XF86AudioRaiseVolume" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-volume"
|
||||||
|
"@DEFAULT_AUDIO_SINK@"
|
||||||
|
"0.05+"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Raise volume";
|
||||||
|
};
|
||||||
|
"XF86AudioLowerVolume" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-volume"
|
||||||
|
"@DEFAULT_AUDIO_SINK@"
|
||||||
|
"0.05-"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Lower volume";
|
||||||
|
};
|
||||||
|
"XF86AudioMute" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-mute"
|
||||||
|
"@DEFAULT_AUDIO_SINK@"
|
||||||
|
"toggle"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Mute playback";
|
||||||
|
};
|
||||||
|
"Alt+XF86AudioRaiseVolume" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-volume"
|
||||||
|
"@DEFAULT_AUDIO_SOURCE@"
|
||||||
|
"0.05+"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Raise microphone volume";
|
||||||
|
};
|
||||||
|
"Alt+XF86AudioLowerVolume" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-volume"
|
||||||
|
"@DEFAULT_AUDIO_SOURCE@"
|
||||||
|
"0.05-"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Lower microphone volume";
|
||||||
|
};
|
||||||
|
"Alt+XF86AudioMute" = {
|
||||||
|
action.spawn = [
|
||||||
|
wpctl
|
||||||
|
"set-mute"
|
||||||
|
"@DEFAULT_AUDIO_SOURCE@"
|
||||||
|
"toggle"
|
||||||
|
];
|
||||||
|
repeat = false;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Mute microphone";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Brightness
|
||||||
|
"XF86MonBrightnessUp" = {
|
||||||
|
action.spawn = [
|
||||||
|
brightnessctl
|
||||||
|
"set"
|
||||||
|
"5%+"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Increase brightness";
|
||||||
|
};
|
||||||
|
"XF86MonBrightnessDown" = {
|
||||||
|
action.spawn = [
|
||||||
|
brightnessctl
|
||||||
|
"set"
|
||||||
|
"5%-"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
allow-when-locked = true;
|
||||||
|
hotkey-overlay.title = "Decrease brightness";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Screen capture
|
||||||
|
"Print" = {
|
||||||
|
action.screenshot = {
|
||||||
|
show-pointer = false;
|
||||||
|
};
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Screenshot";
|
||||||
|
};
|
||||||
|
"Mod+Print" = {
|
||||||
|
action.screenshot-window = {
|
||||||
|
# show-pointer = false;
|
||||||
|
};
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Screenshot window";
|
||||||
|
};
|
||||||
|
"Shift+Print" = {
|
||||||
|
action.screenshot-screen = {
|
||||||
|
show-pointer = false;
|
||||||
|
};
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Screenshot screen";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Display scaling
|
||||||
|
"Mod+Ctrl+Equal" = {
|
||||||
|
action.spawn = [
|
||||||
|
"output-scale"
|
||||||
|
"+0.1"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Increase display scale";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+Minus" = {
|
||||||
|
action.spawn = [
|
||||||
|
"output-scale"
|
||||||
|
"-0.1"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Decrease display scale";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+0" = {
|
||||||
|
action.spawn = [
|
||||||
|
"output-scale"
|
||||||
|
"1.0"
|
||||||
|
];
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Reset display scale";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Window and column size
|
||||||
|
"Mod+F" = {
|
||||||
|
action.maximize-column = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Maximize Column";
|
||||||
|
};
|
||||||
|
"Mod+Shift+F" = {
|
||||||
|
action.fullscreen-window = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Fullscreen";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+F" = {
|
||||||
|
action.expand-column-to-available-width = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Fill empty column space";
|
||||||
|
};
|
||||||
|
"Mod+Equal" = {
|
||||||
|
action.set-column-width = "+10%";
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Increase column width";
|
||||||
|
};
|
||||||
|
"Mod+Minus" = {
|
||||||
|
action.set-column-width = "-10%";
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Decrease column width";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Equal" = {
|
||||||
|
action.set-window-height = "+10%";
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Increase window height";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Minus" = {
|
||||||
|
action.set-window-height = "-10%";
|
||||||
|
repeat = true;
|
||||||
|
hotkey-overlay.title = "Decrease window height";
|
||||||
|
};
|
||||||
|
"Mod+Z" = {
|
||||||
|
action.switch-focus-between-floating-and-tiling = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Toggle floating";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Window and column movement
|
||||||
|
"Mod+Up" = {
|
||||||
|
action.focus-window-or-monitor-up = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus window up";
|
||||||
|
};
|
||||||
|
"Mod+Down" = {
|
||||||
|
action.focus-window-or-monitor-down = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus window down";
|
||||||
|
};
|
||||||
|
"Mod+Left" = {
|
||||||
|
action.focus-column-or-monitor-left = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus window left";
|
||||||
|
};
|
||||||
|
"Mod+Right" = {
|
||||||
|
action.focus-column-or-monitor-right = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus window right";
|
||||||
|
};
|
||||||
|
"Mod+BracketLeft" = {
|
||||||
|
action.consume-or-expel-window-left = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move window left";
|
||||||
|
};
|
||||||
|
"Mod+BracketRight" = {
|
||||||
|
action.consume-or-expel-window-right = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move window right";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Up" = {
|
||||||
|
action.move-column-to-monitor-up = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column up";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Down" = {
|
||||||
|
action.move-column-to-monitor-down = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column down";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Left" = {
|
||||||
|
action.move-column-left-or-to-monitor-left = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column left";
|
||||||
|
};
|
||||||
|
"Mod+Shift+Right" = {
|
||||||
|
action.move-column-right-or-to-monitor-right = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column right";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Workspaces
|
||||||
|
"Mod+Ctrl+Up" = {
|
||||||
|
action.focus-workspace-up = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus workspace up";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+Down" = {
|
||||||
|
action.focus-workspace-down = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Focus workspace down";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+Shift+Up" = {
|
||||||
|
action.move-column-to-workspace-up = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column to workspace up";
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+Shift+Down" = {
|
||||||
|
action.move-column-to-workspace-down = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Move column to workspace down";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
"Mod+Tab" = {
|
||||||
|
action.toggle-overview = { };
|
||||||
|
repeat = false;
|
||||||
|
hotkey-overlay.title = "Toggle overview";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
window-rules = [
|
||||||
|
{
|
||||||
|
geometry-corner-radius = {
|
||||||
|
bottom-left = 5.0;
|
||||||
|
bottom-right = 5.0;
|
||||||
|
top-left = 5.0;
|
||||||
|
top-right = 5.0;
|
||||||
|
};
|
||||||
|
clip-to-geometry = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
layer-rules = [
|
||||||
|
{
|
||||||
|
# Use noctalia wallpaper as overview backdrop
|
||||||
|
matches = [ { namespace = "^noctalia-overview*"; } ];
|
||||||
|
place-within-backdrop = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
prefer-no-csd = true;
|
||||||
|
screenshot-path = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y%m%d-%H%M%S.png";
|
||||||
|
hotkey-overlay = {
|
||||||
|
skip-at-startup = true;
|
||||||
|
};
|
||||||
|
# If not using systemd for noctalia, use this
|
||||||
|
# spawn-at-startup = [
|
||||||
|
# { argv = [ "noctalia-shell" ]; }
|
||||||
|
# ];
|
||||||
|
cursor = {
|
||||||
|
size = 16;
|
||||||
|
theme = "catppuccin-mocha-dark-cursors";
|
||||||
|
hide-when-typing = true;
|
||||||
|
};
|
||||||
|
gestures = {
|
||||||
|
hot-corners.enable = false;
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
"NIXOS_OZONE_WL" = "1";
|
||||||
|
};
|
||||||
|
debug = {
|
||||||
|
# Allows notification actions and window activation from Noctalia.
|
||||||
|
honor-xdg-activation-with-invalid-serial = { };
|
||||||
|
};
|
||||||
|
# Support for external 'inclues' sounds like it is in the works.
|
||||||
|
# Will just have to wait until then for noctalia color scheme integration.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
127
modules/home/noctalia.nix
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.noctalia.homeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.noctalia-shell = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true; # Replaces spawn-at-startup in niri
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
avatarImage = "~/.face";
|
||||||
|
};
|
||||||
|
location.name = "Washington DC";
|
||||||
|
bar = {
|
||||||
|
widgets = {
|
||||||
|
right = [
|
||||||
|
{
|
||||||
|
id = "plugin:tailscale";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "Tray";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "NotificationHistory";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "Battery";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "Volume";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "Brightness";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "ControlCenter";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
templates = {
|
||||||
|
activeTemplates = [
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "discord";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "foot";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "gtk";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "helix";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "niri";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "pywalfox";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "qt";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "vicinae";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "yazi";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
id = "zed";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
enableUserTheming = true;
|
||||||
|
};
|
||||||
|
wallpaper = {
|
||||||
|
enabled = true;
|
||||||
|
overviewEnabled = true;
|
||||||
|
directory = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}";
|
||||||
|
};
|
||||||
|
colorSchemes.predefinedScheme = "Catppuccin";
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
sources = [
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
name = "Noctalia Plugins";
|
||||||
|
url = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
states = {
|
||||||
|
tailscale = {
|
||||||
|
enabled = true;
|
||||||
|
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
version = 1;
|
||||||
|
};
|
||||||
|
pluginSettings = {
|
||||||
|
tailscale = {
|
||||||
|
refreshInterval = 5000;
|
||||||
|
compactMode = true;
|
||||||
|
showIpAddress = false;
|
||||||
|
showPeerCount = false;
|
||||||
|
hideDisconnected = false;
|
||||||
|
terminalCommand = "foot";
|
||||||
|
pingCount = 5;
|
||||||
|
defaultPeerAction = "copy-ip";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
host,
|
# host,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -13,11 +13,19 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
vim = {
|
vim = {
|
||||||
viAlias = false;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
|
# lazy.plugins = {
|
||||||
|
# "kanagawa.nvim" = {
|
||||||
|
# package = pkgs.vimPlugins.kanagawa-nvim;
|
||||||
|
# setupModule = "kanagawa";
|
||||||
|
# after = "vim.cmd(\"colorscheme kanagawa\")";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
wrap = false;
|
wrap = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
clipboard = {
|
clipboard = {
|
||||||
@@ -67,6 +75,12 @@
|
|||||||
whichKey.enable = true;
|
whichKey.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
enable = true;
|
||||||
|
name = "catppuccin";
|
||||||
|
style = "mocha";
|
||||||
|
};
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
{
|
{
|
||||||
key = "<A-e>";
|
key = "<A-e>";
|
||||||
@@ -124,12 +138,6 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
theme = {
|
|
||||||
enable = true;
|
|
||||||
name = "catppuccin";
|
|
||||||
style = "mocha";
|
|
||||||
};
|
|
||||||
|
|
||||||
languages = {
|
languages = {
|
||||||
enableTreesitter = true;
|
enableTreesitter = true;
|
||||||
enableFormat = true;
|
enableFormat = true;
|
||||||
@@ -140,7 +148,7 @@
|
|||||||
dap.enable = true;
|
dap.enable = true;
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
server = "clangd";
|
servers = [ "clangd" ];
|
||||||
};
|
};
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
};
|
};
|
||||||
@@ -149,7 +157,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = "prettier";
|
type = [ "prettier" ];
|
||||||
};
|
};
|
||||||
lsp.enable = true;
|
lsp.enable = true;
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
@@ -170,6 +178,7 @@
|
|||||||
};
|
};
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
type = [ "prettierd" ];
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -183,21 +192,19 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nixfmt;
|
type = [ "nixfmt" ];
|
||||||
type = "nixfmt";
|
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nixd;
|
servers = [ "nixd" ];
|
||||||
server = "nixd";
|
# options = {
|
||||||
options = {
|
# nixos = {
|
||||||
nixos = {
|
# expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options";
|
||||||
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options";
|
# };
|
||||||
};
|
# home-manager = {
|
||||||
home-manager = {
|
# expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []";
|
||||||
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []";
|
# };
|
||||||
};
|
# };
|
||||||
};
|
|
||||||
};
|
};
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
};
|
};
|
||||||
@@ -210,7 +217,10 @@
|
|||||||
};
|
};
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = "black-and-isort";
|
type = [
|
||||||
|
"black"
|
||||||
|
"isort"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -242,7 +252,7 @@
|
|||||||
extraDiagnostics.enable = true;
|
extraDiagnostics.enable = true;
|
||||||
format = {
|
format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = "prettier";
|
type = [ "prettier" ];
|
||||||
};
|
};
|
||||||
lsp.enable = true;
|
lsp.enable = true;
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
|
|||||||
@@ -1,21 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nix-jmu-cs345.homeManagerModules.bernstdh
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nix-jmu-cs345.enable = true;
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
zoom-us
|
zoom-us
|
||||||
devenv
|
devenv
|
||||||
discord
|
htop
|
||||||
sqlitebrowser
|
obsidian
|
||||||
drawio
|
|
||||||
check-capslock
|
|
||||||
wl-clipboard-rs
|
|
||||||
|
|
||||||
# Libre Office
|
|
||||||
libreoffice-qt
|
|
||||||
hunspell
|
|
||||||
hunspellDicts.en_US
|
|
||||||
|
|
||||||
# CD Stuff
|
# CD Stuff
|
||||||
picard
|
picard
|
||||||
@@ -23,9 +22,6 @@
|
|||||||
rsgain
|
rsgain
|
||||||
|
|
||||||
playerctl
|
playerctl
|
||||||
pamixer
|
|
||||||
pavucontrol
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
obsidian
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,22 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
hyprshot
|
grim
|
||||||
satty
|
slurp
|
||||||
|
wl-clipboard-rs
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."satty/config.toml".text = ''
|
programs.swappy = {
|
||||||
[general]
|
enable = true;
|
||||||
fullscreen = false
|
# Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config
|
||||||
output-filename = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y-%m-%d_%H:%M:%S.png"
|
settings = {
|
||||||
'';
|
Default = {
|
||||||
|
save_dir = config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR;
|
||||||
|
save_filename_format = "%Y%m%d-%H%M%S.png";
|
||||||
|
show_panel = false;
|
||||||
|
auto_save = false;
|
||||||
|
early_exit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,11 @@
|
|||||||
serverAliveCountMax = 5;
|
serverAliveCountMax = 5;
|
||||||
serverAliveInterval = 60;
|
serverAliveInterval = 60;
|
||||||
};
|
};
|
||||||
|
"cluster" = {
|
||||||
|
hostname = "login02.cluster.cs.jmu.edu";
|
||||||
|
user = "tamassno";
|
||||||
|
proxyJump = "stu";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -13,43 +14,77 @@
|
|||||||
autoEnable = false;
|
autoEnable = false;
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||||
|
cursor = {
|
||||||
|
name = "Catppuccin-Mocha-Dark-Cursors";
|
||||||
|
package = pkgs.catppuccin-cursors.mochaDark;
|
||||||
|
size = 16;
|
||||||
|
};
|
||||||
fonts = {
|
fonts = {
|
||||||
monospace = {
|
monospace = {
|
||||||
name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font";
|
name = "JetBrainsMono Nerd Font";
|
||||||
package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code;
|
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
icons = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.morewaita-icon-theme;
|
||||||
|
light = "MoreWaita";
|
||||||
|
dark = "MoreWaita";
|
||||||
|
};
|
||||||
targets = {
|
targets = {
|
||||||
ghostty.enable = true;
|
foot = {
|
||||||
gtk.enable = true;
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
profileNames = [ "eclypse" ];
|
fonts.enable = true;
|
||||||
colorTheme.enable = true;
|
colors.enable = false;
|
||||||
firefoxGnomeTheme.enable = true;
|
inputs.enable = false;
|
||||||
|
opacity.enable = false;
|
||||||
};
|
};
|
||||||
foot.enable = true;
|
|
||||||
lazygit.enable = true;
|
|
||||||
starship.enable = true;
|
|
||||||
swaync.enable = true;
|
|
||||||
yazi.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
name = "Catppuccin-Mocha-Dark-Cursors";
|
|
||||||
package = pkgs.catppuccin-cursors.mochaDark;
|
|
||||||
size = 16;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
colorScheme = "dark";
|
colorScheme = "dark";
|
||||||
iconTheme = {
|
iconTheme.name = "MoreWaita";
|
||||||
name = "Adwaita";
|
theme = {
|
||||||
package = pkgs.adwaita-icon-theme;
|
name = "adw-gtk3-dark";
|
||||||
|
package = pkgs.adw-gtk3;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "qtct";
|
||||||
|
style.name = "breeze";
|
||||||
|
qt5ctSettings = {
|
||||||
|
Appearance = {
|
||||||
|
color_scheme_path = "${config.xdg.configHome}/qt5ct/colors/noctalia.conf";
|
||||||
|
custom_palette = true;
|
||||||
|
icon_theme = "MoreWaita";
|
||||||
|
standard_dialogs = "xdgdesktopportal";
|
||||||
|
style = "Breeze";
|
||||||
|
};
|
||||||
|
Fonts = {
|
||||||
|
fixed = "\"JetBrainsMono Nerd Font Mono,12\"";
|
||||||
|
general = "\"JetBrainsMono Nerd Font Propo,12\"";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
qt6ctSettings = {
|
||||||
|
Appearance = {
|
||||||
|
color_scheme_path = "${config.xdg.configHome}/qt6ct/colors/noctalia.conf";
|
||||||
|
custom_palette = true;
|
||||||
|
icon_theme = "MoreWaita";
|
||||||
|
standard_dialogs = "xdgdesktopportal";
|
||||||
|
style = "Breeze";
|
||||||
|
};
|
||||||
|
Fonts = {
|
||||||
|
fixed = "\"JetBrainsMono Nerd Font Mono,12\"";
|
||||||
|
general = "\"JetBrainsMono Nerd Font Propo,12\"";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
QS_ICON_THEME = "MoreWaita";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -11,6 +12,19 @@
|
|||||||
fastfetch = {
|
fastfetch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
foot = {
|
||||||
|
enable = true;
|
||||||
|
server.enable = false;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
term = "xterm-256color";
|
||||||
|
include = "${config.xdg.configHome}/foot/themes/noctalia";
|
||||||
|
};
|
||||||
|
mouse = {
|
||||||
|
hide-when-typing = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
fzf = {
|
fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
@@ -21,84 +35,62 @@
|
|||||||
settings = {
|
settings = {
|
||||||
add_newline = true;
|
add_newline = true;
|
||||||
format = pkgs.lib.concatStrings [
|
format = pkgs.lib.concatStrings [
|
||||||
"[╭─](fg:base02)"
|
"[ ╭─$username([@](bold 3)$hostname) $directory( $git_branch $git_status)](5)"
|
||||||
"[ ](bg:base02 fg:base07)"
|
|
||||||
"[](bg:base07 fg:base02)"
|
|
||||||
"[( $username(@$hostname) )](bg:base07 fg:base02)"
|
|
||||||
"[](bg:red fg:base07)"
|
|
||||||
"[ $directory ](bg:red fg:base02)"
|
|
||||||
"[](bg:cyan fg:red)"
|
|
||||||
"[( $git_branch $git_status )](bg:cyan fg:base02)"
|
|
||||||
"[](fg:cyan bg:blue)"
|
|
||||||
"[(( $golang)( $nodejs)( $rust)( $python) )](bg:blue fg:base02)"
|
|
||||||
"[](fg:blue)"
|
|
||||||
"$line_break"
|
"$line_break"
|
||||||
"[╰─](fg:base02)"
|
"[ ╰─$character](5)"
|
||||||
"$character"
|
|
||||||
];
|
];
|
||||||
username = {
|
username = {
|
||||||
|
style_root = "white";
|
||||||
|
format = "[$user](5)";
|
||||||
|
disabled = false;
|
||||||
show_always = true;
|
show_always = true;
|
||||||
style_user = "none";
|
|
||||||
style_root = "none";
|
|
||||||
format = "[$user]($style)";
|
|
||||||
};
|
};
|
||||||
hostname = {
|
hostname = {
|
||||||
style = "none";
|
format = "[$hostname](bold 7)";
|
||||||
format = "[$hostname]($style)";
|
disabled = false;
|
||||||
ssh_only = false;
|
ssh_only = false;
|
||||||
};
|
};
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "[❯](bold fg:green)";
|
success_symbol = "[❯](bold 5)";
|
||||||
error_symbol = "[✘](bold fg:red)";
|
error_symbol = "[✘](bold 5)";
|
||||||
vimcmd_symbol = "[❮](bold fg:green)";
|
vimcmd_symbol = "[❮](bold 5)";
|
||||||
vimcmd_replace_one_symbol = "[❮](bold fg:lavender)";
|
|
||||||
vimcmd_replace_symbol = "[❮](bold fg:lavender)";
|
|
||||||
vimcmd_visual_symbol = "[❮](bold fg:yellow)";
|
|
||||||
};
|
};
|
||||||
directory = {
|
directory = {
|
||||||
style = "none";
|
read_only = "";
|
||||||
format = "[$path]($style)";
|
format = "[ $path](blue)";
|
||||||
truncation_length = 3;
|
read_only_style = "bold white";
|
||||||
truncation_symbol = "…/";
|
truncation_length = 5;
|
||||||
substitutions = {
|
|
||||||
"Documents" = " ";
|
|
||||||
"Downloads" = " ";
|
|
||||||
"Music" = " ";
|
|
||||||
"Pictures" = " ";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
git_branch = {
|
git_branch = {
|
||||||
symbol = "";
|
symbol = "";
|
||||||
style = "none";
|
style = "bright-black";
|
||||||
format = "[$symbol $branch]($style)";
|
format = "[$symbol $branch]($style)";
|
||||||
};
|
};
|
||||||
git_status = {
|
git_status = {
|
||||||
style = "none";
|
format = "([$all_status$ahead_behind](1))";
|
||||||
format = "[$all_status$ahead_behind]($style)";
|
conflicted = "";
|
||||||
};
|
ahead = "⇡\${count}";
|
||||||
golang = {
|
behind = "⇣\${count}";
|
||||||
symbol = "";
|
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||||
style = "none";
|
up_to_date = "";
|
||||||
format = "[$symbol( $version)]($style)";
|
untracked = "?\${count}";
|
||||||
};
|
stashed = "$${count}";
|
||||||
nodejs = {
|
modified = "!\${count}";
|
||||||
symbol = "";
|
staged = "+\${count}";
|
||||||
style = "none";
|
renamed = "»\${count}";
|
||||||
format = "[$symbol( $version)]($style)";
|
deleted = "✘\${count}";
|
||||||
};
|
|
||||||
python = {
|
|
||||||
symbol = "";
|
|
||||||
style = "none";
|
|
||||||
format = "[$symbol( $version)( \\($virtualenv\\))]($style)";
|
|
||||||
};
|
|
||||||
rust = {
|
|
||||||
symbol = "";
|
|
||||||
style = "none";
|
|
||||||
format = "[$symbol( $version)]($style)";
|
|
||||||
};
|
};
|
||||||
scan_timeout = 100;
|
scan_timeout = 100;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
zellij = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
settings = {
|
||||||
|
theme = "catppuccin-mocha";
|
||||||
|
show_startup_tips = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
zoxide = {
|
zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
@@ -113,6 +105,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
|
dotDir = "${config.xdg.configHome}/zsh";
|
||||||
history = {
|
history = {
|
||||||
append = true;
|
append = true;
|
||||||
findNoDups = true;
|
findNoDups = true;
|
||||||
@@ -143,7 +136,6 @@
|
|||||||
'';
|
'';
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
stu = "ssh stu";
|
|
||||||
ff = "fastfetch";
|
ff = "fastfetch";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
18
modules/home/vesktop.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.vesktop = {
|
||||||
|
enable = true;
|
||||||
|
vencord = {
|
||||||
|
settings = {
|
||||||
|
oUpdate = false;
|
||||||
|
autoUpdateNotification = false;
|
||||||
|
notifyAboutUpdates = false;
|
||||||
|
useQuickCss = true;
|
||||||
|
disableMinSize = true;
|
||||||
|
enabledThemes = [ "noctalia.theme.css" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
modules/home/vicinae.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Not using Vicinae's flake because the server fucking seg faults immediately
|
||||||
|
programs.vicinae = {
|
||||||
|
enable = true;
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
};
|
||||||
|
# For configuration option documentation, see: https://github.com/vicinaehq/vicinae/blob/f6222f1e82fe2077ad42f10a6d6837dc61c67fd0/vicinae/assets/config.jsonc
|
||||||
|
settings = {
|
||||||
|
escape_key_behavior = "close_window";
|
||||||
|
close_on_focus_loss = true;
|
||||||
|
pop_to_root_on_close = true;
|
||||||
|
favicon_service = "twenty";
|
||||||
|
font = {
|
||||||
|
normal = {
|
||||||
|
size = 12;
|
||||||
|
normal = "JetBrainsMono Nerd Font";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
light = {
|
||||||
|
name = "noctalia";
|
||||||
|
icon_theme = "MoreWaita";
|
||||||
|
};
|
||||||
|
dark = {
|
||||||
|
name = "noctalia";
|
||||||
|
icon_theme = "MoreWaita";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.walker.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.walker = {
|
|
||||||
enable = true;
|
|
||||||
runAsService = true;
|
|
||||||
config = {
|
|
||||||
close_when_open = true;
|
|
||||||
click_to_close = true;
|
|
||||||
providers = {
|
|
||||||
default = [ "desktopapplications" ];
|
|
||||||
max_results = 50;
|
|
||||||
prefixes = [
|
|
||||||
{
|
|
||||||
prefix = ";";
|
|
||||||
provider = "providerlist";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = ">";
|
|
||||||
provider = "runner";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "/";
|
|
||||||
provider = "files";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = ".";
|
|
||||||
provider = "symbols";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "!";
|
|
||||||
provider = "todo";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "%";
|
|
||||||
provider = "bookmarks";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "=";
|
|
||||||
provider = "calc";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "@";
|
|
||||||
provider = "websearch";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = ":";
|
|
||||||
provider = "clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
prefix = "$";
|
|
||||||
provider = "windows";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
clipboard = {
|
|
||||||
time_format = "%d.%m. - %H:%M"; # format for the clipboard item date
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
wallpaper,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
wallpapers = config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.file."${wallpapers}" = {
|
|
||||||
source = ../../wallpapers;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.wpaperd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default = {
|
|
||||||
mode = "center";
|
|
||||||
};
|
|
||||||
any = {
|
|
||||||
path = "${wallpapers}/${wallpaper}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
portal = {
|
||||||
|
enable = true;
|
||||||
|
configPackages = [ pkgs.gnome-session ];
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gnome
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
|
|||||||
@@ -1,10 +1,63 @@
|
|||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
dragon-drop
|
||||||
|
];
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
shellWrapperName = "y";
|
shellWrapperName = "y";
|
||||||
|
plugins = with pkgs.yaziPlugins; {
|
||||||
|
inherit git full-border chmod;
|
||||||
|
};
|
||||||
|
initLua = ''
|
||||||
|
require("git"):setup {
|
||||||
|
-- Order of status signs showing in the linemode
|
||||||
|
order = 1500,
|
||||||
|
}
|
||||||
|
require("full-border"):setup()
|
||||||
|
'';
|
||||||
|
keymap = {
|
||||||
|
mgr.prepend_keymap = [
|
||||||
|
{
|
||||||
|
on = "<C-d>";
|
||||||
|
run = "shell -- dragon-drop -x -i -T %s1";
|
||||||
|
desc = "Open a prompt to drag and drop a file";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [
|
||||||
|
"c"
|
||||||
|
"m"
|
||||||
|
];
|
||||||
|
run = "plugin chmod";
|
||||||
|
desc = "Chmod on selected files";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
plugin = {
|
||||||
|
# Disable all preset previewers, preloaders
|
||||||
|
# This is recommended by yazi when working with network shares
|
||||||
|
preloaders = [ ];
|
||||||
|
previewers = [ ];
|
||||||
|
|
||||||
|
prepend_fetchers = [
|
||||||
|
{
|
||||||
|
id = "git";
|
||||||
|
url = "*";
|
||||||
|
run = "git";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = "git";
|
||||||
|
url = "*/";
|
||||||
|
run = "git";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,11 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
extensions = [
|
extensions = [
|
||||||
"nix"
|
"nix"
|
||||||
"catppuccin"
|
|
||||||
];
|
];
|
||||||
extraPackages = [ pkgs.nixd ];
|
extraPackages = [ pkgs.nixd ];
|
||||||
|
|
||||||
userSettings = {
|
userSettings = {
|
||||||
theme = "Catppuccin Mocha";
|
theme = "Noctalia Dark";
|
||||||
features = {
|
features = {
|
||||||
edit_prediction_provider = "copilot";
|
edit_prediction_provider = "copilot";
|
||||||
};
|
};
|
||||||
|
|||||||
13
modules/home/zen-browser.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.zen-browser.homeModules.twilight
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.zen-browser = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
############ Variables ############
|
|
||||||
enable_battery=false
|
|
||||||
battery_charging=false
|
|
||||||
|
|
||||||
####### Check availability ########
|
|
||||||
for battery in /sys/class/power_supply/*BAT*; do
|
|
||||||
if [[ -f "$battery/uevent" ]]; then
|
|
||||||
enable_battery=true
|
|
||||||
if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then
|
|
||||||
battery_charging=true
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
############# Output #############
|
|
||||||
if [[ $enable_battery == true ]]; then
|
|
||||||
if [[ $battery_charging == true ]]; then
|
|
||||||
echo -n "(+) "
|
|
||||||
fi
|
|
||||||
echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"%
|
|
||||||
if [[ $battery_charging == false ]]; then
|
|
||||||
echo -n " remaining"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
MAIN_KB_CAPS=$(hyprctl devices | grep -B 6 "main: yes" | grep "capsLock" | head -1 | awk '{print $2}')
|
|
||||||
|
|
||||||
if [ "$MAIN_KB_CAPS" = "yes" ]; then
|
|
||||||
echo "Caps Lock active"
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
@@ -4,16 +4,6 @@
|
|||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(import ./heybrochecklog.nix)
|
(import ./heybrochecklog.nix)
|
||||||
|
(import ./pywalfox-native.nix)
|
||||||
(self: super: {
|
|
||||||
# battery-status = prev.writeShellApplication {
|
|
||||||
# name = "battery-status";
|
|
||||||
# text = builtins.readFile ./battery-status.sh;
|
|
||||||
# };
|
|
||||||
check-capslock = super.writeShellApplication {
|
|
||||||
name = "check-capslock";
|
|
||||||
text = builtins.readFile ./check-capslock.sh;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
16
modules/overlays/pywalfox-native.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
self: super: with super.python3Packages; {
|
||||||
|
heybrochecklog = buildPythonApplication rec {
|
||||||
|
pname = "pywalfox-native";
|
||||||
|
version = "2.8.0rc1";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = super.fetchurl {
|
||||||
|
url = "https://test-files.pythonhosted.org/packages/89/a1/8e011e2d325de8e987f7c0a67222448b252fc894634bfa0d3b3728ec6dbf/pywalfox-${version}.tar.gz";
|
||||||
|
sha256 = "89e0d7a441eb600933440c713cddbfaecda236bde7f3f655db0ec20b0ae12845";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "pywalfox" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,8 +3,6 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
host,
|
|
||||||
hostPubkey ? null,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -25,13 +23,13 @@
|
|||||||
rekey = {
|
rekey = {
|
||||||
masterIdentities = [ "${inputs.self}/secrets/age-yubikey-identity-d9ed335b.pub" ];
|
masterIdentities = [ "${inputs.self}/secrets/age-yubikey-identity-d9ed335b.pub" ];
|
||||||
storageMode = "local";
|
storageMode = "local";
|
||||||
localStorageDir = ../../. + "/secrets/rekeyed/${host}";
|
localStorageDir = ../../. + "/secrets/rekeyed/${config.host.name}";
|
||||||
}
|
}
|
||||||
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
||||||
# exist until it is generated after the first rebuild. Runtime decryption will fail
|
# exist until it is generated after the first rebuild. Runtime decryption will fail
|
||||||
# but then the ssh host key will be generated in /etc/ssh and can be supplied
|
# but then the ssh host key will be generated in /etc/ssh and can be supplied
|
||||||
// lib.optionalAttrs (hostPubkey != null) {
|
// lib.optionalAttrs (config.host.pubKey != null) {
|
||||||
inherit hostPubkey;
|
hostPubkey = config.host.pubKey;
|
||||||
};
|
};
|
||||||
secrets = {
|
secrets = {
|
||||||
tailscale-auth.rekeyFile = ../../secrets/tailscale-auth.age;
|
tailscale-auth.rekeyFile = ../../secrets/tailscale-auth.age;
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
};
|
};
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
kernelParams = [
|
||||||
|
"kvm.enable_virt_at_load=0" # Fixes some virtuallization issues
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,59 +1,29 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
sddm-theme = inputs.silentSDDM.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.mango.nixosModules.mango
|
inputs.niri.nixosModules.niri
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
hyprland = {
|
niri.enable = true;
|
||||||
|
uwsm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# withUWSM = true;
|
waylandCompositors = {
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
niri = {
|
||||||
portalPackage =
|
prettyName = "Niri";
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
binPath = "/run/current-system/sw/bin/niri-session";
|
||||||
|
|
||||||
};
|
|
||||||
mango.enable = true;
|
|
||||||
# uwsm.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
sddm-theme
|
|
||||||
sddm-theme.test
|
|
||||||
];
|
|
||||||
|
|
||||||
services.displayManager = {
|
|
||||||
defaultSession = "mango";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.kdePackages.sddm;
|
|
||||||
theme = sddm-theme.pname;
|
|
||||||
extraPackages = sddm-theme.propagatedBuildInputs;
|
|
||||||
settings = {
|
|
||||||
General = {
|
|
||||||
GreeterEnvironment = "QML2_IMPORT_PATH=${sddm-theme}/share/sddm/themes/${sddm-theme.pname}/components/,QT_IM_MODULE=qtvirtualkeyboard";
|
|
||||||
InputMethod = "qtvirtualkeyboard";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
wayland.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable the KDE Plasma Desktop Environment.
|
services.displayManager = {
|
||||||
# displayManager.sddm.enable = true;
|
gdm = {
|
||||||
# desktopManager.plasma5.enable = true;
|
enable = true;
|
||||||
|
wayland = true;
|
||||||
# Enable the System76 Cosmic Desktop Environment
|
};
|
||||||
# displayManager.cosmic-greeter.enable = true;
|
};
|
||||||
# desktopManager.cosmic = {
|
|
||||||
# enable = true;
|
|
||||||
# xwayland.enable = true;
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,5 @@ in
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cifs-utils
|
cifs-utils
|
||||||
# rclone
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
host,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "${host}"; # Define your hostname
|
hostName = "${config.host.name}"; # Define your hostname
|
||||||
|
|
||||||
# Pick only one of the below networking options.
|
# Pick only one of the below networking options.
|
||||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
# };
|
# };
|
||||||
gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
|
gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
|
||||||
nix-ld.enable = true;
|
nix-ld.enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@
|
|||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
git
|
git
|
||||||
|
disktui
|
||||||
];
|
];
|
||||||
variables = {
|
variables = {
|
||||||
EDITOR = "vim";
|
EDITOR = "vim";
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
layout = "us";
|
layout = "us";
|
||||||
variant = "";
|
variant = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
@@ -92,7 +91,7 @@
|
|||||||
hardware = {
|
hardware = {
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = false;
|
||||||
};
|
};
|
||||||
sane = {
|
sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
];
|
];
|
||||||
|
extra-substituters = [ "https://vicinae.cachix.org" ];
|
||||||
|
extra-trusted-public-keys = [ "vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc=" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
host,
|
|
||||||
wallpaper,
|
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -12,7 +10,7 @@
|
|||||||
home-manager = {
|
home-manager = {
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
extraSpecialArgs = { inherit inputs host wallpaper; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
|
||||||
users.eclypse = {
|
users.eclypse = {
|
||||||
imports = [ ../home ];
|
imports = [ ../home ];
|
||||||
|
|||||||
@@ -3,9 +3,7 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hypridle.nix
|
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./hyprlock.nix
|
|
||||||
./keybinds.nix
|
./keybinds.nix
|
||||||
./monitors.nix
|
./monitors.nix
|
||||||
./pyprland.nix
|
./pyprland.nix
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
# inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
@@ -10,20 +10,24 @@
|
|||||||
hyprpicker
|
hyprpicker
|
||||||
];
|
];
|
||||||
|
|
||||||
# xdg.configFile."uwsm/env".source =
|
|
||||||
# "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh";
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# systemd.enable = false;
|
systemd.enable = false;
|
||||||
package = null;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
portalPackage = null;
|
portalPackage =
|
||||||
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
source = [
|
source = [
|
||||||
"${config.xdg.configHome}/hypr/monitors.conf"
|
"${config.xdg.configHome}/hypr/monitors.conf"
|
||||||
|
"${config.xdg.configHome}/hypr/noctalia/noctalia-colors.conf"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# monitor = [
|
||||||
|
# "desc:BOE 0x095F,2256x1504@60.00,0x0,1"
|
||||||
|
# "desc:LG Electronics LG TV SSCR2 0x01010101,3840x2160@120.00,2256x0,1"
|
||||||
|
# ];
|
||||||
|
|
||||||
animations = {
|
animations = {
|
||||||
# Stolen from https://github.com/Vobledoble/nixparency-dots/
|
# Stolen from https://github.com/Vobledoble/nixparency-dots/
|
||||||
enabled = true;
|
enabled = true;
|
||||||
@@ -54,48 +58,57 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debug.disable_logs = false;
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
gaps_out = 10;
|
gaps_out = 10;
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
"col.active_border" = "rgb(4479A4)";
|
|
||||||
"col.inactive_border" = "rgba(4479A480)";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 10;
|
rounding = 20;
|
||||||
|
rounding_power = 2;
|
||||||
|
|
||||||
active_opacity = 0.95;
|
# active_opacity = 0.95;
|
||||||
inactive_opacity = 0.85;
|
# inactive_opacity = 0.85;
|
||||||
fullscreen_opacity = 1.0;
|
# fullscreen_opacity = 1.0;
|
||||||
|
|
||||||
blur = {
|
blur = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
size = 8;
|
size = 3;
|
||||||
passes = 3;
|
passes = 2;
|
||||||
|
vibrancy = 0.1696;
|
||||||
new_optimizations = true;
|
new_optimizations = true;
|
||||||
popups = true;
|
popups = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
shadow.enabled = false;
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 4;
|
||||||
|
render_power = 3;
|
||||||
|
color = "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us";
|
||||||
|
kb_options = "compose:ralt";
|
||||||
};
|
};
|
||||||
|
|
||||||
misc = {
|
misc = {
|
||||||
vfr = true;
|
vfr = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
layerrule = [
|
windowrule = {
|
||||||
"blur, waybar" # Add blur to waybar
|
name = "floating-terminal-dropdown";
|
||||||
"blurpopups, waybar" # Blur waybar popups too!
|
"match:class" = "term_dropdown";
|
||||||
"ignorealpha 0.2, waybar" # Make it so transparent parts are ignored
|
float = "on";
|
||||||
];
|
};
|
||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"systemctl --user enable --now hypridle.service"
|
|
||||||
"systemctl --user enable --now hyprpolkitagent.service"
|
"systemctl --user enable --now hyprpolkitagent.service"
|
||||||
"systemctl --user enable app-com.mitchellh.ghostty.service"
|
"noctalia-shell"
|
||||||
"wpaperd -d"
|
|
||||||
"swaync"
|
|
||||||
"pypr"
|
"pypr"
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -6,14 +6,13 @@
|
|||||||
exec = "hyprctl dispatch submap global";
|
exec = "hyprctl dispatch submap global";
|
||||||
submap = "global";
|
submap = "global";
|
||||||
|
|
||||||
# MY STUFF
|
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
"$mod, Q, killactive"
|
"$mod, Q, killactive"
|
||||||
"$mod, W, exec, foot"
|
"$mod, W, exec, foot"
|
||||||
"$mod, S, exec, walker"
|
"$mod, S, exec, vicinae toggle"
|
||||||
"$mod, Escape, exec, wlogout"
|
"$mod, Escape, exec, noctalia-shell ipc call sessionMenu toggle"
|
||||||
|
|
||||||
# Window Movement
|
# Window Movement
|
||||||
"$mod, left, movefocus, l"
|
"$mod, left, movefocus, l"
|
||||||
@@ -30,9 +29,8 @@
|
|||||||
"$mod CTRL SHIFT, right, movetoworkspace, r+1"
|
"$mod CTRL SHIFT, right, movetoworkspace, r+1"
|
||||||
|
|
||||||
# Screenshoting
|
# Screenshoting
|
||||||
", PRINT, exec, hyprshot -m output --raw | satty --filename -"
|
", PRINT, exec, grim -g \"$(slurp)\" - | wl-copy"
|
||||||
"$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -"
|
"SHIFT, PRINT, exec, wl-paste | swappy -f -"
|
||||||
"SHIFT, PRINT, exec, hyprshot -m region --raw | satty --filename -"
|
|
||||||
|
|
||||||
# Media Control Keys
|
# Media Control Keys
|
||||||
", XF86AudioPrev, exec, playerctl previous"
|
", XF86AudioPrev, exec, playerctl previous"
|
||||||
@@ -42,7 +40,7 @@
|
|||||||
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
|
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
|
||||||
|
|
||||||
# Notification Center
|
# Notification Center
|
||||||
"$mod, n, exec, swaync-client -t -sw"
|
"$mod, n, exec, noctalia-shell ipc call notifications toggleHistory"
|
||||||
|
|
||||||
# Scratchpads
|
# Scratchpads
|
||||||
"$mod, TAB, exec, pypr toggle term"
|
"$mod, TAB, exec, pypr toggle term"
|
||||||
@@ -15,5 +15,8 @@
|
|||||||
home.hyprdynamicmonitors = {
|
home.hyprdynamicmonitors = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installExamples = false;
|
installExamples = false;
|
||||||
|
extraFlags = [
|
||||||
|
"--enable-lid-events"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
class = "term_dropdown"
|
class = "term_dropdown"
|
||||||
animation = "fromTop"
|
animation = "fromTop"
|
||||||
margin = 150
|
margin = 150
|
||||||
|
size = "80% 80%"
|
||||||
max_size = "1920px 1080px"
|
max_size = "1920px 1080px"
|
||||||
multi = false
|
multi = false
|
||||||
'';
|
'';
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
general = {
|
general = {
|
||||||
lock_cmd = "pidof hyprlock || hyprlock --grace 10";
|
lock_cmd = "pidof hyprlock || hyprlock --grace 10";
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
before_sleep_cmd = "loginctl lock-session";
|
||||||
fail_timeout = 1000;
|
after_sleep_cmd = "hypctl dispatch dpms on";
|
||||||
};
|
};
|
||||||
listener = [
|
listener = [
|
||||||
{
|
{
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 600;
|
timeout = 600;
|
||||||
on-timeout = "systemctl suspend || loginctl suspend";
|
on-timeout = "systemctl suspend";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
87
modules/unused/mango.nix
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.mango.hmModules.mango
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.mango = {
|
||||||
|
enable = true;
|
||||||
|
settings = ''
|
||||||
|
source=${config.xdg.configHome}/mango/noctalia.conf
|
||||||
|
|
||||||
|
monitorrule=name:eDP-1,width:2256,height:1504,refresh:59.999001,x:0,y:0,scale:1.0,vrr:0,rr:0
|
||||||
|
monitorrule=name:LG Electronics LG TV SSCR2 *,width:3840,height:2160,refresh:120.0,x:2256,y:0,scale:1.0,vrr:0,rr:0
|
||||||
|
|
||||||
|
cursor_size=16
|
||||||
|
cursor_theme=catppuccin-mocha-dark-cursors
|
||||||
|
|
||||||
|
bind=SUPER,q,killclient
|
||||||
|
bind=SUPER,w,spawn,foot
|
||||||
|
bind=SUPER,a,spawn,vicinae toggle
|
||||||
|
bind=SUPER,Escape,spawn,noctalia-shell ipc call sessionMenu toggle
|
||||||
|
bind=SUPER,n,spawn,noctalia-shell ipc call notifications toggleHistory
|
||||||
|
|
||||||
|
bind=SUPER+SHIFT,r,reload_config
|
||||||
|
|
||||||
|
bind=SUPER,t,setlayout,tile
|
||||||
|
bind=SUPER,s,setlayout,scroller
|
||||||
|
|
||||||
|
bind=SUPER,f,togglefloating
|
||||||
|
bind=SUPER+SHIFT,f,togglefullscreen
|
||||||
|
|
||||||
|
bind=NONE,XF86AudioPrev,spawn,playerctl previous
|
||||||
|
bind=NONE,XF86AudioPlay,spawn,playerctl play-pause
|
||||||
|
bind=NONE,XF86AudioNext,spawn,playerctl next
|
||||||
|
|
||||||
|
bindl=NONE,XF86AudioRaiseVolume,spawn,pamixer -i 5
|
||||||
|
bindl=NONE,XF86AudioLowerVolume,spawn,pamixer -d 5
|
||||||
|
bindl=NONE,XF86AudioMute,spawn,pamixer -t
|
||||||
|
bindl=ALT,XF86AudioRaiseVolume,spawn,pamixer --default-source -i 5
|
||||||
|
bindl=ALT,XF86AudioLowerVolume,spawn,pamixer --default-source -d 5
|
||||||
|
bindl=ALT,XF86AudioMute,spawn,pamixer --default-source -t
|
||||||
|
|
||||||
|
bindl=NONE,XF86MonBrightnessUp,spawn,brightnessctl set 5%+
|
||||||
|
bindl=NONE,XF86MonBrightnessDown,spawn,brightnessctl set 5%-
|
||||||
|
|
||||||
|
bind=NONE,Print,spawn_shell,grim -g "$(slurp)" - | wl-copy
|
||||||
|
bind=SHIFT,Print,spawn_shell,wl-paste | swappy -f -
|
||||||
|
|
||||||
|
bind=SUPER,Up,focusdir,up
|
||||||
|
bind=SUPER,Down,focusdir,down
|
||||||
|
bind=SUPER,Left,focusdir,left
|
||||||
|
bind=SUPER,Right,focusdir,right
|
||||||
|
bind=SUPER+SHIFT,Up,exchange_client,up
|
||||||
|
bind=SUPER+SHIFT,Down,exchange_client,down
|
||||||
|
bind=SUPER+SHIFT,Left,exchange_client,left
|
||||||
|
bind=SUPER+SHIFT,Right,exchange_client,right
|
||||||
|
|
||||||
|
bind=SUPER+CTRL,Left,viewtoleft
|
||||||
|
bind=SUPER+CTRL,Right,viewtoright
|
||||||
|
bind=SUPER+CTRL+SHIFT,Left,tagtoleft
|
||||||
|
bind=SUPER+CTRL+SHIFT,Right,tagtoright
|
||||||
|
|
||||||
|
mousebind=SUPER,btn_left,moveresize,curmove
|
||||||
|
mousebind=SUPER,btn_right,moveresize,curresize
|
||||||
|
mousebind=SUPER+ALT,btn_left,moveresize,curresize
|
||||||
|
|
||||||
|
bind=SUPER,Tab,toggleoverview
|
||||||
|
|
||||||
|
blur=1
|
||||||
|
blur_params_radius=6
|
||||||
|
blur_params_num_passes=2
|
||||||
|
|
||||||
|
windowrule=blur:1,unfocused_opacity:0.95,focused_opacity:0.95,appid:foot
|
||||||
|
|
||||||
|
exec-once=${config.xdg.configHome}/mango/autostart.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
autostart_sh = ''
|
||||||
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlroots
|
||||||
|
noctalia-shell
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -54,7 +55,7 @@
|
|||||||
# VSCode attempts to write to ~/.ssh/config for remote ssh connections.
|
# VSCode attempts to write to ~/.ssh/config for remote ssh connections.
|
||||||
# Because ~/.ssh/config is managed with home-manager, it is not writeable.
|
# Because ~/.ssh/config is managed with home-manager, it is not writeable.
|
||||||
# So we specify a custom ssh config path
|
# So we specify a custom ssh config path
|
||||||
"remote.SSH.configFile" = "/home/eclypse/.ssh/vscode-config";
|
"remote.SSH.configFile" = "${config.home.homeDirectory}/.ssh/vscode-config";
|
||||||
|
|
||||||
# Prettier
|
# Prettier
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = false;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||