Merge pull request #9 from tomasriveral/laptop

Laptop
This commit is contained in:
2026-05-18 19:39:28 +02:00
committed by GitHub
91 changed files with 470 additions and 560 deletions
+9 -9
View File
@@ -164,15 +164,15 @@ If you **dont have the physical macropad**, the table below shows which keybi
| Macropad Key | Linked Action (Hyprland keybinding) |
| ------------ | -------------------------------------------- |
| Row 1, Col 1 | Kill all apps except focused (`Ctrl+$mod+6`) |
| Row 2, Col 1 | Performance mode (`Ctrl+Alt+7`) |
| Row 3, Col 1 | Do not disturb (`Ctrl+$mod+4` |
| Row 4, Col 1 | Notification center (`Ctrl+Alt+1`) |
| Row 3, Col 2 | Special characters (`Ctrl+$mod+3`) |
| Row 3, Col 3 | Color picker (`Ctrl+Alt+8`) |
| Row 4, Col 1 | Notification center toggle (`Ctrl+Alt+1`) |
| Row 4, Col 2 | System monitor (`Ctrl+Alt+2`) |
| Row 4, Col 3 | Pomodoro timer (`Ctrl+Alt+0`) |
| Row 4, Col 6 | Launch Anki (`Ctrl+Alt+9`) |
| Row 1, Col 2 | Performance mode (`Ctrl+Alt+7`) |
| Row 1, Col 3 | Do not disturb (`Ctrl+$mod+4` |
| Row 1, Col 4 | Notification center (`Ctrl+Alt+1`) |
| Row 2, Col 1 | Pulseaudio control (`Ctrl+$mod+3`) |
| Row 2, Col 2 | Change audio output (`Ctrl+Alt+Shift+0`) |
| Row 2, Col 3 | Special characters (`Ctrl+$mod+3`) |
| Row 2, Col 4 | Color picker (`Ctrl+Alt+8`) |
| Row 3, Col 1 | Pomodoro timer (`Ctrl+Alt+0`) |
| Row 4, Col 1 | Launch Anki (`Ctrl+Alt+9`) |
> Positions are labeled as `[row, column]` starting from top-left `[1,1]`.
> Each macro calls a script or application from this configuration.
Generated
+16 -16
View File
@@ -11,11 +11,11 @@
]
},
"locked": {
"lastModified": 1778125502,
"narHash": "sha256-QAAO9RCR6byVJi50l8RMVJWzrsNYbXonfR6tqU93vIQ=",
"lastModified": 1778644647,
"narHash": "sha256-iQIu4b5by8B3qKeigungSIgRoJg9HS1NiIZwqIbCGYk=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "7b8a4281aa8b2b12745de531cce0c65d87aea2e5",
"rev": "2ce6213698d1cfa15b4b067d35c3cda634f443dd",
"type": "github"
},
"original": {
@@ -33,11 +33,11 @@
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1778381004,
"narHash": "sha256-JwIlrajiY74obxyTMu/Ym6wOEQaCjpHwfziPK+E5u3Q=",
"lastModified": 1778986249,
"narHash": "sha256-6vIBRLIy41LDrm/ahTcrEj6pBB+oji7bP/5RY9Or0GA=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "2ca4ad4a434e91e73504debd5225e66dc5ebb2b6",
"rev": "cf18cea3dad28ddda2f151b1b42a66f2fba1f84a",
"type": "github"
},
"original": {
@@ -53,11 +53,11 @@
]
},
"locked": {
"lastModified": 1778606796,
"narHash": "sha256-P2krpSkFVYJ89bgsnAZ9RtQiGwiTW77sfSJp9SEDscM=",
"lastModified": 1778905220,
"narHash": "sha256-ox/5IHc8uwy6UTw6N7Shp6uCHIgu/S2PsWeuXsOHSo8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e1fd7350f4410972bcb8c42a697d8c924ffe642a",
"rev": "d1686dc7d36cbd1234cb226ad6ef97e882716acb",
"type": "github"
},
"original": {
@@ -119,11 +119,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1778794387,
"narHash": "sha256-BL04pOS9453Awkeb9f90XBJXBSkWxN+vB7HIgnL0iMM=",
"lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "8a1b0127302ea51e05bf4ea5a291743fac442406",
"rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github"
},
"original": {
@@ -157,11 +157,11 @@
]
},
"locked": {
"lastModified": 1778222427,
"narHash": "sha256-6GFiP611nEJvtm+m03sMyfaVIJ9QOCi//hS+PPKyyPA=",
"lastModified": 1778488696,
"narHash": "sha256-QSWgYuZUCNUJ/cxmaq83WkcT7lHQDDfsPVgH+96kIl0=",
"ref": "refs/heads/master",
"rev": "d1760ed1f31c02a95b37a9bf4084129c829ebe7f",
"revCount": 817,
"rev": "7d1c9a9c6721606b129829134d6f614f015621e2",
"revCount": 818,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
+3 -8
View File
@@ -15,17 +15,13 @@
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
microPlugins-vivify = {
url = "git+https://codeberg.org/gibbert/micro-vivify";
flake = false;
url = "git+https://codeberg.org/gibbert/micro-vivify";
flake = false;
};
};
outputs = {
self,
nixpkgs,
nixpkgs-unstable,
home-manager,
nixos-grub-themes,
caelestia-shell,
...
} @ inputs: let
system = "x86_64-linux";
@@ -41,10 +37,9 @@
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfreePredicate = mkUnfreePredicate;
};
in {
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
+8 -8
View File
@@ -3,10 +3,6 @@
# and in the NixOS manual (accessible by running nixos-help).
{
# nixd says that those attributes are not used. The are used in the imported file. Do not remove.
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
@@ -18,13 +14,16 @@
#../../modules/nixos/ly.nix
../../modules/nixos/ly.nix
../../modules/nixos/anki.nix
../../modules/nixos/nixUtils.nix ../../hostsModules/laptop/nixos/nixUtils.nix
../../modules/nixos/nixUtils.nix
../../hostsModules/laptop/nixos/nixUtils.nix
../../hostsModules/laptop/nixos/udev.nix
../../modules/nixos/disk.nix ../../hostsModules/laptop/nixos/disk.nix
../../modules/nixos/disk.nix
../../hostsModules/laptop/nixos/disk.nix
../../modules/nixos/printer.nix
../../hostsModules/laptop/nixos/ollama.nix # llm config
../../modules/nixos/mullvad.nix # vpn config
../../hostsModules/laptop/nixos/autoUpdate.nix # auto update the flakes. Handles notification via libnotify and matrix-commander-rs
../../hostsModules/laptop/nixos/autoCleanup.nix # uses alexandra deadnix and statix to clean the whole config
../../hostsModules/laptop/nixos/bootloader.nix
../../hostsModules/laptop/nixos/networking.nix # firewall, ssh, networkmanager, etc.
../../modules/nixos/bluetooth.nix
@@ -35,7 +34,8 @@
../../modules/nixos/fonts.nix
../../modules/nixos/latex.nix
../../modules/nixos/development.nix
../../modules/nixos/user.nix ../../hostsModules/laptop/nixos/user.nix
../../modules/nixos/user.nix
../../hostsModules/laptop/nixos/user.nix
../../modules/nixos/notifications.nix
../../modules/nixos/browser.nix
../../modules/nixos/theme.nix # install theming packages and some quickshell stuff
@@ -43,7 +43,7 @@
../../modules/nixos/otherUtils.nix
../../modules/nixos/office.nix
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
-1
View File
@@ -4,7 +4,6 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: {
+1 -6
View File
@@ -1,9 +1,4 @@
{
config,
pkgs,
inputs,
...
}: {
{inputs, ...}: {
# every import imports a specific module for an app. This module contains the enabling of this app and its settings.
# So if you want to add an home-manager app create a module which enables it and configures it and import it.
imports = [
@@ -1,11 +1,4 @@
{
config,
pkgs,
pkgs-unstable,
...
}:
{
_: {
wayland.windowManager.hyprland.settings = {
exec-once = [
"qtbatticon" # custom battery tray
+3 -7
View File
@@ -1,12 +1,8 @@
{
config,
pkgs,
...
}: {
_: {
programs.zsh = {
shellAliases = {
snrt = "git -C ~/nixos add -A && time sudo nixos-rebuild test --flake ~/nixos/#laptop";
snrs = "git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop";
snrt = "git -C ~/nixos add -A && time sudo nixos-rebuild test --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown";
snrs = "git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown";
};
};
}
+45
View File
@@ -0,0 +1,45 @@
{pkgs, ...}: {
# Ensure your script is available system-wide
environment.systemPackages = [
(pkgs.callPackage ../scripts/cleanNix.nix {})
];
users.users.tomasr = {
linger = true; # lingering is required
};
systemd.user.services.custom-cleanNix = {
description = "NixOS configuration auto cleanup";
serviceConfig = {
Type = "oneshot";
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
# safety for long rebuilds
TimeoutStartSec = "45min";
TimeoutStopSec = "10min";
# avoid overlap
RemainAfterExit = true;
# tweaks that should make the system run normally during the rebuilds
Nice = 10;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
};
};
# Systemd USER timer
systemd.user.timers.custom-cleanNix = {
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "Sat *-*-* 20:00:00"; # runs saturday night. If for whatever reason something breaks. I have whole sunday to fix it.
Persistent = true; # if it happens during shutted down
# avoids thundering herd on boot
RandomizedDelaySec = "2h";
};
};
}
+3 -5
View File
@@ -1,12 +1,10 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
# Ensure your script is available system-wide
environment.systemPackages = [
(pkgs.callPackage ../scripts/autoUpdate.nix {})
];
users.users.tomasr = {
linger = true; # lingering is required
linger = true; # lingering is required
};
systemd.user.services.custom-autoupdate = {
@@ -33,7 +31,7 @@
# Systemd USER timer
systemd.user.timers.custom-autoupdate = {
wantedBy = [ "timers.target" ];
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "Fri *-*-* 20:00:00"; # runs friday night. If for whatever reason something breaks. I have whole week-end to fix it.
+2 -1
View File
@@ -2,7 +2,8 @@
{
lib,
config,
...}:
...
}:
# we just activate tlp unconditonally
#let
# cfg = config.custom;
+1 -2
View File
@@ -2,8 +2,7 @@
inputs,
pkgs,
...
}:
{
}: {
# grub theme
boot.loader.grub = {
theme = inputs.nixos-grub-themes.packages.${pkgs.system}.nixos; # if you want to use nixos grub theme
+3 -9
View File
@@ -1,13 +1,7 @@
{
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
_: {
# i found swap necessary when running nixpkgs review
swapDevices = [{
swapDevices = [
{
device = "/swapfile";
size = 16384; # 16 GB
}
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# used for the framework 16 laptop
framework-tool
+5 -10
View File
@@ -1,14 +1,9 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
wget
networkmanagerapplet # NetworkManager control applet
inetutils # collections of network programs such as telnet
];
wget
networkmanagerapplet # NetworkManager control applet
inetutils # collections of network programs such as telnet
];
#networking.Name = "nixos"; # Define your hostname.
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+1 -4
View File
@@ -1,7 +1,4 @@
{
...
}:
{
_: {
# nixpkgs-review crashed my laptop multiple times.
nix.settings.max-jobs = 2;
nix.settings.cores = 2;
+8 -8
View File
@@ -1,7 +1,4 @@
{
pkgs-unstable,
...
}: {
{pkgs-unstable, ...}: {
services.ollama = {
enable = true;
package = pkgs-unstable.ollama-vulkan;
@@ -11,15 +8,18 @@
#loadModels = [ "mistral:7b" ]; # don't forget the :xxxxx for ex: "mixtral" don't work
#syncModels = true;
};
systemd.services.ollama.serviceConfig.ExecStartPost = [ # use this to auto download models
"${pkgs-unstable.ollama-vulkan}/bin/ollama pull mistral:7b"
systemd.services.ollama.serviceConfig.ExecStartPost = [
# use this to auto download models
"${pkgs-unstable.ollama-vulkan}/bin/ollama pull mistral:7b"
];
/*services.open-webui = {
/*
services.open-webui = {
enable = true;
port = 8080;
environment = {
OLLAMA_BASE_URL = "http://127.0.0.1:11434";
WEBUI_AUTH = "True";
};
};*/
};
*/
}
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
# udev with only the necessary rules. See udev.nix to get all the rules
services.udev.extraRules = ''
# adapted from here https://wiki.nixos.org/wiki/Keychron_M6
+1 -4
View File
@@ -1,7 +1,4 @@
# configuration is in ../../../modules/nixos/user.nix
{
...
}:
{
_: {
home-manager.users.tomasr = ../../../hosts/laptop/home.nix;
}
-1
View File
@@ -4,7 +4,6 @@
# at your risk and perils
# click on the icon to get a notification with state, percentage and wattage
{
lib,
stdenv,
qt6,
pkg-config,
+6 -7
View File
@@ -1,7 +1,4 @@
{
pkgs,
...
}:
{pkgs, ...}:
pkgs.writeShellApplication {
name = "custom-autoupdate";
@@ -29,8 +26,8 @@ pkgs.writeShellApplication {
# update lock only
nix flake update --flake "$FLAKE_DIR"
if sudo nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
git -C "$FLAKE_DIR" add flake.lock
git -C "$FLAKE_DIR" commit -m "flake.lock: autoupdate-$TIME"
@@ -57,7 +54,9 @@ pkgs.writeShellApplication {
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
fi
git -C "$FLAKE_DIR" tag -d "pre-autoupdate-$TIME" # removes the tag
rm -f "$ERROR_FILE"
'';
}
+1 -2
View File
@@ -1,5 +1,4 @@
{ pkgs }:
{pkgs}:
pkgs.writeShellApplication {
name = "custom-checkMatrix";
+71
View File
@@ -0,0 +1,71 @@
{pkgs, ...}:
pkgs.writeShellApplication {
name = "custom-cleanNix";
runtimeInputs = with pkgs; [
git
nixos-rebuild
matrix-commander-rs
libnotify
alejandra
deadnix
];
text = ''
set -e
FLAKE_DIR="/home/tomasr/nixos"
FLAKE="$FLAKE_DIR#laptop"
TIME=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
ERROR_FILE=$(mktemp)
# snapshot current state
git -C "$FLAKE_DIR" add -A
git -C "$FLAKE_DIR" commit --allow-empty -m "snapshot pre-cleanup-$TIME"
git -C "$FLAKE_DIR" tag "pre-cleanup-$TIME" HEAD
# the echos are to separate what each one is doing. Just for curiosity
echo "deadnix scans your Nix code and removes or reports unused (dead) variables and bindings"
deadnix --edit "$FLAKE_DIR" # removes unused code
echo "--------------------------------------------------------------"
echo "statix lints your Nix code to find stylistic issues, bad patterns, and potential mistakes."
statix fix "$FLAKE_DIR" # check other linting issues
echo "--------------------------------------------------------------"
echo "alejandra formats your Nix code consistently according to a strict, opinionated style."
alejandra "$FLAKE_DIR" # formats the config
echo "--------------------------------------------------------------"
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
git -C "$FLAKE_DIR" add -A
git -C "$FLAKE_DIR" commit -m "Auto: cleanup-$TIME"
git -C "$FLAKE_DIR" push
notify-send "Nix auto cleanup" "Everything OK"
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
else
notify-send "Nix auto cleanup" "No changes"
git -C "$FLAKE_DIR" push
fi
else
ERROR_MSG=$(cat "$ERROR_FILE")
notify-send -u critical "Nix auto cleanup" "FAILED"
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
fi
git -C "$FLAKE_DIR" tag -d "pre-cleanup-$TIME" # removes the tag
rm -f "$ERROR_FILE"
'';
}
-1
View File
@@ -1,5 +1,4 @@
# OLD Deprecated.
{
config,
pkgs,
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.anki = {
# we enable system wide with nixpkgs because it offers some addon configuration. We just use this for some config
#enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
services.batsignal = {
enable = true;
};
+4 -10
View File
@@ -1,17 +1,11 @@
{
config,
pkgs,
pkgs-unstable,
caelestia-shell,
...
}: let
_: let
sisyphe = ../../assets/sisyphe.gif;
pepe-music = ../../assets/pepe-music.gif;
in {
home.file.".local/state/caelestia/wallpaper/path.txt" = { # dummy file. Does nothing. Prevent an error
home.file.".local/state/caelestia/wallpaper/path.txt" = {
# dummy file. Does nothing. Prevent an error
enable = true;
text = "${sisyphe}";
};
home.file.".face" = {
# this is were caelestia will search for profiles pictures
@@ -516,7 +510,7 @@ in {
};
theme = {
enableTerm = false; # we do it manually by adapting our kitty config
enableHypr = true;
enableHypr = false; # this seems to add the splash
enableDiscord = true;
enableSpicetify = true;
enableFuzzel = true; #what's that?
+1 -5
View File
@@ -1,11 +1,7 @@
# don't works. some GTK error. I let it here if someday, someone is interest in this shit.
# ChatGPT half baked a replacement that works on my system.
# see ../qt/qtbatticon
{
config,
pkgs,
...
}: {
_: {
services.cbatticon = {
enable = true;
lowLevelPercent = 20;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
home.pointerCursor = {
hyprcursor.enable = true;
enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}:
_:
# ls replacement
# see ./zsh.nix for the alias (usefull to se default flags)
{
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
# Adapted from https://github.com/dacrab/fastfetch-config/blob/main/config.jsonc
programs.fastfetch = {
enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.git = {
enable = true;
settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
# gtk config
gtk.theme = {
enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
services.hypridle = {
enable = true;
settings = {
+17 -18
View File
@@ -1,9 +1,4 @@
{
config,
pkgs,
pkgs-unstable,
...
}: let
{pkgs-unstable, ...}: let
wallpaper = ../../assets/wallpaper1.jpg;
in {
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
@@ -161,8 +156,9 @@ in {
"Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar"
"Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd"
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
"Ctrl+$mod, 5, exec, gnome-characters" # pos 2 2 special chars
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 3 2 colorpicker
"Ctrl+Shift+Alt, 0, exec, kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"" # pos 2 2 change audio output fzf
"Ctrl+$mod, 5, exec, gnome-characters" # pos 3 2 special chars
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 4 2 colorpicker
"Ctrl+Alt, 0, exec, custom-tomato" # pos 1 3 pomodoro app
"Ctrl+Alt, 2, exec, custom-bottom" # pos 2 3 btm (like htop but cleaner)
"Ctrl+Alt, 9, exec, anki"
@@ -212,12 +208,12 @@ in {
#"wl-paste --type image --watch cliphist store" # clipboard store image data
"custom-batterynotify"
"custom-batterywarning"
"birdtray" # thunderbird tray app
#"birdtray" # thunderbird tray app # curently broken
#wallpapers/b
"swww img ${wallpaper}"
"swww-daemon"
"sleep 1 && custom-wallpaper"
"sleep 5 && custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it
"custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it
#"waybar"
"custom-gitnotify"
"custom-checkMatrix" # checks if matrix-commander-rs is connected which is important for other stuff
@@ -328,6 +324,7 @@ in {
# theme
decoration = {
dim_special = 0.3;
rounding = 18;
blur = {
special = true;
enabled = true;
@@ -338,8 +335,8 @@ in {
};
};
general = {
gaps_in = 3;
gaps_out = 8;
gaps_in = 5;
gaps_out = 15;
border_size = 4;
"col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
"col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
@@ -372,8 +369,8 @@ in {
"2, layout:scrolling, layoutopt:direction:right"
"name:special, layout:scrolling"
# used for smart gaps along some windowrules
"w[tv1], gapsout:1, gapsin:1"
"f[1], gapsout:1, gapsin:1"
#"w[tv1], gapsout:1, gapsin:1"
#"f[1], gapsout:1, gapsin:1"
];
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
@@ -432,13 +429,15 @@ in {
"float on, match:class ^(vlc)$"
"float on, match:class ^(eog)$"
"float on, size 400 175, match:class ^(custom-librewolfprofiles)$"
"float on, size 1050 200, match:class ^(custom-changeAudioOutput)$"
"float on, size 400 175, match:class ^(custom-obsidianvaults)$"
"float on, size 600 600, match:initial_class ^(custom-pomodoro)$"
"float on, size 1500 800, match:initial_class ^(custom-bottom)$"
"border_size 2, match:float 0, match:workspace w[tv1]"
"rounding 1, match:float 0, match:workspace w[tv1]"
"border_size 2, match:float 0, match:workspace f[1]"
"rounding 1, match:float 0, match:workspace f[1]"
# smart gaps/border is ugly with caelestia-shell
#"border_size 2, match:float 0, match:workspace w[tv1]"
#"rounding 1, match:float 0, match:workspace w[tv1]"
#"border_size 2, match:float 0, match:workspace f[1]"
#"rounding 1, match:float 0, match:workspace f[1]"
];
# add a float for tomato when in kitty
#"plugin:imgborders:noimgborders, tag:noborder"
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.kitty = {
enable = true;
#font.name = nerd-fonts._0xproto;
+5 -9
View File
@@ -1,9 +1,5 @@
# adapted from https://github.com/contre95/dotfiles/blob/main/dotfiles/nixos/programs/librewolf.nix
{
pkgs,
config,
...
}: {
_: {
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = 1;
MOZ_USE_XINPUT2 = 1;
@@ -138,7 +134,7 @@
};
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "blocked";
installation_mode = "force_installed";
};
"{08d5243b-4236-4a27-984b-1ded22ce01c3}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/3729287/gruvboxgruvboxgruvboxgruvboxgr-1.0.xpi";
@@ -310,19 +306,19 @@
}
{
name = "Signs of AI writing";
tags = [ "ai" "write"];
tags = ["ai" "write"];
keyword = "AI writing";
url = "https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing";
}
{
name = "nixpkgs-review-gha";
tags = [ "nixpkgs-review" "gha" ];
tags = ["nixpkgs-review" "gha"];
keyword = "nixpkgs-review";
url = "https://github.com/tomasriveral/nixpkgs-review-gha/actions/workflows/review.yml";
}
{
name = "nixpkgs tracker";
tags = [ "nixpkgs" "tracker" ];
tags = ["nixpkgs" "tracker"];
keyword = "nixpkgs tracker";
url = "https://nixpk.gs/pr-tracker.html";
}
+17 -19
View File
@@ -1,6 +1,4 @@
{
config,
pkgs,
pkgs-unstable,
inputs,
...
@@ -21,26 +19,26 @@
enable = true;
force = true;
text = ''
local buffer = import("micro/buffer")
local shell = import("micro/shell")
local buffer = import("micro/buffer")
local shell = import("micro/shell")
function vivifyOpen(buf)
local cursor = buf:GetActiveCursor()
local line = cursor.Loc.Y + 1
function vivifyOpen(buf)
local cursor = buf:GetActiveCursor()
local line = cursor.Loc.Y + 1
shell.ExecCommand("viv", string.format("%s:%d", buf.AbsPath, line))
end
shell.ExecCommand("viv", string.format("%s:%d", buf.AbsPath, line))
end
function onBufferOpen(buf)
if os.getenv("MICRO_VIVIFY") ~= "1" then
return
end
function onBufferOpen(buf)
if os.getenv("MICRO_VIVIFY") ~= "1" then
return
end
-- only run for real files (not help/log/etc)
if buf.Type.Kind == buffer.BTDefault then
vivifyOpen(buf)
end
end
'';
-- only run for real files (not help/log/etc)
if buf.Type.Kind == buffer.BTDefault then
vivifyOpen(buf)
end
end
'';
};
}
+1 -3
View File
@@ -1,7 +1,5 @@
# see also ../nixos/mullvad.nix
{
...
}: {
_: {
programs.mullvad-vpn = {
enable = true;
# see https://github.com/mullvad/mullvadvpn-app/blob/main/desktop/packages/mullvad-vpn/src/main/gui-settings.ts for options
+9 -14
View File
@@ -1,9 +1,4 @@
{
config,
pkgs,
pkgs-unstable,
...
}: {
{pkgs-unstable, ...}: {
programs.neovim = {
enable = true;
vimAlias = false;
@@ -257,7 +252,7 @@
vim.keymap.set("n", "<leader>e<Tab>", function()
local clients = vim.lsp.get_clients({ name = "ltex" })
if #clients > 0 then
-- Stop LTeX
for _, client in ipairs(clients) do
@@ -336,26 +331,26 @@
cmd = { "ltex-ls-plus" },
filetypes = { "markdown", "text", "tex", "plaintex" },
on_attach = on_attach,
settings = {
ltex = {
language = "fr",
enabled = {
"markdown",
"text",
"tex",
"plaintex",
},
completionEnabled = true,
diagnosticSeverity = "information",
additionalRules = {
enablePickyRules = false,
motherTongue = "fr",
},
dictionary = {
["fr"] = {
"icelle",
@@ -483,9 +478,9 @@
vim.keymap.set("n", "t", function()
local line = vim.api.nvim_get_current_line()
local result = vim.fn.system({ "custom-syllabes" }, line)
print(vim.trim(result))
end, { desc = "Count syllables (current line)" })
-- =========================
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.obsidian = {
enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.oh-my-posh = {
enable = true;
enableZshIntegration = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.zsh.oh-my-zsh = {
enable = true;
theme = "jonathan";
@@ -1,6 +1,4 @@
{
...
}:
_:
# see ../../docs/printing.md
{
home.file.".local/share/applications/org.quickshell.desktop" = {
@@ -27,6 +25,6 @@
Icon=printer
Categories=Utility;
StartupNotify=true
'';
'';
};
}
+1 -4
View File
@@ -1,7 +1,4 @@
{
...
}:
{
_: {
home.username = "tomasr";
home.homeDirectory = "/home/tomasr";
+1 -5
View File
@@ -1,9 +1,5 @@
# pulled from https://codeberg.org/zacoons/rivendell-hyprdots
{
config,
pkgs,
...
}: {
_: {
qt.enable = true;
programs.quickshell = {
systemd.enable = true;
+1 -4
View File
@@ -1,7 +1,4 @@
{
pkgs-unstable,
...
}: {
{pkgs-unstable, ...}: {
programs.rclone = {
enable = true;
package = pkgs-unstable.rclone;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.ripgrep = {
enable = true;
arguments = [
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.rofi = {
enable = true;
theme = "gruvbox-dark-hard";
+22 -25
View File
@@ -1,32 +1,29 @@
{
pkgs-unstable,
...
}: {
_: {
home.packages = [
#pkgs-unstable.sbb-tui
];
];
home.file.".config/sbb-tui/config.yaml" = {
enable = true;
# Gruvbox (from https://github.com/Necrom4/sbb-tui/blob/master/docs/themes.md)
# Gruvbox (from https://github.com/Necrom4/sbb-tui/blob/master/docs/themes.md)
text = ''
ui:
nerdfont: true
theme:
text: "#EBDBB2"
textMuted: "#928374"
error: "#FB4934"
warning: "#FB4934"
borderFocused: "#FABD2F"
borderUnfocused: "#504945"
badgeKeyFg: "#282828"
badgeKeyBg: "#FABD2F"
badgeVehicleFg: "#EBDBB2"
badgeVehicleBg: "#458588"
badgeModelFg: "#282828"
badgeModelBg: "#FB4934"
badgeCompanyFg: "#282828"
badgeCompanyBg: "#EBDBB2"
logo: "#EBDBB2"
'';
ui:
nerdfont: true
theme:
text: "#EBDBB2"
textMuted: "#928374"
error: "#FB4934"
warning: "#FB4934"
borderFocused: "#FABD2F"
borderUnfocused: "#504945"
badgeKeyFg: "#282828"
badgeKeyBg: "#FABD2F"
badgeVehicleFg: "#EBDBB2"
badgeVehicleBg: "#458588"
badgeModelFg: "#282828"
badgeModelBg: "#FB4934"
badgeCompanyFg: "#282828"
badgeCompanyBg: "#EBDBB2"
logo: "#EBDBB2"
'';
};
}
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.ssh = {
enable = true;
enableDefaultConfig = false; # will be removed in the futur. Removes evaluation warning
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.swaylock = {
enable = true;
settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
services.swaync = {
enable = true;
};
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.thunderbird = {
enable = true;
profiles.tomasr = {
+18 -21
View File
@@ -1,26 +1,23 @@
{
pkgs-unstable,
...
}: {
{pkgs-unstable, ...}: {
home.file.".config/vivify/config.json" = {
enable = true;
text = ''
{
"browserOptions": {
"name": "qutebrowser",
"arguments": ["-T"]
}
}'';
};
home.packages = [
pkgs-unstable.vivify
];
programs.qutebrowser = {
enable = true;
settings = {
auto_save.session = false;
changelog_after_upgrade = "never";
content.cookies.accept = "never";
{
"browserOptions": {
"name": "qutebrowser",
"arguments": ["-T"]
}
}'';
};
home.packages = [
pkgs-unstable.vivify
];
programs.qutebrowser = {
enable = true;
settings = {
auto_save.session = false;
changelog_after_upgrade = "never";
content.cookies.accept = "never";
};
};
};
}
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.waybar = {
enable = true;
settings = [
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: let
_: let
wallpaper = ../../assets/wallpaper1.jpg;
lock = ../../assets/lock.png;
lock-hover = ../../assets/lock-hover.png;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
_: {
programs.zsh = {
enable = true;
autosuggestion.enable = true;
+1 -1
View File
@@ -1,4 +1,4 @@
{...}: {
_: {
services.displayManager.ly = {
enable = true;
settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
# Configure keymap in X11
services.xserver.xkb = {
layout = "ch";
+1 -5
View File
@@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
(pkgs.anki.withAddons [
(pkgs.ankiAddons.recolor.withConfig {
+2 -6
View File
@@ -1,9 +1,4 @@
{
pkgs,
pkgs-unstable,
...
}:
{
{pkgs, ...}: {
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
@@ -20,6 +15,7 @@
#media-session.enable = true;
};
environment.systemPackages = with pkgs; [
(pkgs.callPackage ../../modules/scripts/changeAudioOutput.nix {})
kdePackages.okular
kdePackages.dolphin
pulseaudio # sound server
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [
blueman # GTK-based Bluetooth Manager
+1 -2
View File
@@ -4,8 +4,7 @@
pkgs,
pkgs-unstable,
...
}:
{
}: {
environment.systemPackages = with pkgs; [
chromium # used only to flash the firmware on my framework laptop 16 (keyboard.frame.work) as only chromium based browser support webHID.
pkgs-unstable.tor-browser
+2 -3
View File
@@ -2,8 +2,7 @@
pkgs,
pkgs-unstable,
...
}:
{
}: {
programs.nix-ld.enable = true; #Run unpatched dynamic binaries on NixOS. For example lets run ./a.out from gcc
environment.systemPackages = with pkgs; [
gcc
@@ -16,7 +15,7 @@
scipy
]))
python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh)
pkg-config
pkg-config
gdb
raylib
glfw # raylib and some dependecies
+2 -6
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
gnome-disk-utility
udiskie # removable disk automounter for udisks
@@ -10,6 +6,6 @@
];
# removes rclone error
programs.fuse.userAllowOther = true;
programs.fuse.userAllowOther = true;
programs.fuse.enable = true;
}
+3 -6
View File
@@ -1,11 +1,8 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
documentation.man.generateCaches = true; # used for the man script
environment.pathsToLink = [ # see https://wiki.nixos.org/wiki/Documentation_Gaps#How_do_manpages_work?_Or:_environment.pathsToLink_and_buildEnv
environment.pathsToLink = [
# see https://wiki.nixos.org/wiki/Documentation_Gaps#How_do_manpages_work?_Or:_environment.pathsToLink_and_buildEnv
"/share/applications"
"/share/xdg-desktop-portal"
];
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
# fonts
fonts.packages = with pkgs; [
nerd-fonts._0xproto
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
texlab
ltex-ls-plus
+1 -1
View File
@@ -1,4 +1,4 @@
{...}: {
_: {
# a minimal ly config as the big config (ly.nix) didnt worked
services.displayManager.ly = {
enable = true;
+1 -4
View File
@@ -1,8 +1,5 @@
# see also ../home-manager/mullvad.nix
{
pkgs-unstable,
...
}: {
{pkgs-unstable, ...}: {
services.mullvad-vpn = {
enable = true;
package = pkgs-unstable.mullvad-vpn;
+9 -7
View File
@@ -21,12 +21,14 @@
nix.settings.experimental-features = ["nix-command" "flakes"];
environment.systemPackages = with pkgs-unstable; [
nixpkgs-review
nixfmt-tree
treefmt
nixd
deadnix
alejandra
vimPluginsUpdater # used for building plugins
nixpkgs-review
nixfmt-tree
treefmt
nixd
deadnix
alejandra
vimPluginsUpdater # used for building plugins
nix-index
statix
];
}
+1 -6
View File
@@ -1,9 +1,5 @@
# notifications server is set by caelestia-shell. See ../home-manager/caelestia.nix
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
libnotify # Library that sends desktop notifications to a notification daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
@@ -15,6 +11,5 @@
(pkgs.callPackage ../../hostsModules/laptop/scripts/checkMatrix.nix {})
(pkgs.callPackage ../../modules/scripts/gitnotify.nix {}) # check if git is set up
(pkgs.callPackage ../../modules/scripts/checkKdrive.nix {}) # check if kdrive is set up with rclone
];
}
+1 -5
View File
@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
libreoffice
birdtray
+1 -2
View File
@@ -3,8 +3,7 @@
pkgs,
pkgs-unstable,
...
}:
{
}: {
environment.systemPackages = with pkgs; [
gnome-calculator
snapshot
+15 -19
View File
@@ -1,15 +1,11 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
#https://wiki.nixos.org/wiki/Printing
services.avahi = {
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# Enable CUPS to print documents.
services.printing = {
enable = true;
@@ -23,21 +19,21 @@
];
};
services.ipp-usb.enable = true;
environment.systemPackages = with pkgs; [
environment.systemPackages = with pkgs; [
kdePackages.print-manager
ghostscript
hplipWithPlugin
];
hardware.printers = {
ensurePrinters = [
{
name = "HP_OfficeJet_Pro_7740";
location = "Home";
deviceUri = "hp:/usb/OfficeJet_Pro_7740_series";
model = "drv:///hp/hpcups.drv/hp-officejet_pro_7740_series.ppd";
}
];
hardware.printers = {
ensurePrinters = [
{
name = "HP_OfficeJet_Pro_7740";
location = "Home";
deviceUri = "hp:/usb/OfficeJet_Pro_7740_series";
model = "drv:///hp/hpcups.drv/hp-officejet_pro_7740_series.ppd";
}
];
ensureDefaultPrinter = "HP_OfficeJet_Pro_7740";
};
ensureDefaultPrinter = "HP_OfficeJet_Pro_7740";
};
}
+2 -6
View File
@@ -1,14 +1,10 @@
# most of the themeing are in the home-manager modules. This just installs some packages needed
{
pkgs,
...
}:
{
{pkgs, ...}: {
qt.enable = true;
# to resolve this https://wiki.nixos.org/wiki/Home_Manager#I_cannot_set_GNOME_or_Gtk_themes_via_Home_Manager
programs.dconf.enable = true;
environment.systemPackages = with pkgs; [
swww #wallpaper daemon
gruvbox-gtk-theme
+12 -5
View File
@@ -3,8 +3,7 @@
pkgs-unstable,
inputs,
...
}:
{
}: {
services.dbus.enable = true;
security.polkit.enable = true;
home-manager = {
@@ -42,13 +41,21 @@
services.upower.enable = true;
# removes need for password for nixos-rebuild
security.sudo.extraRules = [
security.sudo.extraRules = [
{
users = [ "tomasr" ];
users = ["tomasr"];
commands = [
{
command = "/run/current-system/sw/bin/nixos-rebuild";
options = [ "NOPASSWD" ];
options = ["NOPASSWD"];
}
{
command = "${pkgs.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"];
}
{
command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"];
}
];
}
+2 -3
View File
@@ -3,8 +3,7 @@
pkgs-unstable,
pkgs,
...
}:
{
}: {
# Enable the X11 windowing system.
services.xserver.enable = true;
@@ -27,7 +26,7 @@
xwayland.enable = true;
};
xdg.portal = {
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-wlr
+1 -6
View File
@@ -7,9 +7,7 @@
extra-cmake-modules,
shared-mime-info,
wrapQtAppsHook,
qtbase,
karchive,
kcompletion,
kconfig,
@@ -24,9 +22,7 @@
ktextwidgets,
kxmlgui,
syntax-highlighting,
gsl,
poppler,
fftw,
hdf5,
@@ -41,7 +37,6 @@
qtserialport,
discount,
}:
stdenv.mkDerivation rec {
pname = "labplot";
version = "2.10.1";
@@ -121,7 +116,7 @@ stdenv.mkDerivation rec {
lgpl3Plus
mit
];
maintainers = [ "tomasriveral" ];
maintainers = ["tomasriveral"];
mainProgram = "labplot2";
platforms = lib.platforms.unix;
};
+6 -6
View File
@@ -1,10 +1,10 @@
{ lib
, python3Packages
, fetchFromGitLab
, frhyme
, haspirater
{
lib,
python3Packages,
fetchFromGitLab,
frhyme,
haspirater,
}:
python3Packages.buildPythonApplication rec {
pname = "plint";
+5 -6
View File
@@ -3,9 +3,8 @@
buildGoModule,
fetchFromGitHub,
nix-update-script,
versionCheckHook
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "sbb-tui";
version = "1.14.2";
@@ -24,21 +23,21 @@ buildGoModule (finalAttrs: {
"-w"
"-X main.version=${finalAttrs.version}"
];
allowGoReference = true;
doCheck = true;
nativeCheckInputs = [ versionCheckHook ];
nativeCheckInputs = [versionCheckHook];
passthru.updateScript = nix-update-script { };
passthru.updateScript = nix-update-script {};
meta = {
description = "TUI client for Switzerland's public transport timetables, inspired by SBB/CFF/FFS app";
homepage = "https://github.com/Necrom4/sbb-tui";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ tomasrivera ];
maintainers = with lib.maintainers; [tomasrivera];
mainProgram = "sbb-tui";
};
})
+7 -8
View File
@@ -10,7 +10,6 @@
zip,
file,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vivify";
version = "0.14.0";
@@ -49,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
wrapProgram $out/bin/viv \
--prefix PATH : ${
lib.makeBinPath [
nodejs
file
]
}
lib.makeBinPath [
nodejs
file
]
}
'';
nativeBuildInputs = [
@@ -69,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
# (segmentation fault)
dontStrip = true;
passthru.updateScript = nix-update-script { };
passthru.updateScript = nix-update-script {};
meta = {
description = "Live Markdown viewer";
@@ -81,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/jannis-baum/Vivify";
changelog = "https://github.com/jannis-baum/Vivify/releases/tag/v${finalAttrs.src.tag}";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ skohtv ];
maintainers = with lib.maintainers; [skohtv];
platforms = lib.platforms.linux;
mainProgram = "viv";
};
+2 -3
View File
@@ -3,7 +3,6 @@
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "z13ctl";
version = "1.1.6";
@@ -17,7 +16,7 @@ buildGoModule {
vendorHash = "sha256-ftkcianIR36PNAoMOVuk4lUr7goWUcHhjyNseUraJU0=";
subPackages = [ "." ];
subPackages = ["."];
__structuredAttrs = true;
@@ -27,6 +26,6 @@ buildGoModule {
license = licenses.asl20;
platforms = platforms.linux;
mainProgram = "z13ctl";
maintainers = with maintainers; [ badheuristic ];
maintainers = with maintainers; [badheuristic];
};
}
+22
View File
@@ -0,0 +1,22 @@
{
writeShellApplication,
fzf,
pulseaudio,
jq,
...
}:
writeShellApplication {
name = "custom-changeAudioOutput";
runtimeInputs = [
fzf
pulseaudio
jq
];
text = ''
select=$(pactl -f json list sinks | jq -r '.[].name' | fzf)
if [[ -n "$select" ]]; then
pactl set-default-sink "$select"
fi
pkill -f "kitty.*Select audio output"
'';
}
+21 -13
View File
@@ -13,21 +13,29 @@ writeShellApplication {
libnotify
];
text = ''
set +e
output=$(rclone lsd kdrive: 2>&1)
status=$?
# waits for an internet connection. It pings both Google DNS and Cloudfare dns in case one of them is down
until ping -c1 -W1 1.1.1.1 >/dev/null 2>&1 || \
ping -c1 -W1 8.8.8.8 >/dev/null 2>&1
do
sleep 1
done
set -e
set +e
if [ $status -eq 0 ]; then
echo "kdrive OK"
else
echo "kdrive rclone failed with error: $output"
notify-send "rclone kdrive failed" "$output"
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
fi
output=$(rclone lsd kdrive: 2>&1)
status=$?
set -e
if [ $status -eq 0 ]; then
echo "kdrive OK"
else
echo "kdrive rclone failed with error: $output"
notify-send "rclone kdrive failed" "$output"
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
fi
'';
}
-1
View File
@@ -1,7 +1,6 @@
{
writeShellApplication,
zsh,
kitty,
fzf,
...
}:
+1 -7
View File
@@ -1,11 +1,5 @@
# used for the terminal autostart. Needs to get cleared and recall fastfetch so that the bar from oh-my-zsh get resized
{
writeShellApplication,
hyprland,
gawk,
libnotify,
...
}:
{writeShellApplication, ...}:
writeShellApplication {
name = "custom-performance";
runtimeInputs = [
+26 -18
View File
@@ -1,29 +1,33 @@
{ pkgs, python3Packages, ... }:
{
pkgs,
python3Packages,
...
}:
pkgs.writers.writePython3Bin "custom-syllabes" {
libraries = [
python3Packages.pyphen
];
} ''
import sys
import pyphen
import sys
import pyphen
dic = pyphen.Pyphen(lang="fr")
dic = pyphen.Pyphen(lang="fr")
text = sys.stdin.read().strip()
text = sys.stdin.read().strip()
chunks = []
total = 0
chunks = []
total = 0
for w in text.split():
hyphenated = dic.inserted(w)
parts = hyphenated.split("-")
chunks.append("/".join(parts))
total += len(parts)
for w in text.split():
hyphenated = dic.inserted(w)
parts = hyphenated.split("-")
chunks.append("/".join(parts))
total += len(parts)
print(f"{total} ({'/'.join(chunks)})")
print(f"{total} ({'/'.join(chunks)})")
''
/* used IPA but had a deprecated dependency
/*
used IPA but had a deprecated dependency
{ pkgs, python3Packages, ... }:
pkgs.writers.writePython3Bin "custom-syllabes" {
@@ -56,8 +60,10 @@ for word in text.split():
chunks.append(f"{word}/{ipa}")
print(f"{total} ({' | '.join(chunks)})")
''*/
/*{ pkgs, ... }:
''
*/
/*
{ pkgs, ... }:
let
lexique = pkgs.fetchurl {
@@ -170,4 +176,6 @@ def main():
if __name__ == "__main__":
main()
''*/
''
*/
@@ -12,7 +12,7 @@
"{+KC_LCTL}{+KC_LALT}7{-KC_LALT}{-KC_LCTL}",
"{+KC_LCTL}{+KC_LALT}8{-KC_LALT}{-KC_LCTL}",
"{+KC_LCTL}{+KC_LALT}9{-KC_LALT}{-KC_LCTL}",
"",
"{+KC_LCTL}{+KC_LSFT}{+KC_LALT}0{-KC_LALT}{-KC_LSFT}{-KC_LCTL}",
"",
"",
"",
@@ -25,19 +25,19 @@
"MACRO(0)",
"MACRO(9)",
"KC_NO",
"MACRO(5)",
"MACRO(10)",
"MACRO(1)",
"KC_NO",
"KC_NO",
"KC_NO",
"MACRO(5)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"MACRO(8)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"MACRO(6)",
"MACRO(7)",
"KC_NO",