Compare commits
144 Commits
45f23db173
...
8a2c0bbe0f
| Author | SHA1 | Date | |
|---|---|---|---|
| 8a2c0bbe0f | |||
| ba61474ff1 | |||
| 7519d6b400 | |||
| d8c89696e3 | |||
| e15a3bb943 | |||
| 06a87da933 | |||
| fd2736dc07 | |||
| 0730ea8df1 | |||
| c45c9403df | |||
| 1274d0e1f0 | |||
| 8df20fcd79 | |||
| c0188f1760 | |||
| 6401f44a93 | |||
| 0a35846424 | |||
| 6a8063631b | |||
| 676d6d74c0 | |||
| 0b03fe684f | |||
| bb631afc79 | |||
| 67a7c99144 | |||
| c3d0fb6550 | |||
| 8b86bf34d1 | |||
| a641aee119 | |||
| 1574a5ae47 | |||
| 8da47fabc4 | |||
| d0cbd7d4d2 | |||
| 10f49d6846 | |||
| 37e4eac7be | |||
| 3ac4b04d95 | |||
| 5b598590cf | |||
| a1a163f17e | |||
| 50145b88c3 | |||
| eb0872b7fd | |||
| 865e3c0e4b | |||
| 0c83b8462d | |||
| 9b94e7535c | |||
| a35fd355a7 | |||
| df97635951 | |||
| ef89893db5 | |||
| 0f4ce11546 | |||
| 07c2856fd4 | |||
| 4694da2dd6 | |||
| 88650f6393 | |||
| 73b3b5b43f | |||
| b2e38639aa | |||
| 3acb7b78d4 | |||
| 99f1e6956d | |||
| 0da371bb8b | |||
| d9e7e7bfeb | |||
| 3ca7a32d44 | |||
| 6afa7224e5 | |||
| f1de0823a1 | |||
| f4951eb155 | |||
| 7af2119207 | |||
| 629b86ab29 | |||
| b35fd97f96 | |||
| 387cd991b3 | |||
| bdc47630be | |||
| df8534e3aa | |||
| c98314ec83 | |||
| 6eefb5c06b | |||
| a4eef272cb | |||
| afeb2c0c82 | |||
| 47cddfa9af | |||
| 36bc759878 | |||
| 3bd2a99a9e | |||
| 25dbfc7684 | |||
| dde45de99f | |||
| 16cdfc423e | |||
| 615ed922e6 | |||
| a0758e4317 | |||
| 0b24b9b524 | |||
| a71d7682f3 | |||
| 7075d85ea1 | |||
| d81e57778e | |||
| e749e1068f | |||
| 7e04c761d2 | |||
| d19a1392d3 | |||
| 5f568e093e | |||
| 4cfa042fb3 | |||
| e312f5a645 | |||
| 2da3c4bd30 | |||
| 4d14f2ae16 | |||
| 61474dc847 | |||
| 999231e4f9 | |||
| 6596f0784d | |||
| d6736ab99d | |||
| 47895c3562 | |||
| 5830793d0c | |||
| 89b46e9a84 | |||
| 8b9973e7d3 | |||
| 1e40ebcc9a | |||
| dc946a1c39 | |||
| ca5588d248 | |||
| 5850bb8518 | |||
| 1a10c80bd7 | |||
| 0920d68637 | |||
| 31b7b50fdc | |||
| 9e01d35ce4 | |||
| f33211449f | |||
| e067487594 | |||
| 6819fec633 | |||
| 100d1359f3 | |||
| 6e0ef11f68 | |||
| ef73ff7b19 | |||
| 177b7cc3b4 | |||
| 2186bda854 | |||
| 1219d03218 | |||
| cda39b3c91 | |||
| a7c150d089 | |||
| f2a1a49d09 | |||
| f0ed605cf4 | |||
| c2315c04ce | |||
| 09e4b1e2b1 | |||
| 610a3a1e98 | |||
| 849e35b939 | |||
| 71cf8dc28a | |||
| 066ed6adae | |||
| df66cb06e7 | |||
| ddcab845d2 | |||
| 1f23989e3c | |||
| 0f1a6aa916 | |||
| 9146ac0124 | |||
| cf816ede62 | |||
| 033493fb5d | |||
| 1cf12b84d0 | |||
| c292ea0090 | |||
| d6bee91d8e | |||
| 204f9fca9a | |||
| d045e41a6e | |||
| e8fb3f97a6 | |||
| 1a1b8c8d50 | |||
| 2e4c07dbb5 | |||
| 9449445970 | |||
| e41398a744 | |||
| 25b11a576c | |||
| 7ae558672f | |||
| a7e5893a43 | |||
| 30a97d3bc9 | |||
| 6b076115a1 | |||
| 6d393aec40 | |||
| b1339e9aa6 | |||
| e75e2b3dac | |||
| cbde195c4f | |||
| 963c5db09a |
@@ -1,88 +0,0 @@
|
||||
typeset -U path cdpath fpath manpath
|
||||
for profile in ${(z)NIX_PROFILES}; do
|
||||
fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
|
||||
done
|
||||
|
||||
HELPDIR="${ZSH_HELPDIR:-${XDG_DATA_HOME:-$HOME/.local/share}/zsh/$ZSH_VERSION/help}"
|
||||
|
||||
# Source zsh-autosuggestions (use environment variable)
|
||||
if [ -n "$ZSH_AUTOSUGGESTIONS_PATH" ]; then
|
||||
source "$ZSH_AUTOSUGGESTIONS_PATH"
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
||||
fi
|
||||
|
||||
# oh-my-zsh extra settings for plugins
|
||||
plugins=(git sudo extract colored-man-pages command-not-found history docker kubectl)
|
||||
|
||||
source "$ZSH/oh-my-zsh.sh"
|
||||
|
||||
# Source zoxide (use environment variable)
|
||||
if [ -n "$ZOXIDE_INIT" ]; then
|
||||
eval "$($ZOXIDE_INIT zsh)"
|
||||
fi
|
||||
|
||||
# History options should be set in .zshrc and after oh-my-zsh sourcing.
|
||||
HISTSIZE="10000"
|
||||
SAVEHIST="10000"
|
||||
HISTFILE="${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zsh_history"
|
||||
mkdir -p "$(dirname "$HISTFILE")"
|
||||
|
||||
# Source fzf (use environment variable)
|
||||
if [[ $options[zle] = on ]] && [ -n "$FZF_ZSH" ]; then
|
||||
source <($FZF_ZSH --zsh)
|
||||
fi
|
||||
|
||||
# Source zsh-syntax-highlighting (use environment variable)
|
||||
if [ -n "$ZSH_SYNTAX_HIGHLIGHTING_PATH" ]; then
|
||||
source "$ZSH_SYNTAX_HIGHLIGHTING_PATH"
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main)
|
||||
fi
|
||||
|
||||
# Source catppuccin zsh-syntax-highlighting (use environment variable)
|
||||
if [ -n "$CATPPUCCIN_ZSH_SYNTAX_PATH" ]; then
|
||||
source "$CATPPUCCIN_ZSH_SYNTAX_PATH"
|
||||
fi
|
||||
|
||||
# Set shell options
|
||||
set_opts=(
|
||||
HIST_FCNTL_LOCK HIST_IGNORE_DUPS HIST_IGNORE_SPACE SHARE_HISTORY autocd
|
||||
NO_APPEND_HISTORY NO_EXTENDED_HISTORY NO_HIST_EXPIRE_DUPS_FIRST
|
||||
NO_HIST_FIND_NO_DUPS NO_HIST_IGNORE_ALL_DUPS NO_HIST_SAVE_NO_DUPS
|
||||
)
|
||||
for opt in "${set_opts[@]}"; do
|
||||
setopt "$opt"
|
||||
done
|
||||
unset opt set_opts
|
||||
|
||||
# Source starship (use environment variable)
|
||||
if [[ $TERM != "dumb" ]] && [ -n "$STARSHIP_INIT" ]; then
|
||||
eval "$($STARSHIP_INIT zsh)"
|
||||
fi
|
||||
|
||||
# Kitty shell integration
|
||||
if test -n "$KITTY_INSTALLATION_DIR"; then
|
||||
export KITTY_SHELL_INTEGRATION="no-rc"
|
||||
autoload -Uz -- "$KITTY_INSTALLATION_DIR/shell-integration/zsh/kitty-integration"
|
||||
kitty-integration
|
||||
unfunction kitty-integration
|
||||
fi
|
||||
|
||||
# Source direnv (use environment variable)
|
||||
if [ -n "$DIRENV_HOOK" ]; then
|
||||
eval "$($DIRENV_HOOK zsh)"
|
||||
fi
|
||||
|
||||
# Aliases
|
||||
# alias -- la='eza -a'
|
||||
# alias -- ll='eza -l'
|
||||
# alias -- lla='eza -la'
|
||||
# alias -- ls='eza'
|
||||
# alias -- lt='eza --tree'
|
||||
|
||||
# Eat shell integration
|
||||
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh"
|
||||
|
||||
# Source user aliases
|
||||
if [ -f "$XDG_CONFIG_HOME/zsh/aliases.zsh" ]; then
|
||||
source "$XDG_CONFIG_HOME/zsh/aliases.zsh"
|
||||
fi
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# --- Environment Variables ---
|
||||
export EDITOR="nvim"
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
export PATH="$HOME/.cargo/bin:$PATH" # Example: Add Rust's cargo binaries
|
||||
|
||||
# --- Aliases ---
|
||||
# (You can move these from your Nix config to here if you prefer)
|
||||
alias gs="git status"
|
||||
alias ga="git add"
|
||||
alias gc="git commit -m"
|
||||
alias gp="git push"
|
||||
alias gco="git checkout"
|
||||
alias ll="exa --icons -la --group-directories-first"
|
||||
alias ls="exa --icons -a --group-directories-first"
|
||||
|
||||
# --- Functions ---
|
||||
# Example: Create a new directory and cd into it
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# --- Shell Options ---
|
||||
setopt HIST_IGNORE_ALL_DUPS # Ignore duplicate commands in history
|
||||
setopt HIST_IGNORE_SPACE # Ignore commands starting with a space
|
||||
setopt APPEND_HISTORY # Append to history file, don't overwrite
|
||||
setopt INC_APPEND_HISTORY # Append to history file as soon as the command is entered
|
||||
|
||||
# --- Key Bindings ---
|
||||
# Example: Edit command line in $EDITOR
|
||||
autoload -U edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '^xe' edit-command-line # Ctrl+x, e
|
||||
|
||||
# --- Prompt Customization ---
|
||||
# (Starship usually handles this, but you can add pre-starship prompts here)
|
||||
|
||||
# --- Load other files ---
|
||||
# Source other files (e.g., secrets, local overrides)
|
||||
[[ -f "$HOME/.zshrc.local" ]] && source "$HOME/.zshrc.local"
|
||||
|
||||
# --- Fuzzy Finder (fzf) ---
|
||||
# If not already loaded in .zshrc
|
||||
[[ $- == *i* ]] && source "$(brew --prefix)/opt/fzf/shell/key-bindings.zsh" 2>/dev/null
|
||||
[[ $- == *i* ]] && source "$(brew --prefix)/opt/fzf/shell/completion.zsh" 2>/dev/null
|
||||
|
||||
# --- Conditional Loading ---
|
||||
# Only load if not already loaded
|
||||
if [[ -z "$TMUX" ]]; then
|
||||
# Example: Start tmux if not already in a session
|
||||
if command -v tmux &>/dev/null && [ -n "$PS1" ]; then
|
||||
exec tmux
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true; # ALSA compatibility
|
||||
pulse.enable = true; # PulseAudio compatibility
|
||||
wireplumber.enable = true; # Session manager for PipeWire
|
||||
};
|
||||
|
||||
# Realtime privileges for pro audio (optional)
|
||||
security.rtkit.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Enable Bluetooth hardware and daemon
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
packages = with pkgs; [ bluez ];
|
||||
};
|
||||
|
||||
# Enable Bluetooth audio support in PipeWire
|
||||
services.pipewire = {
|
||||
config.pulse = {
|
||||
bluez5.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Optional: Additional Bluetooth settings
|
||||
hardware.bluetooth.extraConfig = ''
|
||||
AutoEnable=true
|
||||
DiscoverableTimeout=0
|
||||
PairableTimeout=0
|
||||
'';
|
||||
|
||||
# Install a graphical Bluetooth manager (optional)
|
||||
environment.systemPackages = with pkgs; [
|
||||
blueman
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
services.dbus = lib.mkForce {
|
||||
enable = true; # Force this to be true
|
||||
};
|
||||
|
||||
# Configure dbus-broker via its configuration file
|
||||
environment.etc."dbus-broker/launch.conf".text = ''
|
||||
[General]
|
||||
LogLevel=warning
|
||||
MaxConnectionsPerUser=2048
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
user,
|
||||
inputs,
|
||||
flakeRoot,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
wm = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "hyprland";
|
||||
description = "Type of window manager to use";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
# Minimal settings that must be defined here
|
||||
networking.hostName = "traveldroid";
|
||||
wm.type = "hyprland";
|
||||
|
||||
# User configuration
|
||||
users.users.${user.username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
];
|
||||
hashedPassword = user.hashedPassword;
|
||||
home = user.homeDirectory;
|
||||
};
|
||||
# Optional: Enable auto-login for testing
|
||||
services.getty.autologinUser = user.username;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
networking = {
|
||||
useDHCP = lib.mkDefault true;
|
||||
networkmanager.enable = true;
|
||||
networkmanager.wifi.backend = "iwd";
|
||||
wireless.iwd.enable = true;
|
||||
wireless.userControlled.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
# KDE Connect: discovery + encrypted connections
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Install NetworkManager and wofi
|
||||
environment.systemPackages = with pkgs; [
|
||||
networkmanager
|
||||
wofi
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, user, ... }:
|
||||
{
|
||||
environment.sessionVariables = {
|
||||
XDG_SESSION_TYPE = "wayland"; # Session type
|
||||
XDG_CURRENT_DESKTOP = "Hyprland"; # Desktop environment
|
||||
XCURSOR_SIZE = "24"; # Cursor size
|
||||
# Add other session-wide variables here (e.g., QT_QPA_PLATFORM, SDL_VIDEODRIVER)
|
||||
};
|
||||
}
|
||||
@@ -1,33 +1,23 @@
|
||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
user,
|
||||
inputs,
|
||||
flakeRoot,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./boot.nix
|
||||
./hardware-configuration.nix
|
||||
./machine.nix
|
||||
./dbus.nix
|
||||
./audio.nix
|
||||
./xdg.nix
|
||||
./session.nix
|
||||
./networking.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
];
|
||||
|
||||
options = {
|
||||
wm = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "hyprland";
|
||||
description = "Type of window manager to use";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
# Minimal settings that must be defined here
|
||||
networking.hostName = "traveldroid";
|
||||
wm.type = "hyprland";
|
||||
|
||||
# User configuration
|
||||
users.users.${user.username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" ];
|
||||
hashedPassword = user.hashedPassword;
|
||||
home = user.homeDirectory;
|
||||
};
|
||||
|
||||
# Optional: Enable auto-login for testing
|
||||
services.getty.autologinUser = user.username;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config.system.default = [ "hyprland" "gtk" ];
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ mkShell }:
|
||||
{ mkShell, ... }:
|
||||
mkShell {
|
||||
buildInputs = with import <nixpkgs> {}; [
|
||||
nil
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./user.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
user = import ./henrov.nix;
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.username} = {
|
||||
home.stateVersion = "25.11";
|
||||
home.username = user.username;
|
||||
home.homeDirectory = user.homeDirectory;
|
||||
home.packages = with pkgs; [
|
||||
direnv
|
||||
git-extras
|
||||
];
|
||||
};
|
||||
|
||||
# Ensure the user is in the necessary groups
|
||||
users.users.${config.users.users.${user.username}.username} = {
|
||||
extraGroups = [ "networkmanager" ];
|
||||
}
|
||||
@@ -12,11 +12,11 @@ $mainMod = SUPER
|
||||
# bind = $mainMod CTRL, p, exec, grimblast -n -f copysave screen
|
||||
|
||||
# Terminal / launcher / kill / reload
|
||||
# bind = $mainMod, E, exec, thunar
|
||||
bind = $mainMod, E, exec, thunar
|
||||
bind = $mainMod, RETURN, exec, kitty
|
||||
bind = $mainMod, D, exec, wofi --show drun
|
||||
bind = ALT, D, exec, wofi --show drun
|
||||
# bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod SHIFT, R, exec, hyprctl reload
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
source = ./variables.conf
|
||||
source = ./theming.conf
|
||||
# source = ./behaviour.conf
|
||||
# source = ./layout.conf
|
||||
# source = ./animations.conf
|
||||
source = ./animations.conf
|
||||
# source = ./layer-rules.conf
|
||||
# source = ./window-rules.conf
|
||||
# source = ./monitor-rules.conf
|
||||
# source = ./workspace-rules.conf
|
||||
source = ./bindings.conf
|
||||
|
||||
# source = ./exec-once.conf
|
||||
source = ./exec-once.conf
|
||||
|
||||
general {
|
||||
gaps_in = 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Catppuccin Mocha for Hyprland
|
||||
# Colors (match your variables.conf or override here)
|
||||
$base = #1e1e2e
|
||||
$inactive = rgba(595959aa)
|
||||
$mantle = #181825
|
||||
$crust = #11111b
|
||||
$surface0 = #313244
|
||||
$surface1 = #45475a
|
||||
$surface2 = #585b70
|
||||
$overlay0 = #6c7086
|
||||
$overlay1 = #7f849c
|
||||
$overlay2 = #9399b2
|
||||
$subtext0 = #a6adc8
|
||||
$subtext1 = #bac2de
|
||||
$text = #cdd6f4
|
||||
$lavender = #b4befe
|
||||
$blue = #89b4fa
|
||||
$sapphire = #74c7ec
|
||||
$sky = #89dceb
|
||||
$teal = #94e2d5
|
||||
$green = #a6e3a1
|
||||
$yellow = #f9e2af
|
||||
$peach = #fab387
|
||||
$maroon = #eba0ac
|
||||
$red = #f38ba8
|
||||
$mauve = #cba6f7
|
||||
$pink = #f5c2e7
|
||||
$flamingo = #f2cdcd
|
||||
$rosewater = #f5e0dc
|
||||
|
||||
# General theming
|
||||
general {
|
||||
col.active_border = $blue $green 45deg
|
||||
col.inactive_border = $surface1 80%
|
||||
col.urgent_border = $red
|
||||
col.float_border_active = $blue
|
||||
col.float_border_inactive = $surface1
|
||||
col.focused_title = $text
|
||||
col.unfocused_title = $subtext0
|
||||
col.backdrop = $base
|
||||
col.backdrop_title = $overlay0
|
||||
col.backdrop_border = $surface1
|
||||
col.backdrop_float_border = $surface1
|
||||
col.backdrop_float_border_active = $blue
|
||||
col.backdrop_float_title = $overlay0
|
||||
col.backdrop_float_title_active = $text
|
||||
col.backdrop_float_urgent = $red
|
||||
col.backdrop_float_urgent_title = $text
|
||||
col.backdrop_float_urgent_border = $red
|
||||
col.backdrop_group_active = $surface1
|
||||
col.backdrop_group_active_border = $blue
|
||||
col.backdrop_group_active_title = $text
|
||||
col.backdrop_group_inactive = $surface1
|
||||
col.backdrop_group_inactive_border = $surface1
|
||||
col.backdrop_group_inactive_title = $overlay0
|
||||
col.backdrop_group_urgent = $red
|
||||
col.backdrop_group_urgent_border = $red
|
||||
col.backdrop_group_urgent_title = $text
|
||||
}
|
||||
|
||||
# Window decorations
|
||||
decoration {
|
||||
rounding = 6
|
||||
blur = yes
|
||||
blur_size = 3
|
||||
blur_passes = 2
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(0, 0, 0, 0.8)
|
||||
col.shadow_active = rgba(0, 0, 0, 0.5)
|
||||
col.shadow_inactive = rgba(0, 0, 0, 0.3)
|
||||
}
|
||||
|
||||
# Input fields (e.g., Hyprctl menus)
|
||||
input_field {
|
||||
col.background = $surface0
|
||||
col.border = $blue
|
||||
col.text = $text
|
||||
col.placeholder = $overlay1
|
||||
}
|
||||
|
||||
# Hyprbar (if used)
|
||||
hyprbar {
|
||||
col.background = $surface0 90%
|
||||
col.text = $text
|
||||
col.icon = $text
|
||||
col.icon_unoccupied = $overlay1
|
||||
col.urgent = $red
|
||||
col.urgent_text = $text
|
||||
col.active_workspace = $blue
|
||||
col.inactive_workspace = $overlay0
|
||||
col.occupied_workspace = $subtext0
|
||||
}
|
||||
|
||||
# Hyprlock (if used)
|
||||
hyprlock {
|
||||
col.background = $base
|
||||
col.input_field = $surface0
|
||||
col.text = $text
|
||||
col.time_text = $blue
|
||||
col.date_text = $green
|
||||
col.wrong_password = $red
|
||||
col.wrong_password_bg = $surface0
|
||||
}
|
||||
|
||||
# Hypridle (if used)
|
||||
hypridle {
|
||||
col.lock = $base
|
||||
col.lock_input_field = $surface0
|
||||
col.lock_text = $text
|
||||
col.lock_time_text = $blue
|
||||
col.lock_date_text = $green
|
||||
}
|
||||
@@ -3,7 +3,6 @@ todoist
|
||||
|
||||
# browsers
|
||||
brave
|
||||
vivaldi
|
||||
chromium
|
||||
|
||||
# utils
|
||||
@@ -19,6 +18,8 @@ solaar
|
||||
baobab
|
||||
duf
|
||||
zed-editor
|
||||
eza
|
||||
z-lua
|
||||
|
||||
# office
|
||||
obsidian
|
||||
@@ -0,0 +1,72 @@
|
||||
##############################################
|
||||
# Aliases (source-of-truth)
|
||||
#
|
||||
# This file is written in bash/zsh alias syntax in [bash_zsh], [bash_specific], [zsh_specific].
|
||||
# Fish has different syntax; the Nix module translates [bash_zsh] into fish format and then
|
||||
# appends [fish_specific] as-is.
|
||||
##############################################
|
||||
|
||||
##############################################
|
||||
# Generic aliases (bash/zsh)
|
||||
# These are intended to be available in bash and zsh.
|
||||
##############################################
|
||||
[bash_zsh]
|
||||
alias ll='ls -lah'
|
||||
alias gs='git status'
|
||||
alias ga='git add'
|
||||
alias gc='git commit'
|
||||
alias gp='git push'
|
||||
alias gcp='git add . && git commit && git push'
|
||||
|
||||
alias cd='z'
|
||||
|
||||
alias nps='xdg-open https://search.nixos.org'
|
||||
alias hvnx='cd ~/Repos/nixos/henrovnix_ok'
|
||||
alias emt='hvnx && emacs README.org --batch -f org-babel-tangle && emacs -Q --batch README.org -f org-html-export-to-html'
|
||||
alias nxs='hvnx && sudo nixos-rebuild switch --flake .#traveldroid'
|
||||
alias nxt='hvnx && sudo nixos-rebuild test --flake .#traveldroid'
|
||||
alias nxv='hvnx && sudo nixos-rebuild build-vm --flake .#traveldroid && "$(ls -1 ./result/bin/run-*-vm | head -n 1)"'
|
||||
|
||||
alias rb='systemctl reboot'
|
||||
alias po='systemctl poweroff'
|
||||
|
||||
alias fpl='flatpak list'
|
||||
alias fps='flatpak search'
|
||||
alias fpi='flatpak install'
|
||||
alias fpr='flatpak run'
|
||||
|
||||
alias nxc='ssh henrov@nextcloud.data-pro.nu'
|
||||
|
||||
|
||||
alias vs='code'
|
||||
alias blog='cd ~/Repos/blog && ll'
|
||||
alias keys='hyprctl binds'
|
||||
|
||||
|
||||
##############################################
|
||||
# Shell-specific aliases / examples
|
||||
#
|
||||
# Everything below is COMMENTED OUT on purpose.
|
||||
# These examples show syntax or commands that are shell-specific
|
||||
# (or behave differently across shells).
|
||||
##############################################
|
||||
|
||||
[bash_specific]
|
||||
# Enable recursive globbing (**)
|
||||
# alias sg='shopt -s globstar'
|
||||
|
||||
[zsh_specific]
|
||||
# Recursive globbing works by default in zsh; this prints matches one-per-line
|
||||
# alias recglob='print -l **/*.nix'
|
||||
|
||||
[fish_specific]
|
||||
# Fish has its own language; this is fish-only syntax (not bash/zsh)
|
||||
# alias setvar='set -gx EDITOR emacs'
|
||||
|
||||
[dash_specific]
|
||||
# dash is a minimal POSIX shell; shown here only as an example
|
||||
# alias com='command -v ls'
|
||||
|
||||
[nushell_specific]
|
||||
# Nushell pipelines structured data; this is nu-only syntax
|
||||
# alias fbf='ls | where size > 1mb | get name'
|
||||
@@ -0,0 +1,15 @@
|
||||
##############################################
|
||||
# Enabled shells (source-of-truth)
|
||||
#
|
||||
# Edit this file in the repo:
|
||||
# ./assets/conf/dev/terminal/enabled_shells.conf
|
||||
#
|
||||
# After changing, rebuild Home Manager / your system as you normally do.
|
||||
##############################################
|
||||
|
||||
[enabled_shells]
|
||||
bash = yes
|
||||
zsh = yes
|
||||
fish = no
|
||||
dash = no
|
||||
nushell = no
|
||||
@@ -0,0 +1,127 @@
|
||||
:root {
|
||||
--base: #1e1e2e;
|
||||
--mantle: #181825;
|
||||
--crust: #11111b;
|
||||
--text: #cdd6f4;
|
||||
--subtext1: #bac2de;
|
||||
--subtext0: #a6adc8;
|
||||
--overlay2: #9399b2;
|
||||
--overlay1: #7f849c;
|
||||
--overlay0: #6c7086;
|
||||
--surface2: #585b70;
|
||||
--surface1: #45475a;
|
||||
--surface0: #313244;
|
||||
--lavender: #b4befe;
|
||||
--blue: #89b4fa;
|
||||
--sapphire: #74c7ec;
|
||||
--teal: #94e2d5;
|
||||
--green: #a6e3a1;
|
||||
--yellow: #f9e2af;
|
||||
--peach: #fab387;
|
||||
--maroon: #eba0ac;
|
||||
--red: #f38ba8;
|
||||
--mauve: #cba6f7;
|
||||
--pink: #f5c2e7;
|
||||
--flamingo: #f2cdcd;
|
||||
--rosewater: #f5e0dc;
|
||||
}
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
color: var(--text);
|
||||
font-family:
|
||||
FiraCode Nerd Font,
|
||||
monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
window {
|
||||
border: 1px solid var(--surface0);
|
||||
background-color: #1e1e2ee6;
|
||||
border-radius: 8px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: 0 2px 10px #0003;
|
||||
}
|
||||
|
||||
box {
|
||||
spacing: 8px;
|
||||
background-color: #0000;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
label {
|
||||
color: var(--text);
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: var(--text);
|
||||
background-color: var(--surface1);
|
||||
border-radius: 4px;
|
||||
padding: 2px 8px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: var(--surface2);
|
||||
color: var(--lavender);
|
||||
}
|
||||
|
||||
button:active {
|
||||
background-color: var(--blue);
|
||||
color: var(--crust);
|
||||
}
|
||||
|
||||
.workspace {
|
||||
color: var(--subtext1);
|
||||
background-color: #0000;
|
||||
border-radius: 4px;
|
||||
margin: 0 2px;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
.workspace.active {
|
||||
background-color: var(--blue);
|
||||
color: var(--base);
|
||||
}
|
||||
|
||||
.workspace.urgent {
|
||||
background-color: var(--red);
|
||||
color: var(--crust);
|
||||
}
|
||||
|
||||
.workspace.focused {
|
||||
background-color: var(--lavender);
|
||||
color: var(--base);
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: var(--peach);
|
||||
background-color: #0000;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
#cpu,
|
||||
#ram,
|
||||
#temp {
|
||||
color: var(--green);
|
||||
background-color: #0000;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
#volume {
|
||||
color: var(--mauve);
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: var(--green);
|
||||
}
|
||||
|
||||
#battery.discharging {
|
||||
color: var(--yellow);
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: var(--red);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
;; Main bar widget
|
||||
(defwidget bar []
|
||||
(box :class "bar" :orientation "h" :space-evenly false :font "FiraCode Nerd Font 10"
|
||||
;; Left: Workspaces (Hyprland)
|
||||
(box :class "workspaces" :orientation "h"
|
||||
(label :class "workspace" :id "workspace_1" :text "1")
|
||||
(label :class "workspace" :id "workspace_2" :text "2")
|
||||
(label :class "workspace" :id "workspace_3" :text "3")
|
||||
(label :class "workspace" :id "workspace_4" :text "4")
|
||||
(label :class "workspace" :id "workspace_5" :text "5")
|
||||
)
|
||||
|
||||
;; Center: Empty (placeholder for alignment)
|
||||
(box :halign "center" :hexpand true)
|
||||
|
||||
;; Right: System modules
|
||||
(box :class "right-items" :orientation "h" :spacing 8
|
||||
;; Idle inhibitor
|
||||
(button :class "idle-inhibitor" :onclick "eww update idle_inhibitor_icon='\uF472'; notify-send 'Idle inhibitor' 'Activated'"
|
||||
:label (label :id "idle_inhibitor_icon" :text "\uF472"))
|
||||
|
||||
;; PulseAudio
|
||||
(button :class "pulseaudio" :onclick "pavucontrol"
|
||||
:label (label :id "pulseaudio_label" :text "\uF028 100%"))
|
||||
|
||||
;; Network
|
||||
(button :class "network" :onclick "impala" :onclick-right "nm-connection-editor"
|
||||
:label (label :id "network_label" :text "Disconnected !"))
|
||||
|
||||
;; Battery
|
||||
(button :class "battery" :label (label :id "battery_label" :text "100% \uF0E4"))
|
||||
|
||||
;; Tray placeholder (requires external tray like waybar-tray)
|
||||
(box :class "tray" :orientation "h" :spacing 4
|
||||
(label :text "Tray"))
|
||||
|
||||
;; Clock
|
||||
(button :class "clock" :onclick "flatpak run eu.betterbird.Betterbird -calendar"
|
||||
:label (label :id "clock_label" :text "Mon, 01 Jan 2024 - 12:00"))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; Window definition
|
||||
(defwindow bar-window
|
||||
:geometry (geometry :x 0 :y 0 :width 1920 :height 34 :anchor "top left")
|
||||
:layer "top"
|
||||
:exclusivity "ignore"
|
||||
(bar)
|
||||
)
|
||||
|
||||
;; Scripts to update dynamic content
|
||||
(defpoll [1000] ;; Update every second
|
||||
;; Update PulseAudio volume
|
||||
(setq pulseaudio-volume (exec "pamixer --get-volume"))
|
||||
(setq pulseaudio-muted (exec "pamixer --get-mute"))
|
||||
(if (string= pulseaudio-muted "true")
|
||||
(eww update pulseaudio_label="\uF026")
|
||||
(eww update pulseaudio_label=(strfmt "{}% {}" pulseaudio-volume (if (> (string->number pulseaudio-volume) 50) "\uF028" "\uF027"))
|
||||
)
|
||||
|
||||
;; Update network status
|
||||
(setq network-essid (exec "nmcli -t -f TYPE,NAME dev status | awk -F: '/wifi/{print $2}'"))
|
||||
(if (string-empty? network-essid)
|
||||
(eww update network_label="Disconnected !")
|
||||
(eww update network_label=(strfmt "\uF1EB ({})" network-essid))
|
||||
)
|
||||
|
||||
;; Update clock
|
||||
(eww update clock_label=(strftime "%a, %d %b %Y - %H:%M"))
|
||||
|
||||
;; Update battery status
|
||||
(setq battery-capacity (exec "cat /sys/class/power_supply/BAT0/capacity"))
|
||||
(setq battery-status (exec "cat /sys/class/power_supply/BAT0/status"))
|
||||
(if (string= battery-status "Charging")
|
||||
(eww update battery_label=(strfmt "{}% \uF0E4" battery-capacity))
|
||||
(eww update battery_label=(strfmt "{}% \uF079" battery-capacity))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,84 @@
|
||||
# vim:ft=kitty
|
||||
|
||||
## name: Catppuccin Kitty Mocha
|
||||
## author: Catppuccin Org
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
|
||||
|
||||
# The basic colors
|
||||
foreground #cdd6f4
|
||||
background #1e1e2e
|
||||
selection_foreground #1e1e2e
|
||||
selection_background #f5e0dc
|
||||
|
||||
# Cursor colors
|
||||
cursor #f5e0dc
|
||||
cursor_text_color #1e1e2e
|
||||
|
||||
# Scrollbar colors
|
||||
scrollbar_handle_color #9399b2
|
||||
scrollbar_track_color #45475a
|
||||
|
||||
# URL color when hovering with mouse
|
||||
url_color #f5e0dc
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color #b4befe
|
||||
inactive_border_color #6c7086
|
||||
bell_border_color #f9e2af
|
||||
|
||||
# OS Window titlebar colors
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground #11111b
|
||||
active_tab_background #cba6f7
|
||||
inactive_tab_foreground #cdd6f4
|
||||
inactive_tab_background #181825
|
||||
tab_bar_background #11111b
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground #1e1e2e
|
||||
mark1_background #b4befe
|
||||
mark2_foreground #1e1e2e
|
||||
mark2_background #cba6f7
|
||||
mark3_foreground #1e1e2e
|
||||
mark3_background #74c7ec
|
||||
|
||||
# The 16 terminal colors
|
||||
|
||||
# black
|
||||
color0 #45475a
|
||||
color8 #585b70
|
||||
|
||||
# red
|
||||
color1 #f38ba8
|
||||
color9 #f38ba8
|
||||
|
||||
# green
|
||||
color2 #a6e3a1
|
||||
color10 #a6e3a1
|
||||
|
||||
# yellow
|
||||
color3 #f9e2af
|
||||
color11 #f9e2af
|
||||
|
||||
# blue
|
||||
color4 #89b4fa
|
||||
color12 #89b4fa
|
||||
|
||||
# magenta
|
||||
color5 #f5c2e7
|
||||
color13 #f5c2e7
|
||||
|
||||
# cyan
|
||||
color6 #94e2d5
|
||||
color14 #94e2d5
|
||||
|
||||
# white
|
||||
color7 #bac2de
|
||||
color15 #a6adc8
|
||||
@@ -10,3 +10,6 @@ map ctrl+shift+c copy_to_clipboard
|
||||
background_opacity 0.2
|
||||
background_blur 1
|
||||
dynamic_background_opacity yes
|
||||
|
||||
font_family FiraCode Nerd Font
|
||||
font_size 10.0
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"height": 34,
|
||||
|
||||
//"modules-left": ["hyprland/window"],
|
||||
|
||||
"modules-center": ["hyprland/workspaces" ],
|
||||
|
||||
"modules-right": [
|
||||
"idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
// "cpu",
|
||||
// "memory",
|
||||
// "temperature",
|
||||
"battery",
|
||||
"tray",
|
||||
"clock",
|
||||
"custom/notifications",
|
||||
],
|
||||
|
||||
/*
|
||||
"custom/notifications": {
|
||||
"tooltip": false,
|
||||
"return-type": "json",
|
||||
"exec-if": "which swaync-client",
|
||||
"exec": "swaync-client -swb",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"notification": "",
|
||||
"none": "",
|
||||
"dnd-notification": "",
|
||||
"dnd-none": "",
|
||||
},
|
||||
"on-click": "swaync-client -t",
|
||||
"on-click-right": "swaync-client -d",
|
||||
"on-click-middle": "swaync-client -dn",
|
||||
},
|
||||
*/
|
||||
|
||||
"idle_inhibitor": {
|
||||
"tooltip": true,
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " ",
|
||||
},
|
||||
"tooltip-format-activated": "Staying awake",
|
||||
"tooltip-format-deactivated": "Might sleep....",
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"default": ["", ""],
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-wifi": " ({bandwidthDownBits})",
|
||||
"format-ethernet": " ({bandwidthDownBits})",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
|
||||
"tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}",
|
||||
"on-click": "impala",
|
||||
"on-click-right": "nm-connection-editor",
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"format": "{percentage}% ",
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
"format": "{temperatureC}°C ",
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"spacing": 10,
|
||||
"icon-size": 14,
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{:%a, %d %b %Y - %H:%M}",
|
||||
"tooltip": false,
|
||||
"on-click": "flatpak run eu.betterbird.Betterbird -calendar",
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-icons": ["", "", "", "", " "],
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
/* --- Hyprland palette (ported) --- */
|
||||
@define-color base rgba(30, 30, 46, 1.0); /* 1e1e2eff */
|
||||
@define-color inactive rgba(89, 89, 89, 0.667); /* 595959aa */
|
||||
@define-color blue rgba(51, 204, 255, 0.933); /* 33ccffee */
|
||||
@define-color green rgba(0, 255, 153, 0.933); /* 00ff99ee */
|
||||
|
||||
/* extra colors you referenced but didn’t define */
|
||||
@define-color text rgba(255, 255, 255, 1.0);
|
||||
@define-color surface1 rgba(255, 255, 255, 0.08);
|
||||
@define-color subtext1 rgba(255, 255, 255, 0.35);
|
||||
@define-color red rgba(255, 0, 0, 0.90);
|
||||
@define-color overlay1 rgba(255, 255, 255, 0.35);
|
||||
@define-color yellow rgba(255, 215, 0, 0.95);
|
||||
|
||||
* {
|
||||
font-family:
|
||||
Aporetic Sans Mono,
|
||||
Iosevka Nerd Font,
|
||||
Roboto,
|
||||
Helvetica,
|
||||
Arial,
|
||||
sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
transition-property: background-color;
|
||||
border-bottom: 0px solid rgba(0, 0, 0, 0);
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 1px;
|
||||
min-width: 80px;
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
border: 2px solid @inactive;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#custom-notifications.empty {
|
||||
color: @overlay1;
|
||||
}
|
||||
|
||||
#custom-notifications.unread {
|
||||
color: @yellow;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background-color: @surface1;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
padding: 0px 1px;
|
||||
min-width: 80px;
|
||||
color: @text;
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
border: 1px solid transparent;
|
||||
background:
|
||||
linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15))
|
||||
padding-box,
|
||||
linear-gradient(45deg, @blue, @green) border-box;
|
||||
}
|
||||
|
||||
#custom-hyprscroll_overflow.overflow {
|
||||
padding: 0px 1px;
|
||||
min-width: 80px;
|
||||
color: @text;
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
border: 1px dashed transparent;
|
||||
background:
|
||||
linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))
|
||||
padding-box,
|
||||
linear-gradient(45deg, @blue, @green) border-box;
|
||||
}
|
||||
|
||||
#custom-hyprscroll_overflow.overflow {
|
||||
background:
|
||||
linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))
|
||||
padding-box,
|
||||
linear-gradient(45deg, @blue, @green) border-box;
|
||||
}
|
||||
|
||||
#custom-hyprscroll_overflow.hidden {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#idle_inhibitor,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#tray {
|
||||
margin: 0 5px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: @green;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: white;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: @red;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: @red;
|
||||
}
|
||||
|
||||
/* =========================================================
|
||||
* Notifications
|
||||
* ========================================================= */
|
||||
#custom-notifications {
|
||||
margin: 0 4px;
|
||||
padding: 0 4px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#custom-notifications.empty {
|
||||
color: @overlay1;
|
||||
}
|
||||
#custom-notifications.unread {
|
||||
color: @yellow;
|
||||
}
|
||||
|
||||
/* =========================================================
|
||||
* Hyprscroll overflow indicator (custom/hyprscroll_overflow)
|
||||
* States: .ok, .overflow, .error
|
||||
* ========================================================= */
|
||||
|
||||
/* Default (no overflow): subtle pill, still hoverable for tooltip */
|
||||
#custom-hyprscroll_overflow.ok {
|
||||
padding: 0px 1px;
|
||||
min-width: 80px;
|
||||
color: @subtext1;
|
||||
border-radius: 10px;
|
||||
|
||||
/* subtle outline so you know it's there */
|
||||
border: 1px solid rgba(255, 255, 255, 0.12);
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
}
|
||||
|
||||
/* Make it feel interactive (hover) */
|
||||
#custom-hyprscroll_overflow.ok:hover {
|
||||
color: @text;
|
||||
background-color: @surface1;
|
||||
border: 1px solid rgba(255, 255, 255, 0.18);
|
||||
}
|
||||
|
||||
/* Overflow state: you already have this; keep it.
|
||||
Optional: add hover tweak so it "pops" a bit. */
|
||||
#custom-hyprscroll_overflow.overflow:hover {
|
||||
background:
|
||||
linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1))
|
||||
padding-box,
|
||||
linear-gradient(45deg, @blue, @green) border-box;
|
||||
}
|
||||
|
||||
/* Error state: clear but not screaming */
|
||||
#custom-hyprscroll_overflow.error {
|
||||
padding: 0px 1px;
|
||||
min-width: 80px;
|
||||
color: @text;
|
||||
border-radius: 10px;
|
||||
|
||||
border: 1px solid rgba(255, 0, 0, 0.55);
|
||||
background: rgba(255, 0, 0, 0.15);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Optional: if you keep .hidden in the script for any reason */
|
||||
#custom-hyprscroll_overflow.hidden {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
opacity: 0;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/* Catppuccin Mocha theme for Wofi with transparency and rounded corners */
|
||||
|
||||
@define-color base rgba(30, 30, 46, 0.9); /* Added transparency */
|
||||
@define-color surface0 rgba(49, 50, 68, 0.95); /* Added transparency */
|
||||
@define-color surface1 #45475A;
|
||||
@define-color surface2 #585B70;
|
||||
@define-color text #CDD6F4;
|
||||
@define-color lavender #B4BEFE;
|
||||
@define-color blue #89B4FA;
|
||||
@define-color sapphire #74C7EC;
|
||||
@define-color teal #94E2D5;
|
||||
@define-color green #A6E3A1;
|
||||
@define-color yellow #F9E2AF;
|
||||
@define-color peach #FAB387;
|
||||
@define-color maroon #EBA0AC;
|
||||
@define-color red #F38BA8;
|
||||
@define-color mauve #CBA6F7;
|
||||
@define-color pink #F5C2E7;
|
||||
@define-color flamingo #F2CDCD;
|
||||
@define-color rosewater #F5E0DC;
|
||||
|
||||
* {
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
font-family: "JetBrainsMono Nerd Font", monospace;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
#main {
|
||||
background-color: @base;
|
||||
border: 1px solid @surface0;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: @surface0;
|
||||
color: @text;
|
||||
border: 1px solid @surface1;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
padding: 5px 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
padding: 5px 10px;
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
#entry:focus {
|
||||
background-color: @surface1;
|
||||
color: @lavender;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: @surface2;
|
||||
color: @text;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
}
|
||||
|
||||
#scrollbar {
|
||||
background-color: @surface0;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
#scrollbar.handle {
|
||||
background-color: @blue;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
[global]
|
||||
allow_images = true
|
||||
allow_markup = true
|
||||
show_drun = true:apps,false:others
|
||||
show_run = true
|
||||
show_files = false
|
||||
show_windowed = false
|
||||
show_dmenu = false
|
||||
show_ssh = false
|
||||
show_power = false
|
||||
|
||||
width = 800
|
||||
height = 600
|
||||
# Center on the active monitor
|
||||
x = 50%
|
||||
y = 50%
|
||||
|
||||
lines = 10
|
||||
columns = 1
|
||||
sort_order = last-used
|
||||
sort_method = fuzzy
|
||||
allow_scrolling = true
|
||||
scroll_wrap = true
|
||||
scroll_step = 10
|
||||
cycle = true
|
||||
hide_scroll = false
|
||||
hide_search = false
|
||||
show_labels = true
|
||||
label_search = true
|
||||
label_run = Run
|
||||
label_files = Files
|
||||
label_windowed = Windows
|
||||
label_drun = Applications
|
||||
label_dmenu = Commands
|
||||
label_ssh = SSH
|
||||
label_power = Power
|
||||
|
||||
prompt = >
|
||||
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 391 KiB After Width: | Height: | Size: 391 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 382 KiB After Width: | Height: | Size: 382 KiB |
|
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
@@ -0,0 +1,12 @@
|
||||
#!/run/current-system/sw/bin/bash
|
||||
|
||||
# Get a list of available Wi-Fi networks
|
||||
networks=$(nmcli -t -f SSID device wifi list)
|
||||
|
||||
# Show the list using wofi with dmenu mode
|
||||
selected=$(echo "$networks" | wofi --show dmenu --width=300 --height=500 --prompt="Select a network")
|
||||
|
||||
# Connect to the selected network with the --ask option
|
||||
if [ -n "$selected" ]; then
|
||||
nmcli --ask device wifi connect "$selected"
|
||||
fi
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |