Initial configuration
This commit is contained in:
commit
294fd9dcf3
35 changed files with 5369 additions and 0 deletions
19
common/home.nix
Normal file
19
common/home.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
username = "avery";
|
||||
homeDirectory = "/home/avery";
|
||||
stateVersion = "24.05";
|
||||
packages = with pkgs; [
|
||||
python3
|
||||
rclone
|
||||
xdg-user-dirs
|
||||
xdg-utils
|
||||
];
|
||||
};
|
||||
programs.home-manager.enable = true;
|
||||
}
|
50
common/zsh/default.nix
Normal file
50
common/zsh/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ config, pkgs, ...}:
|
||||
let
|
||||
normalTheme = ./powerline10k/p10k.zsh;
|
||||
ttyTheme = ./powerline10k/p10k-tty.zsh;
|
||||
in {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
initExtra = ''
|
||||
bindkey "^[OA" history-beginning-search-backward-end
|
||||
bindkey "^[OB" history-beginning-search-forward-end
|
||||
bindkey "^r" history-incremental-search-backward
|
||||
|
||||
zstyle ':completion::complete:*' use-cache on
|
||||
zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST
|
||||
zstyle ':completion:*' menu select=1 _complete _ignored _approximate
|
||||
zstyle ':completion:*' verbose yes
|
||||
zstyle ':completion:*:descriptions' format '%B%d%b'
|
||||
zstyle ':completion:*:messages' format '%d'
|
||||
zstyle ':completion:*:warnings' format 'No matches for: %d'
|
||||
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
|
||||
zstyle ':completion:*' group-name \'\'
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
||||
|
||||
if zmodload zsh/terminfo && (( terminfo[colors] >= 256 )); then
|
||||
[[ ! -f ${normalTheme} ]] || source ${normalTheme}
|
||||
else
|
||||
[[ ! -f ${ttyTheme} ]] || source ${ttyTheme}
|
||||
fi
|
||||
|
||||
fastfetch
|
||||
'';
|
||||
initExtraFirst = ''
|
||||
setopt AUTO_PUSHD
|
||||
setopt SHARE_HISTORY
|
||||
setopt MENUCOMPLETE
|
||||
autoload -U history-search-end
|
||||
zle -N history-beginning-search-backward-end history-search-end
|
||||
zle -N history-beginning-search-forward-end history-search-end
|
||||
'';
|
||||
history.path = "${config.xdg.dataHome}/zhistory";
|
||||
plugins = [
|
||||
{
|
||||
name = "powerlevel10k";
|
||||
src = pkgs.zsh-powerlevel10k;
|
||||
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
|
||||
}
|
||||
];
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
}
|
1621
common/zsh/powerline10k/p10k-tty.zsh
Normal file
1621
common/zsh/powerline10k/p10k-tty.zsh
Normal file
File diff suppressed because it is too large
Load diff
1605
common/zsh/powerline10k/p10k.zsh
Normal file
1605
common/zsh/powerline10k/p10k.zsh
Normal file
File diff suppressed because it is too large
Load diff
306
flake.lock
generated
Normal file
306
flake.lock
generated
Normal file
|
@ -0,0 +1,306 @@
|
|||
{
|
||||
"nodes": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710156081,
|
||||
"narHash": "sha256-4PMY6aumJi5dLFjBzF5O4flKXmadMNq3AGUHKYfchh0=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "bc68b058dc7e6d4d6befc4ec6c60082b6e844b7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709336216,
|
||||
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1703887061,
|
||||
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710532761,
|
||||
"narHash": "sha256-SUXGZNrXX05YA9G6EmgupxhOr3swI1gcxLUeDMUhrEY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "206f457fffdb9a73596a4cb2211a471bd305243d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710281778,
|
||||
"narHash": "sha256-bvWr9vvBrAxb44kHM3H3cY/uQg+4pYP1BM/Nu3e/7V8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "49a266d2ca59df8a03249550e73a54626181b65d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710281379,
|
||||
"narHash": "sha256-uFo9hxt982L3nFJeweW4Gip2esiGrIQlbvEGrNTh4AY=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "d9ea313bc4851670dc99c5cc979cb79750e7d670",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1710451336,
|
||||
"narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d691274a972b3165335d261cc4671335f5c67de9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710634405,
|
||||
"narHash": "sha256-e+EHQGqqjpvkln6vYmiAcafFKbTaze3XF7DEjDZyXGY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "939530edca29b44e65d8bd606ef3485346510ebe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708018599,
|
||||
"narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixvim": "nixvim"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
47
flake.nix
Normal file
47
flake.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
description = "System configurations";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nixvim }@inputs: {
|
||||
nixosConfigurations = {
|
||||
totsugeki = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
# ./common/nixos.nix
|
||||
./hosts/totsugeki/nixos.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.avery = {
|
||||
imports = [
|
||||
nixvim.homeManagerModules.nixvim
|
||||
./common/home.nix
|
||||
./common/zsh
|
||||
./hosts/totsugeki/desktop
|
||||
./hosts/totsugeki/development
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
greatyamada = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
# ./common/nixos.nix
|
||||
./hosts/greatyamada/nixos.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
1
hosts/greatyamada/nixos.nix
Normal file
1
hosts/greatyamada/nixos.nix
Normal file
|
@ -0,0 +1 @@
|
|||
|
0
hosts/greatyamada/services/default.nix
Normal file
0
hosts/greatyamada/services/default.nix
Normal file
56
hosts/totsugeki/desktop/default.nix
Normal file
56
hosts/totsugeki/desktop/default.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
{ config, pkgs, ... }: {
|
||||
imports = [
|
||||
./dunst.nix
|
||||
./firefox.nix
|
||||
./gtk.nix
|
||||
./hyprland.nix
|
||||
./kitty.nix
|
||||
./qt.nix
|
||||
./rofi.nix
|
||||
./waybar.nix
|
||||
];
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
gimp
|
||||
fastfetch
|
||||
inkscape
|
||||
libreoffice-qt
|
||||
libsForQt5.qt5ct
|
||||
obs-studio
|
||||
picard
|
||||
protonup-qt
|
||||
grim
|
||||
libsForQt5.ark
|
||||
libsForQt5.dolphin
|
||||
libsForQt5.dolphin-plugins
|
||||
libsForQt5.kio
|
||||
libsForQt5.kio-extras
|
||||
libsForQt5.kimageformats
|
||||
libsForQt5.qt5.qtimageformats
|
||||
mpv
|
||||
noto-fonts-cjk-sans
|
||||
nsxiv
|
||||
pamixer
|
||||
playerctl
|
||||
qbittorrent
|
||||
r2modman
|
||||
slurp
|
||||
swww
|
||||
wl-clipboard
|
||||
(import ./scripts/colorpicker.nix { inherit pkgs; })
|
||||
(import ./scripts/currently-playing.nix { inherit pkgs; })
|
||||
(pkgs.buildEnv {
|
||||
name = "desktop-scripts";
|
||||
paths = [ ./scripts_legacy ];
|
||||
})
|
||||
];
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.phinger-cursors;
|
||||
name = "phinger-cursors";
|
||||
size = 32;
|
||||
};
|
||||
};
|
||||
services.easyeffects.enable = true;
|
||||
xdg.enable = true;
|
||||
}
|
31
hosts/totsugeki/desktop/dunst.nix
Normal file
31
hosts/totsugeki/desktop/dunst.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ ... }: {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
timeout = 3;
|
||||
corner_radius = 12;
|
||||
frame_width = 2;
|
||||
font = "Iosevka Nerd Font 10";
|
||||
format = "<span font='Iosevka Nerd Font 12'><b>%s</b></span>\n%b";
|
||||
icon_position = "left";
|
||||
max_icon_size = 48;
|
||||
icon_corner_radius = 4;
|
||||
origin = "bottom-right";
|
||||
offset = "8x8";
|
||||
width = "(100, 400)";
|
||||
background = "#11111b";
|
||||
foreground = "#cdd6f4";
|
||||
frame_color = "#cba6f7";
|
||||
highlight = "#cba6f7";
|
||||
separator_color = "frame";
|
||||
progress_bar = true;
|
||||
progress_bar_corner_radius = 4;
|
||||
};
|
||||
volumectl = {
|
||||
appname = "volumectl";
|
||||
alignment = "center";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
223
hosts/totsugeki/desktop/firefox.nix
Normal file
223
hosts/totsugeki/desktop/firefox.nix
Normal file
|
@ -0,0 +1,223 @@
|
|||
{ pkgs, config, ... }: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.Avery = {
|
||||
isDefault = true;
|
||||
search = {
|
||||
default = "SearXNG";
|
||||
engines = {
|
||||
SearXNG = {
|
||||
urls = [{
|
||||
template = "https://searxng.rcia.dev/search";
|
||||
params = [{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}];
|
||||
icon =
|
||||
"https://searxng.rcia.dev/static/themes/simple/img/favicon.png";
|
||||
}];
|
||||
};
|
||||
Google.metaData.hidden = true;
|
||||
Bing.metaData.hidden = true;
|
||||
DuckDuckGo.metaData.hidden = true;
|
||||
"Wikipedia (en)".metaData.hidden = true;
|
||||
};
|
||||
force = true;
|
||||
order = [ "SearXNG" ];
|
||||
};
|
||||
settings = {
|
||||
"app.normandy.api_url" = "";
|
||||
"app.normandy.enabled" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"app.update.auto" = false;
|
||||
"beacon.enabled" = false;
|
||||
"breakpad.reportURL" = "";
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.cache.offline.enable" = false;
|
||||
"browser.crashReports.unsubmittedCheck.autoSubmit" = false;
|
||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
||||
"browser.disableResetPrompt" = true;
|
||||
"browser.display.use_document_fonts" = 0;
|
||||
"browser.fixup.alternate.enabled" = false;
|
||||
"browser.newtab.preload" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" =
|
||||
false;
|
||||
"browser.newtabpage.enabled" = false;
|
||||
"browser.newtabpage.enhanced" = false;
|
||||
"browser.newtabpage.introShown" = true;
|
||||
"browser.safebrowsing.appRepURL" = "";
|
||||
"browser.safebrowsing.blockedURIs.enabled" = false;
|
||||
"browser.safebrowsing.downloads.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.url" = "";
|
||||
"browser.safebrowsing.enabled" = false;
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.selfsupport.url" = "";
|
||||
"browser.send_pings" = false;
|
||||
"browser.sessionstore.privacy_level" = 0;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"browser.startup.homepage_override.mstone" = "ignore";
|
||||
"browser.tabs.crashReporting.sendReport" = false;
|
||||
"browser.tabs.firefox-view-next" = false;
|
||||
"browser.urlbar.groupLabels.enabled" = false;
|
||||
"browser.urlbar.quicksuggest.enabled" = false;
|
||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||
"browser.urlbar.trimURLs" = false;
|
||||
"browser.uidensity" = 1;
|
||||
"datareporting.healthreport.service.enabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"device.sensors.ambientLight.enabled" = false;
|
||||
"device.sensors.enabled" = false;
|
||||
"device.sensors.motion.enabled" = false;
|
||||
"device.sensors.orientation.enabled" = false;
|
||||
"device.sensors.proximity.enabled" = false;
|
||||
"devtools.theme" = "dark";
|
||||
"dom.battery.enabled" = false;
|
||||
"dom.security.https_only_mode" = true;
|
||||
"dom.security.https_only_mode_ever_enabled" = true;
|
||||
"dom.webaudio.enabled" = true;
|
||||
"experiments.activeExperiment" = false;
|
||||
"experiments.enabled" = false;
|
||||
"experiments.manifest.uri" = "";
|
||||
"experiments.supported" = false;
|
||||
"extensions.getAddons.cache.enabled" = false;
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"extensions.shield-recipe-client.api_url" = "";
|
||||
"extensions.shield-recipe-client.enabled" = false;
|
||||
"extensions.webservice.discoverURL" = "";
|
||||
"font.name.serif.x-western" = "Inter";
|
||||
"media.autoplay.default" = 2;
|
||||
"media.eme.enabled" = false;
|
||||
"media.gmp-widevinecdm.enabled" = false;
|
||||
"media.navigator.enabled" = false;
|
||||
"media.video_stats.enabled" = false;
|
||||
"network.allow-experiments" = false;
|
||||
"network.captive-portal-service.enabled" = false;
|
||||
"network.cookie.cookieBehavior" = 1;
|
||||
"network.dns.disablePrefetch" = true;
|
||||
"network.dns.disablePrefetchFromHTTPS" = true;
|
||||
"network.dns.echconfig.enabled" = true;
|
||||
"network.dns.use_https_rr_as_altsvc" = true;
|
||||
"network.http.speculative-parallel-limit" = 0;
|
||||
"network.predictor.enable-prefetch" = false;
|
||||
"network.predictor.enabled" = false;
|
||||
"network.prefetch-next" = false;
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.donottrackheader.value" = 1;
|
||||
"privacy.firstparty.isolate" = true;
|
||||
"privacy.globalprivacycontrol.enabled" = true;
|
||||
"privacy.query_stripping.enabled" = true;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.resistFingerprinting.letterboxing" = false;
|
||||
"privacy.trackingprotection.cryptomining.enabled" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||
"privacy.trackingprotection.pbmode.enabled" = true;
|
||||
"privacy.usercontext.about_newtab_segregation.enabled" = true;
|
||||
"security.ssl.disable_session_identifiers" = true;
|
||||
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" =
|
||||
false;
|
||||
"signon.autofillForms" = false;
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.cachedClientID" = "";
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.hybridContent.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.prompted" = 2;
|
||||
"toolkit.telemetry.rejected" = true;
|
||||
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||
"toolkit.telemetry.server" = "";
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.unifiedIsOptIn" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar" =
|
||||
false;
|
||||
"layout.css.has-selector.enabled" = true;
|
||||
"userChrome.tab.connect_to_window" = true;
|
||||
"userChrome.tab.color_like_toolbar" = true;
|
||||
"userChrome.tab.lepton_like_padding" = true;
|
||||
"userChrome.tab.photon_like_padding" = false;
|
||||
"userChrome.tab.dynamic_separator" = true;
|
||||
"userChrome.tab.static_separator" = false;
|
||||
"userChrome.tab.static_separator.selected_accent" = false;
|
||||
"userChrome.tab.bar_separator" = false;
|
||||
"userChrome.tab.newtab_button_like_tab" = true;
|
||||
"userChrome.tab.newtab_button_smaller" = false;
|
||||
"userChrome.tab.newtab_button_proton" = false;
|
||||
"userChrome.icon.panel_full" = true;
|
||||
"userChrome.icon.panel_photon" = false;
|
||||
"userChrome.tab.box_shadow" = true;
|
||||
"userChrome.tab.bottom_rounded_corner" = true;
|
||||
"userChrome.tab.photon_like_contextline" = false;
|
||||
"userChrome.rounding.square_tab" = false;
|
||||
"userChrome.compatibility.theme" = true;
|
||||
"userChrome.compatibility.os" = true;
|
||||
"userChrome.theme.built_in_contrast" = true;
|
||||
"userChrome.theme.system_default" = true;
|
||||
"userChrome.theme.proton_color" = true;
|
||||
"userChrome.theme.proton_chrome" = true;
|
||||
"userChrome.theme.fully_color" = true;
|
||||
"userChrome.theme.fully_dark" = true;
|
||||
"userChrome.decoration.cursor" = true;
|
||||
"userChrome.decoration.field_border" = true;
|
||||
"userChrome.decoration.download_panel" = true;
|
||||
"userChrome.decoration.animate" = true;
|
||||
"userChrome.padding.tabbar_width" = true;
|
||||
"userChrome.padding.tabbar_height" = true;
|
||||
"userChrome.padding.toolbar_button" = true;
|
||||
"userChrome.padding.navbar_width" = true;
|
||||
"userChrome.padding.urlbar" = true;
|
||||
"userChrome.padding.bookmarkbar" = true;
|
||||
"userChrome.padding.infobar" = true;
|
||||
"userChrome.padding.menu" = true;
|
||||
"userChrome.padding.bookmark_menu" = true;
|
||||
"userChrome.padding.global_menubar" = true;
|
||||
"userChrome.padding.panel" = true;
|
||||
"userChrome.padding.popup_panel" = true;
|
||||
"userChrome.tab.multi_selected" = true;
|
||||
"userChrome.tab.unloaded" = true;
|
||||
"userChrome.tab.letters_cleary" = true;
|
||||
"userChrome.tab.close_button_at_hover" = true;
|
||||
"userChrome.tab.sound_hide_label" = true;
|
||||
"userChrome.tab.sound_with_favicons" = true;
|
||||
"userChrome.tab.pip" = true;
|
||||
"userChrome.tab.container" = true;
|
||||
"userChrome.tab.crashed" = true;
|
||||
"userChrome.fullscreen.overlap" = true;
|
||||
"userChrome.fullscreen.show_bookmarkbar" = true;
|
||||
"userChrome.icon.library" = true;
|
||||
"userChrome.icon.panel" = true;
|
||||
"userChrome.icon.menu" = true;
|
||||
"userChrome.icon.context_menu" = true;
|
||||
"userChrome.icon.global_menu" = true;
|
||||
"userChrome.icon.global_menubar" = true;
|
||||
"userContent.player.ui" = true;
|
||||
"userContent.player.icon" = true;
|
||||
"userContent.player.noaudio" = true;
|
||||
"userContent.player.size" = true;
|
||||
"userContent.player.click_to_play" = true;
|
||||
"userContent.player.animate" = true;
|
||||
"userContent.newTab.full_icon" = true;
|
||||
"userContent.newTab.animate" = true;
|
||||
"userContent.newTab.pocket_to_last" = true;
|
||||
"userContent.newTab.searchbar" = true;
|
||||
"userContent.page.field_border" = true;
|
||||
"userContent.page.illustration" = true;
|
||||
"userContent.page.proton_color" = true;
|
||||
"userContent.page.dark_mode" = true;
|
||||
"userContent.page.proton" = true;
|
||||
"browser.urlbar.suggest.calculator" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
22
hosts/totsugeki/desktop/gtk.nix
Normal file
22
hosts/totsugeki/desktop/gtk.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, ... }: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
name = "kora";
|
||||
};
|
||||
font = {
|
||||
package = pkgs.inter;
|
||||
name = "Inter";
|
||||
size = 10;
|
||||
};
|
||||
theme = {
|
||||
name = "Catppuccin-Mocha-Compact-Mauve-Dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "mauve" ];
|
||||
size = "compact";
|
||||
variant = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
180
hosts/totsugeki/desktop/hyprland.nix
Normal file
180
hosts/totsugeki/desktop/hyprland.nix
Normal file
|
@ -0,0 +1,180 @@
|
|||
{ config, pkgs, ... }: {
|
||||
home.packages = with pkgs; [ hyprpicker hyprlock ];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
monitor = "DP-1, 2560x1440@165, 0x0, 1";
|
||||
|
||||
env = [ "XCURSOR_SIZE, 32" "QT_QPA_PLATFORMTHEME, qt5ct" ];
|
||||
|
||||
exec-once = [
|
||||
"hyprlock"
|
||||
"waybar"
|
||||
"swww init; swww img ~/.local/share/wallpapers/.current_image"
|
||||
"[workspace 1 silent] firefox"
|
||||
"[workspace 10 silent] qbittorrent"
|
||||
];
|
||||
|
||||
general = {
|
||||
border_size = 0;
|
||||
gaps_in = 2;
|
||||
gaps_out = 2;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
dim_inactive = true;
|
||||
dim_strength = 0.3;
|
||||
drop_shadow = false;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 3;
|
||||
noise = 5.0e-2;
|
||||
vibrancy = 0.25;
|
||||
vibrancy_darkness = 0.3;
|
||||
};
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
force_split = 2;
|
||||
use_active_for_splits = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
bind = [
|
||||
"SUPER SHIFT CTRL ALT, Q, exit,"
|
||||
|
||||
"SUPER, W, killactive"
|
||||
"SUPER, F, togglefloating, "
|
||||
"SUPER, C, centerwindow"
|
||||
"SUPER, F11, fullscreen, 0"
|
||||
|
||||
"CTRL ALT, T, exec, kitty"
|
||||
"SUPER, Space, exec, rofi -show drun"
|
||||
"SUPER, E, exec, zsh -c dolphin"
|
||||
|
||||
"SUPER, k, movefocus, u"
|
||||
"SUPER, j, movefocus, d"
|
||||
"SUPER, h, movefocus, l"
|
||||
"SUPER, l, movefocus, r"
|
||||
|
||||
"SUPER, 1, workspace, 1"
|
||||
"SUPER, 2, workspace, 2"
|
||||
"SUPER, 3, workspace, 3"
|
||||
"SUPER, 4, workspace, 4"
|
||||
"SUPER, 5, workspace, 5"
|
||||
"SUPER, 6, workspace, 6"
|
||||
"SUPER, 7, workspace, 7"
|
||||
"SUPER, 8, workspace, 8"
|
||||
"SUPER, 9, workspace, 9"
|
||||
"SUPER, 0, workspace, 10"
|
||||
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||
"SUPER SHIFT, 5, movetoworkspace, 5"
|
||||
"SUPER SHIFT, 6, movetoworkspace, 6"
|
||||
"SUPER SHIFT, 7, movetoworkspace, 7"
|
||||
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
"SUPER, S, exec, screenshot.sh full"
|
||||
"SUPER + SHIFT, S, exec, screenshot.sh section"
|
||||
|
||||
"MOD3, C, exec, colorpicker"
|
||||
|
||||
"MOD3, S, exec, hyprlock"
|
||||
"MOD3, 1, exec, play_to_soundboard.sh $HOME/soundboard/fireball.webm"
|
||||
"MOD3, 2, exec, play_to_soundboard.sh $HOME/soundboard/turret.webm"
|
||||
"MOD3, 3, exec, play_to_soundboard.sh $HOME/soundboard/elhormiguero.webm --volume=70"
|
||||
"MOD3, 4, exec, play_to_soundboard.sh $HOME/soundboard/america.webm --volume=70"
|
||||
"MOD3 SHIFT, P, exec, pkill mpv"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
"MOD3, m, submap, Música"
|
||||
"MOD3, w, submap, Fondo de pantalla"
|
||||
", XF86AudioMute, exec, volumectl.sh output toggle-mute"
|
||||
"SHIFT, XF86AudioMute, exec, volumectl.sh input toggle-mute"
|
||||
];
|
||||
|
||||
bindle = [
|
||||
", XF86AudioRaiseVolume, exec, volumectl.sh output +5"
|
||||
", XF86AudioLowerVolume, exec, volumectl.sh output -5"
|
||||
"SHIFT, XF86AudioRaiseVolume, exec, volumectl.sh input +5"
|
||||
"SHIFT, XF86AudioLowerVolume, exec, volumectl.sh input -5"
|
||||
];
|
||||
|
||||
bindm =
|
||||
[ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ];
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
animation = [
|
||||
"windows, 1, 6, wind, slide"
|
||||
"windowsIn, 1, 6, winIn, slide"
|
||||
"windowsOut, 1, 5, winOut, slide"
|
||||
"windowsMove, 1, 5, wind, slide"
|
||||
"border, 1, 1, liner"
|
||||
"borderangle, 1, 50, liner, loop"
|
||||
"fade, 1, 8, default"
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
bezier = [
|
||||
"wind, 0.05, 0.92, 0.1, 1"
|
||||
"winIn, 0.1, 1.1, 0.1, 1"
|
||||
"winOut, 0.3, -0.3, 0, 1"
|
||||
"liner, 1, 1, 1, 1"
|
||||
];
|
||||
};
|
||||
|
||||
windowrulev2 = [
|
||||
"tile, class:^(ichi Client)$"
|
||||
"opacity 0.999 0.999, class: ^(org.kde.dolphin)$"
|
||||
"nofocus, title:^()$,class:^(steam)$"
|
||||
"minsize 1 1, title:^()$,class:^(steam)$"
|
||||
];
|
||||
|
||||
layerrule = [ "blur, waybar" "blur, rofi" "ignorezero, rofi" ];
|
||||
|
||||
input = {
|
||||
kb_layout = "es";
|
||||
kb_variant = "dvorak";
|
||||
kb_options = "lv5:caps_switch";
|
||||
follow_mouse = 1;
|
||||
sensitivity = -1;
|
||||
};
|
||||
|
||||
misc = {
|
||||
animate_manual_resizes = true;
|
||||
animate_mouse_windowdragging = true;
|
||||
key_press_enables_dpms = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
submap = Fondo de pantalla
|
||||
|
||||
bind = , H, exec, change_wallpaper.sh previous
|
||||
bind = , L, exec, change_wallpaper.sh next
|
||||
bind = , M, exec, change_wallpaper.sh open-menu
|
||||
bindl = , escape, submap, reset
|
||||
bindl = MOD3, w, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
submap = Música
|
||||
|
||||
bindl = , h, exec, playerctl previous
|
||||
bindl = , l, exec, playerctl next
|
||||
bindl = , p, exec, playerctl play-pause
|
||||
bindl = , escape, submap, reset
|
||||
bindl = MOD3, m, submap, reset
|
||||
|
||||
submap = reset
|
||||
'';
|
||||
};
|
||||
}
|
37
hosts/totsugeki/desktop/kitty.nix
Normal file
37
hosts/totsugeki/desktop/kitty.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ ... }: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = "Iosevka Nerd Font";
|
||||
size = 14;
|
||||
};
|
||||
keybindings = {
|
||||
"ctrl+alt+1" = "goto_tab 1";
|
||||
"ctrl+alt+2" = "goto_tab 2";
|
||||
"ctrl+alt+3" = "goto_tab 3";
|
||||
"ctrl+alt+4" = "goto_tab 4";
|
||||
"ctrl+alt+5" = "goto_tab 5";
|
||||
"ctrl+alt+6" = "goto_tab 6";
|
||||
"ctrl+alt+7" = "goto_tab 7";
|
||||
"ctrl+alt+8" = "goto_tab 8";
|
||||
"ctrl+alt+9" = "goto_tab 9";
|
||||
};
|
||||
settings = {
|
||||
"background_opacity" = "0.75";
|
||||
"dynamic_background_opacity" = true;
|
||||
"force_ltr" = "yes";
|
||||
"disable_ligatures" = "never";
|
||||
"cursor_shape" = "beam";
|
||||
"scrollback_lines" = 8000;
|
||||
"enable_audio_bell" = "no";
|
||||
"window_padding_width" = 8;
|
||||
"tab_bar_min_tabs" = 2;
|
||||
"tab_bar_edge" = "bottom";
|
||||
"tab_bar_style" = "powerline";
|
||||
"tab_powerline_style" = "round";
|
||||
"tab_title_template" = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
"background" = "#1E1E2F";
|
||||
};
|
||||
theme = "Catppuccin-Mocha";
|
||||
};
|
||||
}
|
7
hosts/totsugeki/desktop/qt.nix
Normal file
7
hosts/totsugeki/desktop/qt.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ catppuccin-kde lightly-qt ];
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "qtct";
|
||||
};
|
||||
}
|
176
hosts/totsugeki/desktop/rofi.nix
Normal file
176
hosts/totsugeki/desktop/rofi.nix
Normal file
|
@ -0,0 +1,176 @@
|
|||
{ config, pkgs, ... }:
|
||||
let inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
drun-display-format = "{name}";
|
||||
display-drun = " ";
|
||||
show-icons = true;
|
||||
icon-theme = "kora";
|
||||
steal-focus = true;
|
||||
};
|
||||
package = pkgs.rofi-wayland;
|
||||
font = "Iosevka Nerd Font 11";
|
||||
terminal = "kitty";
|
||||
theme = {
|
||||
"*" = {
|
||||
background = mkLiteral "#1e1d2f";
|
||||
background-alt = mkLiteral "#282839";
|
||||
foreground = mkLiteral "#d9e0ee";
|
||||
selected = mkLiteral "#7aa2f7";
|
||||
active = mkLiteral "#abe9b3";
|
||||
urgent = mkLiteral "#f28fad";
|
||||
};
|
||||
window = {
|
||||
transparency = "real";
|
||||
location = mkLiteral "center";
|
||||
anchor = mkLiteral "center";
|
||||
fullscreen = false;
|
||||
width = mkLiteral "500px";
|
||||
x-offset = mkLiteral "0px";
|
||||
y-offset = mkLiteral "0px";
|
||||
|
||||
enabled = true;
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "0px";
|
||||
border = mkLiteral "0px solid";
|
||||
border-radius = mkLiteral "12px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "#1e1e2e99";
|
||||
cursor = "default";
|
||||
};
|
||||
|
||||
mainbox = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "20px";
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "12px";
|
||||
border = mkLiteral "0px solid";
|
||||
border-radius = mkLiteral "0px 0px 0px 0px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "transparent";
|
||||
children = map mkLiteral [ "inputbar" "listview" ];
|
||||
};
|
||||
|
||||
inputbar = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "8px";
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "4px 8px";
|
||||
border = mkLiteral "0px solid";
|
||||
border-radius = mkLiteral "12px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
children = map mkLiteral [ "prompt" "entry" ];
|
||||
};
|
||||
|
||||
prompt = {
|
||||
enabled = true;
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
textbox-prompt-colon = {
|
||||
enabled = true;
|
||||
expand = false;
|
||||
str = "::";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
entry = {
|
||||
enabled = true;
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "text";
|
||||
placeholder = "";
|
||||
placeholder-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
listview = {
|
||||
enabled = true;
|
||||
columns = 1;
|
||||
lines = 18;
|
||||
cycle = true;
|
||||
dynamic = true;
|
||||
scrollbar = false;
|
||||
layout = "vertical";
|
||||
reverse = false;
|
||||
fixed-height = false;
|
||||
fixed-columns = true;
|
||||
|
||||
spacing = mkLiteral "0px";
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "0px";
|
||||
border = mkLiteral "0px solid";
|
||||
border-radius = mkLiteral "0px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
cursor = mkLiteral "default";
|
||||
};
|
||||
scrollbar = {
|
||||
handle-width = mkLiteral "5px";
|
||||
handle-color = mkLiteral "@selected";
|
||||
border-radius = mkLiteral "0px";
|
||||
background-color = mkLiteral "@background-alt";
|
||||
};
|
||||
|
||||
element = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "4px";
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "4px 8px";
|
||||
border = mkLiteral "0px solid";
|
||||
border-radius = mkLiteral "12px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
orientation = mkLiteral "horizontal";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
|
||||
"element selected.normal" = {
|
||||
background-color = mkLiteral "#cdd6f422";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
|
||||
element-icon = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
size = mkLiteral "24px";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
element-text = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
highlight = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = 0;
|
||||
};
|
||||
|
||||
error-message = {
|
||||
padding = mkLiteral "15px";
|
||||
border = mkLiteral "2px solid";
|
||||
border-radius = mkLiteral "10px";
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "black / 10%";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
textbox = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = 0;
|
||||
highlight = mkLiteral "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
12
hosts/totsugeki/desktop/scripts/colorpicker.nix
Normal file
12
hosts/totsugeki/desktop/scripts/colorpicker.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "colorpicker";
|
||||
runtimeInputs = with pkgs; [ dunst hyprpicker imagemagick wl-clipboard ];
|
||||
text = ''
|
||||
COLOR=$(hyprpicker --no-fancy --autocopy)
|
||||
convert -size 1x1 xc:"$COLOR" "$HOME/.cache/.tmp_colorpicker.jpg"
|
||||
dunstify -i "$HOME/.cache/.tmp_colorpicker.jpg" "Color copiado" "$COLOR"
|
||||
rm "$HOME/.cache/.tmp_colorpicker.jpg"
|
||||
'';
|
||||
}
|
29
hosts/totsugeki/desktop/scripts/currently-playing.nix
Normal file
29
hosts/totsugeki/desktop/scripts/currently-playing.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "get_fancy_currently_playing";
|
||||
runtimeInputs = [ pkgs.playerctl ];
|
||||
text = ''
|
||||
STRING=""
|
||||
case $(playerctl status 2> /dev/stdout) in
|
||||
"Playing")
|
||||
STRING+="⏵ "
|
||||
;;
|
||||
"Paused")
|
||||
STRING+="⏸ "
|
||||
;;
|
||||
"No players found")
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
ARTIST=$(playerctl metadata xesam:artist)
|
||||
if [[ -n $ARTIST ]]; then
|
||||
STRING+="$ARTIST // "
|
||||
fi
|
||||
TITLE=$(playerctl metadata xesam:title)
|
||||
if [[ -n $TITLE ]]; then
|
||||
STRING+="$TITLE"
|
||||
fi
|
||||
echo -e "$STRING"
|
||||
'';
|
||||
}
|
74
hosts/totsugeki/desktop/scripts_legacy/bin/change_wallpaper.sh
Executable file
74
hosts/totsugeki/desktop/scripts_legacy/bin/change_wallpaper.sh
Executable file
|
@ -0,0 +1,74 @@
|
|||
#!/bin/sh
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
WALLPAPER_PATH=~/.local/share/wallpapers
|
||||
WALLPAPERS=($WALLPAPER_PATH/*)
|
||||
|
||||
if [ ! -f "$WALLPAPER_PATH/.current_path" ]; then
|
||||
# Current wallpaper file does not exist, create it
|
||||
echo ${WALLPAPERS[0]} > "$WALLPAPER_PATH/.current_path"
|
||||
fi
|
||||
|
||||
CURRENT_WALLPAPER=$(cat "$WALLPAPER_PATH/.current_path")
|
||||
# Get the current wallpaper's index
|
||||
for index in ${!WALLPAPERS[@]}; do
|
||||
if [ "${WALLPAPERS[$index]}" = "$CURRENT_WALLPAPER" ]; then
|
||||
CURRENT_WP_INDEX=$index
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z $CURRENT_WP_INDEX ]; then
|
||||
CURRENT_WP_INDEX=0
|
||||
fi
|
||||
|
||||
if [ $1 = "previous" ]; then
|
||||
WALLPAPER=${WALLPAPERS[$CURRENT_WP_INDEX - 1]}
|
||||
TRANSITION_ANGLE=300
|
||||
elif [ $1 = "next" ]; then
|
||||
NEXT_INDEX=$((CURRENT_WP_INDEX + 1))
|
||||
if [ $NEXT_INDEX = ${#WALLPAPERS[@]} ]; then
|
||||
NEXT_INDEX=0
|
||||
fi
|
||||
WALLPAPER=${WALLPAPERS[$NEXT_INDEX]}
|
||||
TRANSITION_ANGLE=120
|
||||
elif [ $1 = "open-menu" ]; then
|
||||
INPUT=$''
|
||||
for index in ${!WALLPAPERS[@]}; do
|
||||
if [ $index = $CURRENT_WP_INDEX ]; then
|
||||
continue
|
||||
fi
|
||||
_WALLPAPER="${WALLPAPERS[$index]}"
|
||||
_WALLPAPER_NAME=$(basename "$_WALLPAPER")
|
||||
INPUT+="$_WALLPAPER_NAME\0icon\x1f$_WALLPAPER"
|
||||
if [ ! $(($index + 1)) = ${#WALLPAPERS[@]} ]; then
|
||||
INPUT+=$'\n'
|
||||
fi
|
||||
done
|
||||
WALLPAPER=$(echo -en "$INPUT" | rofi -dmenu -mesg "Cambiar fondo de pantalla" -p "" -i -theme ~/.config/rofi/wallpaper_selector.rasi)
|
||||
if [ ! $? = 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
WALLPAPER="${WALLPAPER_PATH}/${WALLPAPER}"
|
||||
TRANSITION_ANGLE=270
|
||||
else
|
||||
echo "Unknown first argument: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z $WALLPAPER ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WALLPAPER_NAME=$(basename "$WALLPAPER")
|
||||
echo "Setting wallpaper to $WALLPAPER, args: $@"
|
||||
echo "$WALLPAPER" > "$WALLPAPER_PATH/.current_path"
|
||||
ln -sf "$WALLPAPER" "$WALLPAPER_PATH/.current_image"
|
||||
dunstify -i "$WALLPAPER" -t 2800 "Cambiando fondo de pantalla" "Cambiando a $WALLPAPER_NAME"
|
||||
swww img\
|
||||
--transition-type wipe\
|
||||
--transition-angle $TRANSITION_ANGLE\
|
||||
--transition-step 90\
|
||||
--transition-duration 1\
|
||||
--transition-fps 165\
|
||||
"$WALLPAPER"
|
18
hosts/totsugeki/desktop/scripts_legacy/bin/now-playing.sh
Executable file
18
hosts/totsugeki/desktop/scripts_legacy/bin/now-playing.sh
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
RPC_HOST=http://localhost:6680/mopidy/rpc
|
||||
TRACK=$(curl -s -X POST -H Content-Type:application/json -d '{ "method": "core.playback.get_current_track", "jsonrpc": "2.0", "params": {}, "id": 1 }' $RPC_HOST)
|
||||
TRACK_URI=$(echo $TRACK | jq -r '.result.uri')
|
||||
IMAGES=$(curl -s -X POST -H Content-Type:application/json -d '{ "method": "core.library.get_images", "jsonrpc": "2.0", "params": { "uris": ["'"$TRACK_URI"'"] }, "id": 1}' $RPC_HOST)
|
||||
IMAGE_URI=$(echo $IMAGES | jq -r 'first(.result[] | sort_by(.width) | reverse | .[].uri)')
|
||||
if [[ -n "$IMAGE_URI" ]]; then
|
||||
if [[ "$IMAGE_URI" == *"local/"* ]]; then
|
||||
# Image is local
|
||||
IMAGE="$HOME/.local/share/mopidy/local/images${IMAGE_URI/local\//}"
|
||||
else
|
||||
curl -o /tmp/cover.png $IMAGE_URI &> /dev/null
|
||||
IMAGE="/tmp/cover.png"
|
||||
fi
|
||||
fi
|
||||
|
||||
dunstify -r 99902 -I $IMAGE "Reproduciendo" "$(mpc --format '<b>%artist% - %album%</b>\n%title%' current 2> /dev/null)"
|
5
hosts/totsugeki/desktop/scripts_legacy/bin/persistent-waybar.sh
Executable file
5
hosts/totsugeki/desktop/scripts_legacy/bin/persistent-waybar.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
while true; do
|
||||
waybar
|
||||
done
|
3
hosts/totsugeki/desktop/scripts_legacy/bin/play_to_soundboard.sh
Executable file
3
hosts/totsugeki/desktop/scripts_legacy/bin/play_to_soundboard.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
mpv --no-video --audio-device=pipewire/Soundboard --audio-client-name="Soundboard" $@
|
24
hosts/totsugeki/desktop/scripts_legacy/bin/screenshot.sh
Executable file
24
hosts/totsugeki/desktop/scripts_legacy/bin/screenshot.sh
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
|
||||
missing_params() {
|
||||
echo "Missing parameters, usage: screenshot.sh <type>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -n 1 || missing_params
|
||||
|
||||
FILE_NAME=$(date +'Screenshot_%Y%m%d_%H%M%S')
|
||||
TEMPORARY_PATH="/tmp/$FILE_NAME.png"
|
||||
SCREENSHOT_PATH=$(xdg-user-dir PICTURES)/$FILE_NAME.jxl
|
||||
|
||||
if [ $1 == "full" ]; then
|
||||
grim $TEMPORARY_PATH
|
||||
elif [ $1 == "section" ]; then
|
||||
grim -g "$(slurp -b '#000000aa' -w 0)" $TEMPORARY_PATH
|
||||
fi
|
||||
if [ $? == 0 ]; then
|
||||
wl-copy < $TEMPORARY_PATH
|
||||
cjxl $TEMPORARY_PATH $SCREENSHOT_PATH
|
||||
dunstify --raw_icon=$TEMPORARY_PATH "Captura de pantalla realizada" "Guardada como $FILE_NAME.jxl"
|
||||
rm $TEMPORARY_PATH
|
||||
fi
|
7
hosts/totsugeki/desktop/scripts_legacy/bin/setup_soundboard.sh
Executable file
7
hosts/totsugeki/desktop/scripts_legacy/bin/setup_soundboard.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
pw-cli create-node adapter '{ factory.name=support.null-audio-sink node.name="Soundboard" node.description="Soundboard" media.class=Audio/Sink object.linger=true audio.position=[FL FR] }'
|
||||
pw-link Soundboard:monitor_FL easyeffects_source:input_FL
|
||||
pw-link Soundboard:monitor_FR easyeffects_source:input_FR
|
||||
pw-link Soundboard:monitor_FL easyeffects_sink:playback_FL
|
||||
pw-link Soundboard:monitor_FR easyeffects_sink:playback_FR
|
72
hosts/totsugeki/desktop/scripts_legacy/bin/volumectl.sh
Executable file
72
hosts/totsugeki/desktop/scripts_legacy/bin/volumectl.sh
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/sh
|
||||
|
||||
VOLUME_REGEX="^(-*|\+*)[0-9]+$"
|
||||
|
||||
if [ "$1" == "output" ]; then
|
||||
if [[ $2 =~ $VOLUME_REGEX ]]; then
|
||||
if [ $(pamixer --get-mute) == "true" ]; then
|
||||
pamixer --unmute > /dev/null
|
||||
fi
|
||||
if [ "${2:0:1}" == "-" ]; then
|
||||
pamixer --allow-boost -d "${2:1}" > /dev/null
|
||||
elif [ "${2:0:1}" == "+" ]; then
|
||||
pamixer --allow-boost -i "${2:1}" > /dev/null
|
||||
fi
|
||||
volume="$(pamixer --get-volume-human)"
|
||||
message=" $volume"
|
||||
elif [ $2 == "toggle-mute" ]; then
|
||||
if [ $(pamixer --get-mute) == "true" ]; then
|
||||
pamixer --unmute > /dev/null
|
||||
volume="$(pamixer --get-volume-human)"
|
||||
message=" $volume"
|
||||
else
|
||||
pamixer --mute > /dev/null
|
||||
message=" Silenciado"
|
||||
fi
|
||||
else
|
||||
message="volumectl error: Unknown second argument"
|
||||
fi
|
||||
elif [ "$1" == "input" ]; then
|
||||
if [[ $2 =~ $VOLUME_REGEX ]]; then
|
||||
if [ $(pamixer --default-source --get-mute) == "true" ]; then
|
||||
pamixer --default-source --unmute > /dev/null
|
||||
fi
|
||||
if [ "${2:0:1}" == "-" ];then
|
||||
pamixer --default-source --allow-boost -d "${2:1}" > /dev/null
|
||||
elif [ "${2:0:1}" == "+" ]; then
|
||||
pamixer --default-source --allow-boost -i "${2:1}" > /dev/null
|
||||
fi
|
||||
volume="$(pamixer --default-source --get-volume-human)"
|
||||
message=" $volume"
|
||||
elif [ $2 == "toggle-mute" ]; then
|
||||
if [ $(pamixer --default-source --get-mute) == "true" ]; then
|
||||
pamixer --default-source --unmute > /dev/null
|
||||
volume="$(pamixer --default-source --get-volume-human)"
|
||||
message=" $volume"
|
||||
else
|
||||
pamixer --default-source --mute > /dev/null
|
||||
message=" Silenciado"
|
||||
fi
|
||||
else
|
||||
message="volumectl error: Unknown second argument"
|
||||
fi
|
||||
elif [ "$1" == "mpd" ]; then
|
||||
if [[ $2 =~ $VOLUME_REGEX ]]; then
|
||||
mpc volume $2 > /dev/null
|
||||
icon=""
|
||||
volume="$(perl -e "print ('$(mpc 2>/dev/null)' =~ /volume:[ ]*([0-9]*%)/);")"
|
||||
if [ "$volume" == "0%" ]; then
|
||||
icon=""
|
||||
volume="Silenciado"
|
||||
fi
|
||||
message="$icon $volume"
|
||||
else
|
||||
message="volumectl error: Unknown second argument"
|
||||
fi
|
||||
else
|
||||
message="volumectl error: Unknown first argument"
|
||||
fi
|
||||
|
||||
volume=$(echo $volume | tr -d "%")
|
||||
|
||||
dunstify --appname "volumectl" --replace 9001 --urgency low --timeout 1250 --hints int:value:$volume "$message"
|
197
hosts/totsugeki/desktop/waybar.nix
Normal file
197
hosts/totsugeki/desktop/waybar.nix
Normal file
|
@ -0,0 +1,197 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
primary = {
|
||||
layer = "top";
|
||||
spacing = 0;
|
||||
position = "bottom";
|
||||
mode = "dock";
|
||||
modules-left = [
|
||||
"clock"
|
||||
"pulseaudio"
|
||||
"cpu"
|
||||
"temperature"
|
||||
"custom/gpu"
|
||||
"temperature#gpu"
|
||||
"memory"
|
||||
];
|
||||
modules-center = [ "hyprland/workspaces" "hyprland/submap" ];
|
||||
modules-right = [ "mpris" ];
|
||||
"hyprland/workspaces" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = " ";
|
||||
"2" = " ";
|
||||
"3" = " ";
|
||||
"8" = " ";
|
||||
"9" = " ";
|
||||
"10" = " ";
|
||||
default = " ";
|
||||
};
|
||||
persistent-workspaces = { "*" = 10; };
|
||||
sort-by-number = true;
|
||||
};
|
||||
"hyprland/submap" = { format = " {}"; };
|
||||
temperature = {
|
||||
hwmon-path-abs = "/sys/devices/pci0000:00/0000:00:18.3/hwmon";
|
||||
input-filename = "temp1_input";
|
||||
};
|
||||
"temperature#gpu" = {
|
||||
hwmon-path-abs =
|
||||
"/sys/devices/pci0000:00/0000:00:03.1/0000:05:00.0/0000:06:00.0/0000:07:00.0/hwmon";
|
||||
input-filename = "temp1_input";
|
||||
};
|
||||
"custom/gpu" = {
|
||||
exec = "cat /sys/class/drm/card*/device/gpu_busy_percent";
|
||||
format = "GPU {}%";
|
||||
restart-interval = 2;
|
||||
};
|
||||
mpris = {
|
||||
format = "{player_icon}{status_icon} {artist} // {title}";
|
||||
interval = 0.2;
|
||||
player-icons = {
|
||||
default = "";
|
||||
firefox = " ";
|
||||
};
|
||||
status-icons = {
|
||||
paused = "";
|
||||
playing = "";
|
||||
};
|
||||
};
|
||||
clock = {
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
format = " {:%Y-%m-%d %H:%M:%S}";
|
||||
interval = 1;
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 2;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
days = "<span color='#e0def4'>{}</span>";
|
||||
today = "<span color='#eb6f92'><b><u>{}</u></b></span>";
|
||||
weeks = "";
|
||||
weekdays = "<span color='#9ccfd8'><b>{}</b></span>";
|
||||
months = "<span color='#31748f'><b>{}</b></span>";
|
||||
};
|
||||
};
|
||||
};
|
||||
cpu = {
|
||||
format = "CPU {usage}%";
|
||||
tooltip = false;
|
||||
interval = 2;
|
||||
on-click = "kitty htop";
|
||||
};
|
||||
memory = {
|
||||
format = "MEM {used}GB";
|
||||
interval = 1;
|
||||
tooltip-format = "{percentage}%";
|
||||
};
|
||||
pulseaudio = {
|
||||
scroll-step = 5;
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
format-icons = { default = [ "" "" ]; };
|
||||
ignored-sinks = [ "Easy Effects Sink" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(30, 30, 46, 0.8);
|
||||
color: #cdd6f4;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: #1e1e2e;
|
||||
border: 2px solid #313244;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
color: #f5c2e7;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 1px;
|
||||
color: #cdd6f4;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
#workspaces button.persistent {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: #313244;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #cba6f7;
|
||||
}
|
||||
|
||||
#submap {
|
||||
color: #cba6f7;
|
||||
margin-left: 4px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #f9e2af;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
color: #f9e2af;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
#custom-gpu {
|
||||
color: #94e2d5;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
#temperature.gpu {
|
||||
color: #94e2d5;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #a6e3a1;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #fab387;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: #f38ba8;
|
||||
padding-left: 20px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
50
hosts/totsugeki/development/default.nix
Normal file
50
hosts/totsugeki/development/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ inputs, pkgs, ... }: {
|
||||
imports = [ ./nixvim ];
|
||||
home = { packages = with pkgs; [ git-credential-manager gnupg pass ]; };
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
credential = {
|
||||
credentialStore = "gpg";
|
||||
helper = "${pkgs.git-credential-manager}/bin/git-credential-manager";
|
||||
"https://codeberg.org".provider = "generic";
|
||||
"https://git.rcia.dev".provider = "generic";
|
||||
};
|
||||
merge.tool = "nvim -d";
|
||||
};
|
||||
signing = {
|
||||
key = "B684FD451B692E04";
|
||||
signByDefault = true;
|
||||
};
|
||||
userEmail = "aveeryy@protonmail.com";
|
||||
userName = "Avery";
|
||||
};
|
||||
lazygit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
gui.theme = {
|
||||
activeBorderColor = [ "#89b4fa" "bold" ];
|
||||
inactiveBorderColor = [ "#a6adc8" ];
|
||||
optionsTextColor = [ "#89b4fa" ];
|
||||
selectedLineBgColor = [ "#313244" ];
|
||||
selectedRangeBgColor = [ "#313244" ];
|
||||
cherryPickedCommitBgColor = [ "#45475a" ];
|
||||
cherryPickedCommitFgColor = [ "#89b4fa" ];
|
||||
unstagedChangesColor = [ "#f38ba8" ];
|
||||
defaultFgColor = [ "#cdd6f4" ];
|
||||
searchingActiveBorderColor = [ "#f9e2af" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
gpg-agent = {
|
||||
defaultCacheTtl = 3600;
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
enableZshIntegration = true;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
};
|
||||
};
|
||||
}
|
104
hosts/totsugeki/development/nixvim/completion.nix
Normal file
104
hosts/totsugeki/development/nixvim/completion.nix
Normal file
|
@ -0,0 +1,104 @@
|
|||
{ inputs, lib, ... }: {
|
||||
programs.nixvim = {
|
||||
extraConfigLua = ''
|
||||
function has_words_before()
|
||||
unpack = unpack or table.unpack
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0
|
||||
and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
function leave_snippet()
|
||||
if
|
||||
((vim.v.event.old_mode == "s" and vim.v.event.new_mode == "n") or vim.v.event.old_mode == "i")
|
||||
and require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()]
|
||||
and not require("luasnip").session.jump_active
|
||||
then
|
||||
require("luasnip").unlink_current()
|
||||
end
|
||||
end
|
||||
|
||||
-- stop snippets when you leave to normal mode
|
||||
vim.api.nvim_command([[
|
||||
autocmd ModeChanged * lua leave_snippet()
|
||||
]])
|
||||
'';
|
||||
plugins = {
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
formatting.format = lib.mkForce ''
|
||||
function(entry, vim_item)
|
||||
if vim.tbl_contains({ "path" }, entry.source.name) then
|
||||
local icon, hl_group =
|
||||
require("nvim-web-devicons").get_icon(entry:get_completion_item().label)
|
||||
if icon then
|
||||
vim_item.kind = icon
|
||||
vim_item.kind_hl_group = hl_group
|
||||
return vim_item
|
||||
end
|
||||
end
|
||||
return require("lspkind").cmp_format({ with_text = true })(entry, vim_item)
|
||||
end
|
||||
'';
|
||||
mapping = {
|
||||
"<CR>" = "cmp.mapping.confirm({ select = false })";
|
||||
"<Tab>" = ''
|
||||
cmp.mapping(
|
||||
function(callback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif require("luasnip").expand_or_locally_jumpable() then
|
||||
require("luasnip").expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
callback()
|
||||
end
|
||||
end
|
||||
, {"i", "s"})
|
||||
'';
|
||||
"<S-Tab>" = ''
|
||||
cmp.mapping(
|
||||
function(callback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif require("luasnip").jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
else
|
||||
callback()
|
||||
end
|
||||
end
|
||||
, {"i", "s"})
|
||||
'';
|
||||
};
|
||||
snippet.expand = ''
|
||||
function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end
|
||||
'';
|
||||
sources = [
|
||||
{
|
||||
name = "luasnip";
|
||||
priority = 40;
|
||||
}
|
||||
{
|
||||
name = "nvim_lsp";
|
||||
priority = 30;
|
||||
entry_filter = ''
|
||||
function(entry, _)
|
||||
return entry:get_kind() ~= require("cmp").lsp.CompletionItemKind.Text
|
||||
end
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
lspkind = { enable = true; };
|
||||
luasnip = {
|
||||
enable = true;
|
||||
fromVscode = [ { } ];
|
||||
};
|
||||
friendly-snippets.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
40
hosts/totsugeki/development/nixvim/default.nix
Normal file
40
hosts/totsugeki/development/nixvim/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ inputs, pkgs, ... }: {
|
||||
imports = [
|
||||
./completion.nix
|
||||
./lsp.nix
|
||||
./neo-tree.nix
|
||||
./none-ls.nix
|
||||
./treesitter.nix
|
||||
];
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
flavour = "mocha";
|
||||
disableItalic = true;
|
||||
integrations = {
|
||||
cmp = true;
|
||||
neotree = true;
|
||||
};
|
||||
};
|
||||
|
||||
globals.mapleader = " ";
|
||||
|
||||
options = {
|
||||
number = true;
|
||||
cursorline = true;
|
||||
tabstop = 4;
|
||||
shiftwidth = 4;
|
||||
expandtab = true;
|
||||
ttyfast = true;
|
||||
wrap = false;
|
||||
mousemoveevent = true;
|
||||
signcolumn = "yes";
|
||||
};
|
||||
|
||||
plugins.nvim-autopairs.enable = true;
|
||||
|
||||
extraPlugins = with pkgs.vimPlugins; [ nvim-web-devicons ];
|
||||
};
|
||||
}
|
9
hosts/totsugeki/development/nixvim/lsp.nix
Normal file
9
hosts/totsugeki/development/nixvim/lsp.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ inputs, ... }: {
|
||||
programs.nixvim.plugins = {
|
||||
lsp = {
|
||||
enable = true;
|
||||
|
||||
servers = { pyright.enable = true; };
|
||||
};
|
||||
};
|
||||
}
|
1
hosts/totsugeki/development/nixvim/lualine.nix
Normal file
1
hosts/totsugeki/development/nixvim/lualine.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ ... }: { programs.nixvim.plugins.lualine = { enable = true; }; }
|
161
hosts/totsugeki/development/nixvim/neo-tree.nix
Normal file
161
hosts/totsugeki/development/nixvim/neo-tree.nix
Normal file
|
@ -0,0 +1,161 @@
|
|||
{ ... }: {
|
||||
programs.nixvim = {
|
||||
keymaps = [
|
||||
{
|
||||
action = "<cmd>Neotree toggle<CR>";
|
||||
key = "<leader>fi";
|
||||
}
|
||||
];
|
||||
plugins.neo-tree = {
|
||||
enable = true;
|
||||
closeIfLastWindow = true;
|
||||
enableGitStatus = true;
|
||||
enableDiagnostics = true;
|
||||
sourceSelector = {
|
||||
winbar = true;
|
||||
statusline = false;
|
||||
tabsLayout = "equal";
|
||||
sources = [
|
||||
{ source = "filesystem"; displayName = " Archivos "; }
|
||||
];
|
||||
};
|
||||
defaultComponentConfigs = {
|
||||
container = {
|
||||
enableCharacterFade = true;
|
||||
};
|
||||
indent = {
|
||||
indentSize = 2;
|
||||
padding = 1;
|
||||
withMarkers = true;
|
||||
indentMarker = "│";
|
||||
lastIndentMarker = "└";
|
||||
highlight = "NeoTreeIndentMarker";
|
||||
withExpanders = true;
|
||||
expanderCollapsed = "";
|
||||
expanderExpanded = "";
|
||||
expanderHighlight = "NeoTreeExpander";
|
||||
};
|
||||
icon = {
|
||||
folderClosed = "";
|
||||
folderOpen = "";
|
||||
folderEmpty = "";
|
||||
default = " ";
|
||||
highlight = "NeoTreeFileIcon";
|
||||
};
|
||||
modified = {
|
||||
symbol = "[+]";
|
||||
highlight = "NeoTreeModified";
|
||||
};
|
||||
name = {
|
||||
trailingSlash = false;
|
||||
useGitStatusColors = true;
|
||||
highlight = "NeoTreeFileName";
|
||||
};
|
||||
gitStatus = {
|
||||
symbols = {
|
||||
added = "";
|
||||
modified = "";
|
||||
deleted = "";
|
||||
renamed = "";
|
||||
untracked = "";
|
||||
ignored = "";
|
||||
unstaged = "U";
|
||||
staged = "";
|
||||
conflict = "";
|
||||
};
|
||||
};
|
||||
diagnostics = {
|
||||
symbols = {
|
||||
error = "";
|
||||
warn = "";
|
||||
hint = "";
|
||||
info = "";
|
||||
};
|
||||
highlights = {
|
||||
hint = "DiagnosticSignHint";
|
||||
info = "DiagnosticSignInfo";
|
||||
warn = "DiagnosticSignWarn";
|
||||
error = "DiagnosticSignError";
|
||||
};
|
||||
};
|
||||
};
|
||||
window = {
|
||||
position = "left";
|
||||
width = 40;
|
||||
mappingOptions = {
|
||||
noremap = true;
|
||||
nowait = true;
|
||||
};
|
||||
};
|
||||
filesystem = {
|
||||
bindToCwd = true;
|
||||
filteredItems = {
|
||||
visible = false;
|
||||
hideDotfiles = false;
|
||||
hideGitignored = false;
|
||||
hideByName = [
|
||||
"nodeModules"
|
||||
];
|
||||
};
|
||||
groupEmptyDirs = false;
|
||||
useLibuvFileWatcher = true;
|
||||
};
|
||||
buffers = {
|
||||
groupEmptyDirs = true;
|
||||
};
|
||||
renderers = {
|
||||
directory = [
|
||||
"indent"
|
||||
"icon"
|
||||
"current_filter"
|
||||
{
|
||||
name = "container";
|
||||
content = [
|
||||
{
|
||||
name = "name";
|
||||
zindex = 10;
|
||||
}
|
||||
{
|
||||
name = "symlink_target";
|
||||
zindex = 10;
|
||||
highlight = "NeoTreeSymbolicLinkTarget";
|
||||
}
|
||||
{
|
||||
name = "clipboard";
|
||||
zindex = 10;
|
||||
}
|
||||
{
|
||||
name = "diagnostics";
|
||||
errorsOnly = true;
|
||||
zindex = 20;
|
||||
align = "right";
|
||||
hideWhenExpanded = false;
|
||||
}
|
||||
{
|
||||
name = "git_status";
|
||||
zindex = 10;
|
||||
align = "right";
|
||||
hideWhenExpanded = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
file = [
|
||||
"indent"
|
||||
"icon"
|
||||
{
|
||||
name = "container";
|
||||
content = [
|
||||
{ name = "name"; zindex = 10; }
|
||||
{ name = "clipboard"; zindex = 10;}
|
||||
{ name = "bufnr"; zindex = 10;}
|
||||
{ name = "modified"; zindex = 20; align = "right";}
|
||||
{ name = "diagnostics"; zindex = 20; align = "right";}
|
||||
{ name = "git_status"; zindex = 15; align = "right";}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
25
hosts/totsugeki/development/nixvim/none-ls.nix
Normal file
25
hosts/totsugeki/development/nixvim/none-ls.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ ... }: {
|
||||
programs.nixvim.plugins.none-ls = {
|
||||
enable = true;
|
||||
onAttach = ''
|
||||
function(client, bufnr)
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
group = augroup,
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ async = false })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end
|
||||
'';
|
||||
sources = {
|
||||
formatting = {
|
||||
black.enable = true;
|
||||
nixfmt.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
7
hosts/totsugeki/development/nixvim/treesitter.nix
Normal file
7
hosts/totsugeki/development/nixvim/treesitter.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }: {
|
||||
programs.nixvim.plugins.treesitter = {
|
||||
enable = true;
|
||||
indent = true;
|
||||
nixvimInjections = true;
|
||||
};
|
||||
}
|
150
hosts/totsugeki/nixos.nix
Normal file
150
hosts/totsugeki/nixos.nix
Normal file
|
@ -0,0 +1,150 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
boot = {
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||
kernelParams = [ "video=DP-1:2560x1440@165" ];
|
||||
initrd.availableKernelModules =
|
||||
[ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
loader = {
|
||||
systemd-boot = { enable = true; };
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/144857c7-877b-46c7-94d9-30a6d6d27cf0";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:9" ];
|
||||
};
|
||||
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/8084-F762";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/4bbd6139-7caa-4617-a94f-b185c5f6ca45";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:9" ];
|
||||
};
|
||||
|
||||
"/mnt/Datos" = {
|
||||
device = "/dev/disk/by-uuid/994ef2bd-a9fb-4414-9a0a-19b150ffa452";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:9" "user" "x-systemd.automount" "exec" ];
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 1111 42595 ];
|
||||
allowedUDPPorts = [ 24642 ];
|
||||
};
|
||||
hostName = "totsugeki";
|
||||
networkmanager.enable = true;
|
||||
useDHCP = lib.mkDefault true;
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
time.timeZone = "Europe/Madrid";
|
||||
|
||||
i18n.defaultLocale = "es_ES.UTF-8";
|
||||
console = {
|
||||
keyMap = lib.mkForce "dvorak-es";
|
||||
useXkbConfig = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
enableRedistributableFirmware = true;
|
||||
cpu.amd.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config.allowUnfree = true;
|
||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
};
|
||||
|
||||
users = {
|
||||
defaultUserShell = pkgs.zsh;
|
||||
extraGroups.vboxusers.members = [ "avery" ];
|
||||
users.avery = {
|
||||
extraGroups = [ "wheel" ];
|
||||
isNormalUser = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment = {
|
||||
shells = with pkgs; [ zsh ];
|
||||
systemPackages = with pkgs; [ htop libjxl neovim ];
|
||||
};
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
inter
|
||||
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = [ "Inter" ];
|
||||
sansSerif = [ "Inter" ];
|
||||
monospace = [ "Iosevka Nerd Font" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
steam.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
security = {
|
||||
doas = {
|
||||
enable = true;
|
||||
extraRules = [{
|
||||
users = [ "avery" ];
|
||||
keepEnv = true;
|
||||
persist = true;
|
||||
}];
|
||||
};
|
||||
rtkit.enable = true;
|
||||
sudo.enable = false;
|
||||
};
|
||||
|
||||
services = {
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
user = "avery";
|
||||
};
|
||||
default_session = initial_session;
|
||||
};
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
};
|
||||
openssh.enable = true;
|
||||
udisks2.enable = true;
|
||||
};
|
||||
|
||||
systemd = { services = { NetworkManager-wait-online.enable = false; }; };
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue