Merge (#2) from tomasriveral/laptop

Lots of cleanup
This commit is contained in:
2026-04-23 12:31:41 +02:00
committed by GitHub
29 changed files with 604 additions and 478 deletions
Generated
+26 -9
View File
@@ -33,11 +33,11 @@
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1775801889,
"narHash": "sha256-q1LGwhQbNOurIAClh5YwKVU2kJ5lTCxRYZf48bAb9IM=",
"lastModified": 1776670101,
"narHash": "sha256-VmPWtG6H+k2tgGnpYwNO5YueHOBdOXXTiBTrjXqcHag=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "0e07176ff149d02391531c802b51c28e73185f30",
"rev": "b94ee8d41bad1ea59395d6184425036fa7121bc5",
"type": "github"
},
"original": {
@@ -67,6 +67,22 @@
"type": "github"
}
},
"microPlugins-vivify": {
"flake": false,
"locked": {
"lastModified": 1770382657,
"narHash": "sha256-yWmIgT90mC9PhzyH/itDbRMmRTiZiwW+Yo0dsHW7ni8=",
"ref": "refs/heads/main",
"rev": "3c5cb25facf3fc4143bfea9323a60eda65ef8485",
"revCount": 8,
"type": "git",
"url": "https://codeberg.org/gibbert/micro-vivify"
},
"original": {
"type": "git",
"url": "https://codeberg.org/gibbert/micro-vivify"
}
},
"nixos-grub-themes": {
"inputs": {
"nixpkgs": "nixpkgs"
@@ -103,11 +119,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1775763530,
"narHash": "sha256-BuTK9z1QEwWPOIakQ1gCN4pa4VwVJpfptYCviy2uOGc=",
"lastModified": 1776329215,
"narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b0188973b4b2a5b6bdba8b65381d6cd09a533da0",
"rev": "b86751bc4085f48661017fa226dee99fab6c651b",
"type": "github"
},
"original": {
@@ -119,11 +135,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1775595990,
"narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=",
"lastModified": 1776560675,
"narHash": "sha256-p68udKWWh7+V4ZPpcMDq0gTHWNZJnr4JPI+kHPPE40o=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2",
"rev": "e07580dae39738e46609eaab8b154de2488133ce",
"type": "github"
},
"original": {
@@ -158,6 +174,7 @@
"inputs": {
"caelestia-shell": "caelestia-shell",
"home-manager": "home-manager",
"microPlugins-vivify": "microPlugins-vivify",
"nixos-grub-themes": "nixos-grub-themes",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
+4
View File
@@ -15,6 +15,10 @@
url = "github:caelestia-dots/shell";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
microPlugins-vivify = {
url = "git+https://codeberg.org/gibbert/micro-vivify";
flake = false;
};
};
# never got nixvim to wokrs. ):
# nixvim = {
+13 -10
View File
@@ -13,13 +13,16 @@
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
../../modules/nixos/battery.nix
../../hostsModules/laptop/nixos/battery.nix
#../../modules/nixos/ly.nix
../../modules/nixos/lyminimal.nix
../../modules/nixos/ly.nix
../../modules/nixos/anki.nix
../../modules/nixos/udevsimple.nix
../../modules/nixos/nixUtils.nix
../../hostsModules/laptop/nixos/udev.nix
../../hostsModules/laptop/nixos/disk.nix
];
programs.nix-ld.enable = true; #Run unpatched dynamic binaries on NixOS. For example lets run ./a.out from gcc
documentation.man.generateCaches = true; # used for the man script
@@ -150,12 +153,7 @@
#adds nixos experimental features:
nix.settings.experimental-features = ["nix-command" "flakes"];
# Garbage collector of generations
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d"; # every week delete generations older than a month
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true; # Nonfree packages: Obsidian
@@ -173,7 +171,7 @@
kdePackages.dolphin
gnome-font-viewer
wget
tree # shows dir in tree
#tree # shows dir in tree # we use eza now
zsh # better bash
brightnessctl # control brightness
pulseaudio # sound server
@@ -260,6 +258,11 @@
#vivify # for NoteWrapper
# this is more up to date
(callPackage ../../modules/packages/vivify.nix {})
#(callPackage ../../modules/packages/sbb-tui.nix {})
pkgs-unstable.nixpkgs-review
pkgs-unstable.nixfmt-tree
pkgs-unstable.treefmt
kakoune
];
# fonts
+8 -85
View File
@@ -11,10 +11,13 @@
../../modules/home-manager/kitty.nix # terminal # use absolute path with --impure flag or go back to /etc/nixos and use relative
../../modules/home-manager/zoxide.nix # better cd
../../modules/home-manager/zsh.nix # better bash
../../hostsModules/laptop/home-manager/zsh.nix # some things are hosts dependant.
../../modules/home-manager/gtk.nix # some config for gtk themed apps
../../modules/home-manager/git.nix
../../modules/home-manager/ssh.nix
../../modules/home-manager/fastfetch.nix
../../modules/home-manager/hyprland.nix
../../hostsModules/laptop/home-manager/hyprland.nix
#../../modules/home-manager/wlogout.nix # logout utility
../../modules/home-manager/rofi.nix # used for keybinds and for clipboard
#notifications are now manager with quickshell../../modules/home-manager/swaync.nix # notification daemon
@@ -37,15 +40,11 @@
../../modules/home-manager/thunderbird.nix # email client
../../modules/home-manager/eza.nix # ls replacement
../../modules/home-manager/vivify.nix # neovim markdown viewer (has also config for qutebrowser
#../../modules/home-manager/micro.nix # micro text editor. Not main editor (used for testing for notewrapper)
../../modules/other/desktopEntries.nix # creates .desktop files
];
#programs.nixvim = {
# enable = true;
# imports = [ ../../modules/nixvim/neovim.nix ];
# package = pkgs.neovim;
#};
# Home Manager needs a bit of information about you and the paths it should
# Required for Home Manager
home.username = "tomasr";
@@ -65,32 +64,21 @@
home.packages = [
#scritps
(pkgs.callPackage ../../modules/scripts/dontkillsteam.nix {}) # kill app (if it is steam put it in some background
(pkgs.callPackage ../../modules/scripts/batterynotify.nix {})
(pkgs.callPackage ../../modules/scripts/batterywarning.nix {})
(pkgs.callPackage ../../hostsModules/laptop/scripts/batterynotify.nix {})
(pkgs.callPackage ../../hostsModules/laptop/scripts/batterywarning.nix {})
(pkgs.callPackage ../../modules/scripts/weather.nix {})
(pkgs.callPackage ../../modules/scripts/cowsay.nix {})
(pkgs.callPackage ../../modules/scripts/wallpaper.nix {})
(pkgs.callPackage ../../modules/scripts/mountkdrive.nix {})
(pkgs.callPackage ../../modules/scripts/weatherwaybar.nix {})
(pkgs.callPackage ../../modules/scripts/colorpicker.nix {})
(pkgs.callPackage ../../modules/scripts/killall.nix {}) # kill all windows except focused window
(pkgs.callPackage ../../modules/scripts/launch.nix {}) # necessary for the apps i launch with hyprland at every start
(pkgs.callPackage ../../modules/scripts/gitnotify.nix {})
(pkgs.callPackage ../../modules/scripts/tomato.nix {})
(pkgs.callPackage ../../modules/scripts/librewolfprofiles.nix {})
(pkgs.callPackage ../../modules/scripts/performance-mode.nix {})
(pkgs.callPackage ../../modules/scripts/btm.nix {})
(pkgs.callPackage ../../modules/scripts/manix.nix {})
(pkgs.callPackage ../../modules/scripts/man.nix {})
(pkgs.callPackage ../../modules/scripts/trimmer.nix {})
(pkgs.callPackage ../../modules/qt/qtbatticon.nix {})
#(pkgs.callPackage ../../modules/scripts/obsidianbackup.nix {}) # periodically syncs obsidian's note to kdrive
#(pkgs.callPackage ../../modules/scripts/obsidianprofiles.nix {}) # fzf vault selector # obsidian was replaced with a custom solution
# no longer used scripts for quickshell. see caelestia-shell
#(pkgs.callPackage ../../modules/scripts/QSsysinfo.nix {})
#(pkgs.callPackage ../../modules/scripts/QSnotifycache.nix {})
#(pkgs.callPackage ../../modules/scripts/QSnotifyhistory.nix {})
(pkgs.callPackage ../../hostsModules/laptop/qt/qtbatticon.nix {})
#pkgs
pkgs.gruvbox-gtk-theme
pkgs.biber
@@ -131,74 +119,9 @@
#(setq org-preview-latex-default-process 'dvisvgm)
]
))
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
#maybe migrate both of them in a separate file
# gtk config
gtk.theme = {
enable = true;
Gruvbox-GTK-Theme-BL-MB = {
enable = true;
name = "Gruvbox-GTK-Theme-BL-MB";
package = pkgs.gruvbox-gtk-theme;
};
};
# to resolve this https://wiki.nixos.org/wiki/Home_Manager#I_cannot_set_GNOME_or_Gtk_themes_via_Home_Manager
# ssh config
programs.ssh.enable = true;
services.ssh-agent.enable = true;
home.file.".ssh/config".text = ''
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
'';
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/tomasr/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
EDITOR = "neovim";
# Git update function
+1
View File
@@ -0,0 +1 @@
For modules that are hosts specific.
@@ -0,0 +1,17 @@
{
config,
pkgs,
pkgs-unstable,
...
}:
{
wayland.windowManager.hyprland.settings = {
exec-once = [
"qtbatticon" # custom battery tray
];
monitor = [
"eDP-1, highres@highrr, 0x0, 1"
];
};
}
+12
View File
@@ -0,0 +1,12 @@
{
config,
pkgs,
...
}: {
programs.zsh = {
shellAliases = {
snrt = "git add -A && sudo nixos-rebuild test --flake ~/nixos/#laptop";
snrs = "git add -A && sudo nixos-rebuild switch --flake ~/nixos/#laptop";
};
};
}
+16
View File
@@ -0,0 +1,16 @@
{
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
# i found swap necessary when running nixpkgs review
swapDevices = [{
device = "/swapfile";
size = 16384; # 16 GB
}
];
boot.kernel.sysctl."vm.swappiness" = 10;
}
@@ -5,7 +5,7 @@
brightnessctl,
...
}: let
NotifySound = ../../assets/battery_notify.mp3;
NotifySound = ../../../assets/battery_notify.mp3;
in
writeShellApplication {
name = "custom-batterynotify";
@@ -5,7 +5,7 @@
brightnessctl,
...
}: let
NotifySound = ../../assets/battery_notify.mp3;
NotifySound = ../../../assets/battery_notify.mp3;
in
writeShellApplication {
name = "custom-batterywarning";
+1
View File
@@ -0,0 +1 @@
This modules must be host independent.
@@ -1,3 +1,5 @@
# OLD Deprecated.
{
config,
pkgs,
+4
View File
@@ -9,4 +9,8 @@
init.defaultBranch = "main";
};
};
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
};
}
+16
View File
@@ -0,0 +1,16 @@
{
config,
pkgs,
...
}: {
# gtk config
gtk.theme = {
enable = true;
Gruvbox-GTK-Theme-BL-MB = {
enable = true;
name = "Gruvbox-GTK-Theme-BL-MB";
package = pkgs.gruvbox-gtk-theme;
};
};
# to resolve this https://wiki.nixos.org/wiki/Home_Manager#I_cannot_set_GNOME_or_Gtk_themes_via_Home_Manager
}
-2
View File
@@ -210,7 +210,6 @@ in {
"wl-paste --type image --watch cliphist store" # clipboard store image data
"custom-batterynotify"
"custom-batterywarning"
"qtbatticon" # custom battery tray
"birdtray" # thunderbird tray app
#wallpapers/b
"swww img ${wallpaper}"
@@ -268,7 +267,6 @@ in {
# █░▀░█ █▄█ █#░▀█ █ ░█░ █▄█ █▀▄
monitor = [
#",preferred, auto, auto"
"eDP-1, highres@highrr, 0x0, 1"
"HDMI-A-1, highres2highrr, auto-left, 1"
];
# _______ ___ __ __ _______ ___ __ _ _______
+46
View File
@@ -0,0 +1,46 @@
{
config,
pkgs,
pkgs-unstable,
inputs,
...
}: {
programs.micro = {
enable = true;
package = pkgs-unstable.micro-full;
settings = {
};
};
home.file.".config/micro/plug/vivify" = {
enable = true;
source = inputs.microPlugins-vivify;
recursive = true;
force = true;
};
home.file.".config/micro/init.lua" = {
enable = true;
force = true;
text = ''
local buffer = import("micro/buffer")
local shell = import("micro/shell")
function vivifyOpen(buf)
local cursor = buf:GetActiveCursor()
local line = cursor.Loc.Y + 1
shell.ExecCommand("viv", string.format("%s:%d", buf.AbsPath, line))
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
'';
};
}
+1 -1
View File
@@ -7,7 +7,7 @@
programs.neovim = {
enable = true;
vimAlias = false;
viAlias = true;
viAlias = false;
package = pkgs-unstable.neovim-unwrapped; # required for unwrapped version
plugins = [
pkgs-unstable.vimPlugins.vivify-vim
+5
View File
@@ -20,4 +20,9 @@
};
};
services.ssh-agent.enable = true;
home.file.".ssh/config".text = ''
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
'';
}
-2
View File
@@ -41,8 +41,6 @@
manix = "custom-manix";
man = "custom-man";
mplayer = "mplayer -volume 5";
snrt = "git add -A && sudo nixos-rebuild test --flake ~/nixos/#laptop";
snrs = "git add -A && sudo nixos-rebuild switch --flake ~/nixos/#laptop";
# these are to create the developpement shell
cenv = "nix-shell -p zsh gcc raylib libx11 libGL";
};
+302
View File
@@ -0,0 +1,302 @@
{...}: {
services.displayManager.ly = {
enable = true;
settings = {
animation = "gameoflife"; # none or doom or matrix or gameoflife or a dur file
animation_frame_delay = 5;
animation_timeout_sec = 0;
asterisk = "0x2022";
auth_fails = 2; # numbers of failed authentification before special animation
battery_id = "BAT1";
bigclock = "en";
bigclock_12hr = false;
bigclock_seconds = false;
# Blank main box background
# Setting to false will make it transparent
blank_box = false;
# Border foreground color id
border_fg = "0x00FFFFFF";
# Title to show at the top of the main box
# If set to null, none will be shown
box_title = null;
# Brightness decrease command
brightness_down_cmd = "$PREFIX_DIRECTORY/bin/brightnessctl -q -n s 10%-";
# Brightness decrease key combination, or null to disable
brightness_down_key = "F5";
# Brightness increase command
brightness_up_cmd = "$PREFIX_DIRECTORY/bin/brightnessctl -q -n s +10%";
# Brightness increase key combination, or null to disable
brightness_up_key = "F6";
# Erase password input on failure
clear_password = true;
# Format string for clock in top right corner (see strftime specification). Example: %c
# If null, the clock won't be shown
clock = true;
# CMatrix animation foreground color id
cmatrix_fg = "0x0000FF00";
# CMatrix animation character string head color id
cmatrix_head_col = "0x01FFFFFF";
# CMatrix animation minimum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x3000 here
cmatrix_min_codepoint = "0x21";
# CMatrix animation maximum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x30FF here
cmatrix_max_codepoint = "0x7B";
# Color mixing animation first color id
colormix_col1 = "0x00FF0000";
# Color mixing animation second color id
colormix_col2 = "0x000000FF";
# Color mixing animation third color id
colormix_col3 = "0x20000000";
# Custom sessions directory
# You can specify multiple directories,
# e.g. $CONFIG_DIRECTORY/ly/custom-sessions:$PREFIX_DIRECTORY/share/custom-sessions
custom_sessions = "$CONFIG_DIRECTORY/ly/custom-sessions";
# Input box active by default on startup
# Available inputs: info_line, session, login, password
default_input = "password";
# DOOM animation fire height (1 thru 9)
doom_fire_height = 6;
# DOOM animation fire spread (0 thru 4)
doom_fire_spread = 2;
# DOOM animation custom top color (low intensity flames)
doom_top_color = "0x009F2707";
# DOOM animation custom middle color (medium intensity flames)
doom_middle_color = "0x00C78F17";
# DOOM animation custom bottom color (high intensity flames)
doom_bottom_color = "0x00FFFFFF";
# Dur file path
dur_file_path = "$CONFIG_DIRECTORY/ly/example.dur";
# Dur file alignment
# The dur file can be aligned with a direction and centered easily with the flags below
# Available inputs: topleft, topcenter, topright, centerleft, center, centerright, bottomleft, bottomcenter, bottomright
dur_offset_alignment = "center";
# Dur offset x direction (value is added to the current position determined by alignment, negatives are supported)
dur_x_offset = 0;
# Dur offset y direction (value is added to the current position determined by alignment, negatives are supported)
dur_y_offset = 0;
# Set margin to the edges of the DM (useful for curved monitors)
edge_margin = 0;
# Error background color id
error_bg = "0x00000000";
# Error foreground color id
# Default is red and bold
error_fg = "0x01FF0000";
# Foreground color id
fg = "0x00FFFFFF";
# Render true colors (if supported)
# If false, output will be in eight-color mode
# All eight-color mode color codes:
# TB_DEFAULT 0x0000
# TB_BLACK 0x0001
# TB_RED 0x0002
# TB_GREEN 0x0003
# TB_YELLOW 0x0004
# TB_BLUE 0x0005
# TB_MAGENTA 0x0006
# TB_CYAN 0x0007
# TB_WHITE 0x0008
# If full color is off, the styling options still work. The colors are
# always 32-bit values with the styling in the most significant byte.
# Note: If using the dur_file animation option and the dur file's color range
# is saved as 256 with this option disabled, the file will not be drawn.
full_color = true;
# Game of Life entropy interval (0 = disabled, >0 = add entropy every N generations)
# 0 -> Pure Conway's Game of Life (will eventually stabilize)
# 10 -> Add entropy every 10 generations (recommended for continuous activity)
# 50+ -> Less frequent entropy for more natural evolution
gameoflife_entropy_interval = 10;
# Game of Life animation foreground color id
gameoflife_fg = "0x0000FF00";
# Game of Life frame delay (lower = faster animation, higher = slower)
# 1-3 -> Very fast animation
# 6 -> Default smooth animation speed
# 10+ -> Slower, more contemplative speed
gameoflife_frame_delay = 3;
# Game of Life initial cell density (0.0 to 1.0)
# 0.1 -> Sparse, minimal activity
# 0.4 -> Balanced activity (recommended)
# 0.7+ -> Dense, chaotic patterns
gameoflife_initial_density = 0.666;
# Command executed when pressing hibernate key (can be null)
hibernate_cmd = null;
# Specifies the key combination used for hibernate
hibernate_key = "F4";
# Remove main box borders
hide_borders = false;
# Remove power management command hints
hide_key_hints = false;
# Remove keyboard lock states from the top right corner
hide_keyboard_locks = false;
# Remove version number from the top left corner
hide_version_string = false;
# Command executed when no input is detected for a certain time
# If null, no command will be executed
inactivity_cmd = null;
# Executes a command after a certain amount of seconds
inactivity_delay = 0;
# Initial text to show on the info line
# If set to null, the info line defaults to the hostname
initial_info_text = null;
# Input boxes length
input_len = 34;
# Active language
# Available languages are found in $CONFIG_DIRECTORY/ly/lang/
lang = "en";
# Command executed when logging in
# If null, no command will be executed
# Important: the code itself must end with `exec "$@"` in order to launch the session!
# You can also set environment variables in there, they'll persist until logout
login_cmd = null;
# Path for login.defs file (used for listing all local users on the system on
# Linux)
#login_defs_path = /etc/login.defs
# Command executed when logging out
# If null, no command will be executed
# Important: the session will already be terminated when this command is executed, so
# no need to add `exec "$@"` at the end
logout_cmd = null;
# General log file path
#ly_log = /var/log/ly.log
# Main box horizontal margin
margin_box_h = 2;
# Main box vertical margin
margin_box_v = 1;
# Set numlock on/off at startup
numlock = false;
# Default path
# If null, ly doesn't set a path
#path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Command executed when pressing restart_key
#restart_cmd = "/sbin/shutdown -r now"
# Specifies the key combination used for restart
restart_key = "F2";
# Save the current desktop and login as defaults, and load them on startup
save = true;
# Service name (set to ly to use the provided pam config file)
service_name = "ly";
# Session log file path
# This will contain stdout and stderr of Wayland sessions
# By default it's saved in the user's home directory
# Important: due to technical limitations, X11, shell sessions as well as
# launching session via KMSCON aren't supported, which means you won't get any
# logs from those sessions.
# If null, no session log will be created
session_log = null;
# Setup command
setup_cmd = "$CONFIG_DIRECTORY/ly/setup.sh";
# Command executed when pressing shutdown_key
shutdown_cmd = "/sbin/shutdown $PLATFORM_SHUTDOWN_ARG now";
# Specifies the key combination used for shutdown
shutdown_key = "F1";
# Command executed when pressing sleep key (can be null)
sleep_cmd = null;
# Specifies the key combination used for sleep
sleep_key = "F3";
# Command executed when starting Ly (before the TTY is taken control of)
# See file at path below for an example of changing the default TTY colors
start_cmd = "$CONFIG_DIRECTORY/ly/startup.sh";
# Center the session name.
text_in_center = false;
# Default vi mode
# normal -> normal mode
# insert -> insert mode
vi_default_mode = "normal";
# Enable vi keybindings
vi_mode = false;
# Wayland desktop environments
# You can specify multiple directories,
# e.g. $PREFIX_DIRECTORY/share/wayland-sessions:$PREFIX_DIRECTORY/local/share/wayland-sessions
waylandsessions = "$PREFIX_DIRECTORY/share/wayland-sessions";
# Xorg server command
x_cmd = "$PREFIX_DIRECTORY/bin/X";
# Xorg virtual terminal number
# Mostly useful for FreeBSD where choosing the current TTY causes issues
# If null, the current TTY will be chosen
x_vt = null;
# Xorg xauthority edition tool
xauth_cmd = "$PREFIX_DIRECTORY/bin/xauth";
# xinitrc
# If null, the xinitrc session will be hidden
xinitrc = "~/.xinitrc";
# Xorg desktop environments
# You can specify multiple directories,
# e.g. $PREFIX_DIRECTORY/share/xsessions:$PREFIX_DIRECTORY/local/share/xsessions
xsessions = "$PREFIX_DIRECTORY/share/xsessions";
};
};
}
+65 -273
View File
@@ -1,302 +1,94 @@
{...}: {
# a minimal ly config as the big config (ly.nix) didnt worked
services.displayManager.ly = {
enable = true;
settings = {
animation = "gameoflife"; # none or doom or matrix or gameoflife or a dur file
animation_frame_delay = 5;
animation_timeout_sec = 0;
asterisk = "0x2022";
auth_fails = 2; # numbers of failed authentification before special animation
battery_id = "BAT1";
bigclock = "en";
bigclock_12hr = false;
bigclock_seconds = false;
# Blank main box background
# Setting to false will make it transparent
blank_box = false;
# Border foreground color id
border_fg = "0x00FFFFFF";
# Title to show at the top of the main box
# If set to null, none will be shown
box_title = null;
# Brightness decrease command
brightness_down_cmd = "$PREFIX_DIRECTORY/bin/brightnessctl -q -n s 10%-";
# Brightness decrease key combination, or null to disable
brightness_down_key = "F5";
# Brightness increase command
brightness_up_cmd = "$PREFIX_DIRECTORY/bin/brightnessctl -q -n s +10%";
# Brightness increase key combination, or null to disable
brightness_up_key = "F6";
# Erase password input on failure
# Core animation
animation = "none"; # none or doom or matrix or gameoflife or a dur file
# Ly supports 24-bit true color with styling, which means each color is a 32-bit value.
# The format is 0xSSRRGGBB, where SS is the styling, RR is red, GG is green, and BB is blue.
# Here are the possible styling options:
# TB_BOLD 0x01000000
# TB_UNDERLINE 0x02000000
# TB_REVERSE 0x04000000
# TB_ITALIC 0x08000000
# TB_BLINK 0x10000000
# TB_HI_BLACK 0x20000000
# TB_BRIGHT 0x40000000
# TB_DIM 0x80000000
# Programmatically, you'd apply them using the bitwise OR operator (|), but because Ly's
# configuration doesn't support using it, you have to manually compute the color value.
# Note that, if you want to use the default color value of the terminal, you can use the
# special value 0x00000000. This means that, if you want to use black, you *must* use
# the styling option TB_HI_BLACK (the RGB values are ignored when using this option).
# Basic TUI settings
clear_password = true;
# Format string for clock in top right corner (see strftime specification). Example: %c
# If null, the clock won't be shown
clock = true;
# CMatrix animation foreground color id
cmatrix_fg = "0x0000FF00";
# CMatrix animation character string head color id
cmatrix_head_col = "0x01FFFFFF";
# CMatrix animation minimum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x3000 here
cmatrix_min_codepoint = "0x21";
# CMatrix animation maximum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x30FF here
cmatrix_max_codepoint = "0x7B";
# Color mixing animation first color id
colormix_col1 = "0x00FF0000";
# Color mixing animation second color id
colormix_col2 = "0x000000FF";
# Color mixing animation third color id
colormix_col3 = "0x20000000";
# Custom sessions directory
# You can specify multiple directories,
# e.g. $CONFIG_DIRECTORY/ly/custom-sessions:$PREFIX_DIRECTORY/share/custom-sessions
custom_sessions = "$CONFIG_DIRECTORY/ly/custom-sessions";
# Input box active by default on startup
# Available inputs: info_line, session, login, password
default_input = "password";
# DOOM animation fire height (1 thru 9)
doom_fire_height = 6;
# DOOM animation fire spread (0 thru 4)
doom_fire_spread = 2;
# DOOM animation custom top color (low intensity flames)
doom_top_color = "0x009F2707";
# DOOM animation custom middle color (medium intensity flames)
doom_middle_color = "0x00C78F17";
# DOOM animation custom bottom color (high intensity flames)
doom_bottom_color = "0x00FFFFFF";
# Dur file path
dur_file_path = "$CONFIG_DIRECTORY/ly/example.dur";
# Dur file alignment
# The dur file can be aligned with a direction and centered easily with the flags below
# Available inputs: topleft, topcenter, topright, centerleft, center, centerright, bottomleft, bottomcenter, bottomright
dur_offset_alignment = "center";
# Dur offset x direction (value is added to the current position determined by alignment, negatives are supported)
dur_x_offset = 0;
# Dur offset y direction (value is added to the current position determined by alignment, negatives are supported)
dur_y_offset = 0;
# Set margin to the edges of the DM (useful for curved monitors)
edge_margin = 0;
# Error background color id
error_bg = "0x00000000";
# Error foreground color id
# Default is red and bold
error_fg = "0x01FF0000";
# Foreground color id
fg = "0x00FFFFFF";
# Render true colors (if supported)
# If false, output will be in eight-color mode
# All eight-color mode color codes:
# TB_DEFAULT 0x0000
# TB_BLACK 0x0001
# TB_RED 0x0002
# TB_GREEN 0x0003
# TB_YELLOW 0x0004
# TB_BLUE 0x0005
# TB_MAGENTA 0x0006
# TB_CYAN 0x0007
# TB_WHITE 0x0008
# If full color is off, the styling options still work. The colors are
# always 32-bit values with the styling in the most significant byte.
# Note: If using the dur_file animation option and the dur file's color range
# is saved as 256 with this option disabled, the file will not be drawn.
fg = "0x01cd6400";
full_color = true;
# Game of Life entropy interval (0 = disabled, >0 = add entropy every N generations)
# 0 -> Pure Conway's Game of Life (will eventually stabilize)
# 10 -> Add entropy every 10 generations (recommended for continuous activity)
# 50+ -> Less frequent entropy for more natural evolution
gameoflife_entropy_interval = 10;
# Game of Life animation foreground color id
gameoflife_fg = "0x0000FF00";
# Game of Life frame delay (lower = faster animation, higher = slower)
# 1-3 -> Very fast animation
# 6 -> Default smooth animation speed
# 10+ -> Slower, more contemplative speed
gameoflife_frame_delay = 3;
# Game of Life initial cell density (0.0 to 1.0)
# 0.1 -> Sparse, minimal activity
# 0.4 -> Balanced activity (recommended)
# 0.7+ -> Dense, chaotic patterns
gameoflife_initial_density = 0.666;
# Command executed when pressing hibernate key (can be null)
hibernate_cmd = null;
# Specifies the key combination used for hibernate
hibernate_key = "F4";
# Remove main box borders
hide_borders = false;
# Remove power management command hints
hide_key_hints = false;
# Remove keyboard lock states from the top right corner
hide_keyboard_locks = false;
# Remove version number from the top left corner
hide_keyboard_locks = true;
hide_version_string = false;
# Command executed when no input is detected for a certain time
# If null, no command will be executed
inactivity_cmd = null;
# Executes a command after a certain amount of seconds
inactivity_delay = 0;
# Initial text to show on the info line
# If set to null, the info line defaults to the hostname
initial_info_text = null;
# Input boxes length
input_len = 34;
# Active language
# Available languages are found in $CONFIG_DIRECTORY/ly/lang/
lang = "en";
# Command executed when logging in
# If null, no command will be executed
# Important: the code itself must end with `exec "$@"` in order to launch the session!
# You can also set environment variables in there, they'll persist until logout
login_cmd = null;
# Path for login.defs file (used for listing all local users on the system on
# Linux)
#login_defs_path = /etc/login.defs
# Command executed when logging out
# If null, no command will be executed
# Important: the session will already be terminated when this command is executed, so
# no need to add `exec "$@"` at the end
logout_cmd = null;
# General log file path
#ly_log = /var/log/ly.log
# Main box horizontal margin
margin_box_h = 2;
# Main box vertical margin
margin_box_v = 1;
# Set numlock on/off at startup
numlock = false;
# Default path
# If null, ly doesn't set a path
#path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Command executed when pressing restart_key
#restart_cmd = "/sbin/shutdown -r now"
# Specifies the key combination used for restart
restart_key = "F2";
# Save the current desktop and login as defaults, and load them on startup
save = true;
# Service name (set to ly to use the provided pam config file)
service_name = "ly";
# Session log file path
# This will contain stdout and stderr of Wayland sessions
# By default it's saved in the user's home directory
# Important: due to technical limitations, X11, shell sessions as well as
# launching session via KMSCON aren't supported, which means you won't get any
# logs from those sessions.
# If null, no session log will be created
session_log = null;
bigclock = "en";
clock = "%H:%M";
# Setup command
setup_cmd = "$CONFIG_DIRECTORY/ly/setup.sh";
colormix_col1 = "0x08E85D04";
colormix_col2 = "0x08FABD2F";
colormix_col3 = "0x08FE8019";
# Command executed when pressing shutdown_key
shutdown_cmd = "/sbin/shutdown $PLATFORM_SHUTDOWN_ARG now";
# Box appearance
#border_fg = "0x00FFFFFF";
blank_box = true;
box_title = "tomasr@nixos";
#margin_box_h = 2;
#margin_box_v = 1;
#text_in_center = false;
# Specifies the key combination used for shutdown
shutdown_key = "F1";
# Animation: Conways Game of Life (optional, comment out for minimal setup)
gameoflife_fg = "0x40FFFFFF";
# Command executed when pressing sleep key (can be null)
gameoflife_frame_delay = 3;
gameoflife_entropy_interval = 10;
gameoflife_initial_density = 0.666;
# Optional commands (leave null or comment if unused)
hibernate_cmd = null;
inactivity_cmd = null;
login_cmd = "start-hyprland";
#logout_cmd = null;
sleep_cmd = null;
# Specifies the key combination used for sleep
# System commands keys
shutdown_cmd = "/sbin/shutdown $PLATFORM_SHUTDOWN_ARG now";
shutdown_key = "F1";
restart_key = "F2";
sleep_key = "F3";
hibernate_key = "F4";
# Command executed when starting Ly (before the TTY is taken control of)
# See file at path below for an example of changing the default TTY colors
start_cmd = "$CONFIG_DIRECTORY/ly/startup.sh";
# top bar
session_log = null;
initial_info_text = null; #
# Custom sessions
#custom_sessions = "$CONFIG_DIRECTORY/ly/custom-sessions";
#waylandsessions = "$PREFIX_DIRECTORY/share/wayland-sessions";
#xsessions = "$PREFIX_DIRECTORY/share/xsessions";
# Center the session name.
text_in_center = false;
# Xorg settings (only needed if using X)
#x_cmd = "$PREFIX_DIRECTORY/bin/X";
#x_vt = null;
#xauth_cmd = "$PREFIX_DIRECTORY/bin/xauth";
#xinitrc = "~/.xinitrc";
# Default vi mode
# normal -> normal mode
# insert -> insert mode
vi_default_mode = "normal";
# Enable vi keybindings
vi_mode = false;
# Wayland desktop environments
# You can specify multiple directories,
# e.g. $PREFIX_DIRECTORY/share/wayland-sessions:$PREFIX_DIRECTORY/local/share/wayland-sessions
waylandsessions = "$PREFIX_DIRECTORY/share/wayland-sessions";
# Xorg server command
x_cmd = "$PREFIX_DIRECTORY/bin/X";
# Xorg virtual terminal number
# Mostly useful for FreeBSD where choosing the current TTY causes issues
# If null, the current TTY will be chosen
x_vt = null;
# Xorg xauthority edition tool
xauth_cmd = "$PREFIX_DIRECTORY/bin/xauth";
# xinitrc
# If null, the xinitrc session will be hidden
xinitrc = "~/.xinitrc";
# Xorg desktop environments
# You can specify multiple directories,
# e.g. $PREFIX_DIRECTORY/share/xsessions:$PREFIX_DIRECTORY/local/share/xsessions
xsessions = "$PREFIX_DIRECTORY/share/xsessions";
# Setup / startup scripts
#setup_cmd = "$CONFIG_DIRECTORY/ly/setup.sh";
#start_cmd = "$CONFIG_DIRECTORY/ly/startup.sh";
};
};
}
-94
View File
@@ -1,94 +0,0 @@
{...}: {
# a minimal ly config as the big config (ly.nix) didnt worked
services.displayManager.ly = {
enable = true;
settings = {
# Core animation
animation = "none"; # none or doom or matrix or gameoflife or a dur file
# Ly supports 24-bit true color with styling, which means each color is a 32-bit value.
# The format is 0xSSRRGGBB, where SS is the styling, RR is red, GG is green, and BB is blue.
# Here are the possible styling options:
# TB_BOLD 0x01000000
# TB_UNDERLINE 0x02000000
# TB_REVERSE 0x04000000
# TB_ITALIC 0x08000000
# TB_BLINK 0x10000000
# TB_HI_BLACK 0x20000000
# TB_BRIGHT 0x40000000
# TB_DIM 0x80000000
# Programmatically, you'd apply them using the bitwise OR operator (|), but because Ly's
# configuration doesn't support using it, you have to manually compute the color value.
# Note that, if you want to use the default color value of the terminal, you can use the
# special value 0x00000000. This means that, if you want to use black, you *must* use
# the styling option TB_HI_BLACK (the RGB values are ignored when using this option).
# Basic TUI settings
clear_password = true;
default_input = "password";
fg = "0x01cd6400";
full_color = true;
hide_borders = false;
hide_key_hints = false;
hide_keyboard_locks = true;
hide_version_string = false;
input_len = 34;
lang = "en";
numlock = false;
save = true;
service_name = "ly";
bigclock = "en";
clock = "%H:%M";
colormix_col1 = "0x08E85D04";
colormix_col2 = "0x08FABD2F";
colormix_col3 = "0x08FE8019";
# Box appearance
#border_fg = "0x00FFFFFF";
blank_box = true;
box_title = "tomasr@nixos";
#margin_box_h = 2;
#margin_box_v = 1;
#text_in_center = false;
# Animation: Conways Game of Life (optional, comment out for minimal setup)
gameoflife_fg = "0x40FFFFFF";
gameoflife_frame_delay = 3;
gameoflife_entropy_interval = 10;
gameoflife_initial_density = 0.666;
# Optional commands (leave null or comment if unused)
hibernate_cmd = null;
inactivity_cmd = null;
login_cmd = "start-hyprland";
#logout_cmd = null;
sleep_cmd = null;
# System commands keys
shutdown_cmd = "/sbin/shutdown $PLATFORM_SHUTDOWN_ARG now";
shutdown_key = "F1";
restart_key = "F2";
sleep_key = "F3";
hibernate_key = "F4";
# top bar
session_log = null;
initial_info_text = null; #
# Custom sessions
#custom_sessions = "$CONFIG_DIRECTORY/ly/custom-sessions";
#waylandsessions = "$PREFIX_DIRECTORY/share/wayland-sessions";
#xsessions = "$PREFIX_DIRECTORY/share/xsessions";
# Xorg settings (only needed if using X)
#x_cmd = "$PREFIX_DIRECTORY/bin/X";
#x_vt = null;
#xauth_cmd = "$PREFIX_DIRECTORY/bin/xauth";
#xinitrc = "~/.xinitrc";
# Setup / startup scripts
#setup_cmd = "$CONFIG_DIRECTORY/ly/setup.sh";
#start_cmd = "$CONFIG_DIRECTORY/ly/startup.sh";
};
};
}
+18
View File
@@ -0,0 +1,18 @@
{
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
# Garbage collector of generations
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d"; # every week delete generations older than a month
};
# nixpkgs-review crashed my laptop multiple times.
nix.settings.max-jobs = 2;
nix.settings.cores = 2;
}
+42
View File
@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
versionCheckHook
}:
buildGoModule (finalAttrs: {
pname = "sbb-tui";
version = "1.13.4";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Necrom4";
repo = "sbb-tui";
tag = "v${finalAttrs.version}";
hash = "sha256-JLjAhs5UbqgNYqpA3cDucrAS6ell+0JiDJNf7G33Nhs=";
};
vendorHash = "sha256-K4DOu3rfSlKAa5JNKCzWWpnWZlXXxtN5Po7p1Spqe1w=";
ldflags = [
"-s"
"-w"
"-X main.version=${finalAttrs.version}"
];
doCheck = true;
nativeCheckInputs = [ versionCheckHook ];
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 ];
mainProgram = "sbb-tui";
};
})
+3
View File
@@ -0,0 +1,3 @@
Used for custom qt modules.
Previously, `qtbatticon`. (Moved to `../../hostsModules/laptop/qt/qtbatticon`)