2 last months
This commit is contained in:
parent
f845745874
commit
15b909473e
63 changed files with 963 additions and 1103 deletions
|
@ -1,59 +0,0 @@
|
|||
{ 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
|
||||
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
|
||||
swww
|
||||
wl-clipboard
|
||||
element-desktop
|
||||
vesktop
|
||||
(import ./scripts/colorpicker.nix { inherit pkgs; })
|
||||
(import ./scripts/currently-playing.nix { inherit pkgs; })
|
||||
(import ./scripts/change-wallpaper.nix { inherit pkgs; })
|
||||
(import ./scripts/screenshot.nix { inherit pkgs; })
|
||||
(pkgs.buildEnv {
|
||||
name = "desktop-scripts";
|
||||
paths = [ ./scripts_legacy ];
|
||||
})
|
||||
];
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.phinger-cursors;
|
||||
name = "phinger-cursors-dark";
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
services.easyeffects.enable = true;
|
||||
xdg.enable = true;
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{ ... }: {
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,184 +0,0 @@
|
|||
{ config, pkgs, ... }: {
|
||||
home.packages = with pkgs; [ hyprpicker hyprlock ];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
monitor = "DP-1, 2560x1440@165, 0x0, 1";
|
||||
|
||||
env = [ "XCURSOR_SIZE, 24" "QT_QPA_PLATFORMTHEME, qt5ct" ];
|
||||
|
||||
exec-once = [
|
||||
"hyprlock"
|
||||
"hyprctl setcursor phinger-cursors-dark 24"
|
||||
"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.5;
|
||||
drop_shadow = false;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 2;
|
||||
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 full"
|
||||
"SUPER + SHIFT, S, exec, screenshot 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, 5, exec, play_to_soundboard.sh $HOME/soundboard/bazinga.webm"
|
||||
"MOD3, 6, exec, play_to_soundboard.sh $HOME/soundboard/zasentodalaboca.m4a"
|
||||
"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" "noanim, 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 previous
|
||||
bind = , L, exec, change-wallpaper next
|
||||
bind = , M, exec, change-wallpaper 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
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ catppuccin-kde lightly-qt ];
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
};
|
||||
}
|
|
@ -1,176 +0,0 @@
|
|||
{ 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "change-wallpaper";
|
||||
runtimeInputs = with pkgs; [ dunst rofi swww ];
|
||||
text = ''
|
||||
shopt -s nullglob
|
||||
|
||||
WALLPAPER_PATH="$HOME/.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")
|
||||
CURRENT_WP_INDEX=-1
|
||||
# Get the current wallpaper's index
|
||||
for index in "''${!WALLPAPERS[@]}"; do
|
||||
if [ "''${WALLPAPERS[$index]}" = "$CURRENT_WALLPAPER" ]; then
|
||||
CURRENT_WP_INDEX=$index
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$CURRENT_WP_INDEX" -eq -1 ]; 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)) -eq ''${#WALLPAPERS[@]} ]; then
|
||||
INPUT+=$'\n'
|
||||
fi
|
||||
done
|
||||
if ! WALLPAPER=$(echo -en "$INPUT" | rofi -dmenu -mesg "Cambiar fondo de pantalla" -p "" -i -theme ~/.config/rofi/wallpaper_selector.rasi); 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"
|
||||
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"
|
||||
|
||||
'';
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ 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"
|
||||
'';
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{ 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"
|
||||
'';
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "screenshot";
|
||||
runtimeInputs = with pkgs; [
|
||||
dunst
|
||||
grim
|
||||
libjxl
|
||||
slurp
|
||||
wl-clipboard
|
||||
xdg-user-dirs
|
||||
];
|
||||
text = ''
|
||||
usage() {
|
||||
echo "Usage: screenshot { full | section }"
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -n 1 || usage
|
||||
|
||||
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"
|
||||
else
|
||||
usage
|
||||
fi
|
||||
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"
|
||||
'';
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
#!/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)"
|
|
@ -1,5 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
while true; do
|
||||
waybar
|
||||
done
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
mpv --no-video --audio-device=pipewire/Soundboard --audio-client-name="Soundboard" $@
|
|
@ -1,7 +0,0 @@
|
|||
#!/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
|
|
@ -1,72 +0,0 @@
|
|||
#!/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"
|
|
@ -1,197 +0,0 @@
|
|||
{ 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.9);
|
||||
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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
1
hosts/totsugeki/home-manager/default.nix
Normal file
1
hosts/totsugeki/home-manager/default.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ ... }: { imports = [ ./desktop ./development ./scripts ]; }
|
36
hosts/totsugeki/home-manager/desktop/default.nix
Normal file
36
hosts/totsugeki/home-manager/desktop/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, pkgs, ... }: {
|
||||
imports = [ ./plasma ./firefox.nix ./gtk.nix ./kitty.nix ];
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
gimp
|
||||
fastfetch
|
||||
inkscape
|
||||
libreoffice-qt
|
||||
obs-studio
|
||||
picard
|
||||
protonup-qt
|
||||
kdePackages.ark
|
||||
kdePackages.dolphin
|
||||
kdePackages.dolphin-plugins
|
||||
kdePackages.kio
|
||||
kdePackages.kio-extras
|
||||
kdePackages.kimageformats
|
||||
kdePackages.qtimageformats
|
||||
kdePackages.sddm-kcm
|
||||
mpv
|
||||
noto-fonts-cjk-sans
|
||||
nsxiv
|
||||
osu-lazer-bin
|
||||
playerctl
|
||||
prismlauncher
|
||||
qbittorrent
|
||||
r2modman
|
||||
wl-clipboard
|
||||
element-desktop
|
||||
vesktop
|
||||
];
|
||||
};
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
services.easyeffects.enable = true;
|
||||
xdg.enable = true;
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
enable = true;
|
||||
font = {
|
||||
name = "Iosevka Nerd Font";
|
||||
size = 14;
|
||||
size = 12;
|
||||
};
|
||||
keybindings = {
|
||||
"ctrl+alt+1" = "goto_tab 1";
|
16
hosts/totsugeki/home-manager/desktop/plasma/default.nix
Normal file
16
hosts/totsugeki/home-manager/desktop/plasma/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ ... }: {
|
||||
imports = [ ./input.nix ./hotkeys.nix ./krohnkite.nix ./theme.nix ];
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
overrideConfig = true;
|
||||
workspace.clickItemTo = "open";
|
||||
kwin = {
|
||||
virtualDesktops = {
|
||||
rows = 1;
|
||||
number = 10;
|
||||
};
|
||||
effects.desktopSwitching.animation = "slide";
|
||||
};
|
||||
configFile = { "kded5rc" = { Module-gtkconfig.autoload = false; }; };
|
||||
};
|
||||
}
|
27
hosts/totsugeki/home-manager/desktop/plasma/hotkeys.nix
Normal file
27
hosts/totsugeki/home-manager/desktop/plasma/hotkeys.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ ... }: {
|
||||
programs.plasma.shortcuts = {
|
||||
kwin = {
|
||||
"Switch to Desktop 1" = "Meta+1";
|
||||
"Window to Desktop 1" = "Meta+!";
|
||||
"Switch to Desktop 2" = "Meta+2";
|
||||
"Window to Desktop 2" = ''Meta+"'';
|
||||
"Switch to Desktop 3" = "Meta+3";
|
||||
"Window to Desktop 3" = "Meta+·";
|
||||
"Switch to Desktop 4" = "Meta+4";
|
||||
"Window to Desktop 4" = "Meta+$";
|
||||
"Switch to Desktop 5" = "Meta+5";
|
||||
"Window to Desktop 5" = "Meta+%";
|
||||
"Switch to Desktop 6" = "Meta+6";
|
||||
"Window to Desktop 6" = "Meta+&";
|
||||
"Switch to Desktop 7" = "Meta+7";
|
||||
"Window to Desktop 7" = "Meta+/";
|
||||
"Switch to Desktop 8" = "Meta+8";
|
||||
"Window to Desktop 8" = "Meta+(";
|
||||
"Switch to Desktop 9" = "Meta+9";
|
||||
"Window to Desktop 9" = "Meta+)";
|
||||
"Switch to Desktop 10" = "Meta+0";
|
||||
"Window to Desktop 10" = "Meta+=";
|
||||
};
|
||||
"services/kitty.desktop"."_launch" = "Ctrl+Alt+T";
|
||||
};
|
||||
}
|
15
hosts/totsugeki/home-manager/desktop/plasma/input.nix
Normal file
15
hosts/totsugeki/home-manager/desktop/plasma/input.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ ... }: {
|
||||
programs.plasma.configFile = {
|
||||
kcminputrc."Libinput/9610/54/Glorious Model O" = {
|
||||
PointerAcceleration = -0.4;
|
||||
PointerAccelerationProfile = 1;
|
||||
};
|
||||
kxkbrc.Layout = {
|
||||
LayoutList = "es";
|
||||
Use = true;
|
||||
VariantList = "dvorak";
|
||||
Options = "caps:menu";
|
||||
ResetOldOptions = true;
|
||||
};
|
||||
};
|
||||
}
|
23
hosts/totsugeki/home-manager/desktop/plasma/krohnkite.nix
Normal file
23
hosts/totsugeki/home-manager/desktop/plasma/krohnkite.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
# TODO: find a way to automatically install krohnkite
|
||||
{ ... }: {
|
||||
programs.plasma.configFile.kwinrc = {
|
||||
Plugins.krohnkiteEnabled = true;
|
||||
Script-krohnkite = {
|
||||
enableMonocleLayout = false;
|
||||
enableSpreadLayout = false;
|
||||
enableStairLayout = false;
|
||||
enableThreeColumnLayout = false;
|
||||
enableTileLayout = false;
|
||||
ignoreClass = "krunner,yakuake,spectacle,kded5,plasmashell";
|
||||
layoutPerActivity = false;
|
||||
layoutPerDesktop = false;
|
||||
limitTileWidthRatio = 0.6;
|
||||
noTileBorder = true;
|
||||
screenGapBottom = 20;
|
||||
screenGapLeft = 8;
|
||||
screenGapRight = 8;
|
||||
screenGapTop = 8;
|
||||
tileLayoutGap = 2;
|
||||
};
|
||||
};
|
||||
}
|
59
hosts/totsugeki/home-manager/desktop/plasma/theme.nix
Normal file
59
hosts/totsugeki/home-manager/desktop/plasma/theme.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ pkgs, ... }:
|
||||
let cursorThemeName = "catppuccin-mocha-mauve-cursors";
|
||||
in {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
(catppuccin-kde.override {
|
||||
flavour = [ "mocha" ];
|
||||
accents = [ "mauve" ];
|
||||
})
|
||||
catppuccin-cursors.mochaMauve
|
||||
];
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.catppuccin-cursors.mochaMauve;
|
||||
name = cursorThemeName;
|
||||
size = 32;
|
||||
};
|
||||
};
|
||||
programs.plasma = {
|
||||
fonts = {
|
||||
general = {
|
||||
family = "Inter Display";
|
||||
pointSize = 11;
|
||||
weight = "medium";
|
||||
};
|
||||
fixedWidth = {
|
||||
family = "Iosevka Nerd Font";
|
||||
pointSize = 12;
|
||||
};
|
||||
small = {
|
||||
family = "Inter Display";
|
||||
pointSize = 8;
|
||||
};
|
||||
toolbar = {
|
||||
family = "Inter Display";
|
||||
pointSize = 11;
|
||||
weight = "medium";
|
||||
};
|
||||
menu = {
|
||||
family = "Inter Display";
|
||||
pointSize = 11;
|
||||
weight = "medium";
|
||||
};
|
||||
windowTitle = {
|
||||
family = "Inter Display";
|
||||
pointSize = 11;
|
||||
weight = "medium";
|
||||
};
|
||||
};
|
||||
workspace = {
|
||||
colorScheme = "CatppuccinMochaMauve";
|
||||
lookAndFeel = "Catppuccin-Mocha-Mauve";
|
||||
cursor = {
|
||||
theme = cursorThemeName;
|
||||
size = 32;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -5,7 +5,8 @@
|
|||
git-credential-manager
|
||||
gnupg
|
||||
pass
|
||||
dotnet-sdk_7
|
||||
# dotnet-sdk_7
|
||||
dotnet-sdk_8 # tModLoader
|
||||
unityhub
|
||||
];
|
||||
};
|
6
hosts/totsugeki/home-manager/scripts/default.nix
Normal file
6
hosts/totsugeki/home-manager/scripts/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
(import ./play-on-soundboard.nix { inherit pkgs; })
|
||||
(import ./setup-soundboard.nix { inherit pkgs; })
|
||||
];
|
||||
}
|
16
hosts/totsugeki/home-manager/scripts/play-on-soundboard.nix
Normal file
16
hosts/totsugeki/home-manager/scripts/play-on-soundboard.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "play-on-soundboard";
|
||||
runtimeInputs = with pkgs; [ mpv ];
|
||||
text = ''
|
||||
if [ ! -f "/run/user/$UID/soundboard.init" ]; then
|
||||
setup-soundboard
|
||||
fi
|
||||
mpv \
|
||||
--no-video\
|
||||
--audio-device=pipewire/Soundboard\
|
||||
--audio-client-name="Soundboard"\
|
||||
"$@"
|
||||
'';
|
||||
}
|
13
hosts/totsugeki/home-manager/scripts/setup-soundboard.nix
Normal file
13
hosts/totsugeki/home-manager/scripts/setup-soundboard.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "setup-soundboard";
|
||||
text = ''
|
||||
touch "/run/user/$UID/soundboard.init"
|
||||
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
|
||||
'';
|
||||
}
|
|
@ -1,4 +1,7 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
|
||||
imports = [ ./filesystems.nix ./plasma.nix ./steam.nix ];
|
||||
|
||||
boot = {
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||
|
@ -18,35 +21,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/144857c7-877b-46c7-94d9-30a6d6d27cf0";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:15" ];
|
||||
};
|
||||
|
||||
"/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:15" ];
|
||||
};
|
||||
|
||||
"/mnt/Datos" = {
|
||||
device = "/dev/disk/by-uuid/994ef2bd-a9fb-4414-9a0a-19b150ffa452";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:15" "user" "x-systemd.automount" "exec" ];
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 1111 42595 ];
|
||||
allowedTCPPorts = [ 8000 42595 ];
|
||||
allowedUDPPorts = [ 24642 ];
|
||||
};
|
||||
hostName = "totsugeki";
|
||||
|
@ -79,25 +57,19 @@
|
|||
};
|
||||
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
steam.enable = true;
|
||||
corectrl = {
|
||||
enable = true;
|
||||
gpuOverclock.enable = true;
|
||||
};
|
||||
nix-ld.enable = true;
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
};
|
||||
xdg.portal.enable = true;
|
||||
|
||||
services = {
|
||||
greetd = {
|
||||
jellyfin = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
user = "avery";
|
||||
};
|
||||
default_session = initial_session;
|
||||
};
|
||||
openFirewall = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
@ -108,6 +80,16 @@
|
|||
pulse.enable = true;
|
||||
};
|
||||
udisks2.enable = true;
|
||||
udev.extraRules = ''
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
|
||||
'';
|
||||
displayManager = {
|
||||
defaultSession = "plasma";
|
||||
sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd = { services = { NetworkManager-wait-online.enable = false; }; };
|
||||
|
||||
|
@ -117,4 +99,6 @@
|
|||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
users.users.avery.extraGroups = [ "corectrl" ];
|
||||
}
|
26
hosts/totsugeki/nixos/filesystems.nix
Normal file
26
hosts/totsugeki/nixos/filesystems.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ ... }: {
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/144857c7-877b-46c7-94d9-30a6d6d27cf0";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:15" ];
|
||||
};
|
||||
|
||||
"/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:15" ];
|
||||
};
|
||||
|
||||
"/mnt/Datos" = {
|
||||
device = "/dev/disk/by-uuid/994ef2bd-a9fb-4414-9a0a-19b150ffa452";
|
||||
fsType = "btrfs";
|
||||
options = [ "compress=zstd:15" "user" "x-systemd.automount" "exec" ];
|
||||
};
|
||||
};
|
||||
}
|
10
hosts/totsugeki/nixos/plasma.nix
Normal file
10
hosts/totsugeki/nixos/plasma.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }: {
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
konsole
|
||||
oxygen
|
||||
elisa
|
||||
kate
|
||||
okular
|
||||
];
|
||||
}
|
7
hosts/totsugeki/nixos/steam.nix
Normal file
7
hosts/totsugeki/nixos/steam.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue