more shenanigans

This commit is contained in:
Kopatz
2024-06-03 23:06:56 +02:00
parent 1d410ace0b
commit 1226b41379
9 changed files with 294 additions and 45 deletions

View File

@@ -12,8 +12,8 @@ font pango:monospace 8
# Use pactl to adjust volume in PulseAudio. # Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
@@ -34,6 +34,8 @@ bindsym $mod+e exec dolphin
bindsym Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png bindsym Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png
# kill focused window # kill focused window
bindsym $mod+c kill bindsym $mod+c kill
# lock with wallpaper
bindsym $mod+l exec --no-startup-id loginctl lock-session
##################################### #####################################
# Application menu handled by rofi: # # Application menu handled by rofi: #
@@ -63,10 +65,10 @@ bindsym $mod+a exec --no-startup-id rofi -show window \
# change focus # change focus
bindsym $mod+h focus left #bindsym $mod+h focus left
bindsym $mod+j focus down #bindsym $mod+j focus down
bindsym $mod+k focus up #bindsym $mod+k focus up
bindsym $mod+l focus right #bindsym $mod+l focus right
# alternatively, you can use the cursor keys: # alternatively, you can use the cursor keys:
bindsym $mod+Left focus left bindsym $mod+Left focus left
@@ -75,10 +77,10 @@ bindsym $mod+Up focus up
bindsym $mod+Right focus right bindsym $mod+Right focus right
# move focused window # move focused window
bindsym $mod+Shift+h move left #bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down #bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up #bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right #bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys: # alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left bindsym $mod+Shift+Left move left
@@ -87,10 +89,10 @@ bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
# split in horizontal orientation # split in horizontal orientation
bindsym $mod+h split h #bindsym $mod+h split h
# split in vertical orientation # split in vertical orientation
bindsym $mod+n split v #bindsym $mod+n split v
# enter fullscreen mode for the focused container # enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle bindsym $mod+f fullscreen toggle
@@ -185,9 +187,9 @@ bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status # Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available) # finds out, if available)
bar { #bar {
status_command i3status # status_command i3status
} #}
############################## ##############################
# extra options for windows: # # extra options for windows: #
@@ -230,7 +232,6 @@ default_border pixel 2
#exec_always --no-startup-id picom -b #exec_always --no-startup-id picom -b
# #
# for custom config: # for custom config:
#exec --no-startup-id picom --config ~/.config/picom/picom.conf
############################################# #############################################
# autostart applications/services on login: # # autostart applications/services on login: #
@@ -244,12 +245,52 @@ exec --no-startup-id "xrandr --output HDMI-0 --left-of DP-0 && xrandr --output D
# https://wiki.archlinux.org/index.php/XDG_Autostart # https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3 exec --no-startup-id dex --autostart --environment i3
# start picom compositor
exec --no-startup-id picom --config ~/.config/picom/picom.conf
#status bar
exec --no-startup-id ~/.config/i3/scripts/launch-polybar.sh
# The combination of xss-lock, nm-applet and pactl is a popular choice, so # The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit. # they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen. # screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
set $BLANK #00000000
set $CLEAR #ffffff22
set $DEFAULT #ff00ffcc
set $TEXT #ee00eeee
set $WRONG #880000bb
set $VERIFYING #bb00bbbb
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-color --nofork \
--insidever-color=$CLEAR \
--ringver-color=$VERIFYING \
\
--insidewrong-color=$CLEAR \
--ringwrong-color=$WRONG \
\
--inside-color=$BLANK \
--ring-color=$DEFAULT \
--line-color=$BLANK \
--separator-color=$DEFAULT \
\
--verif-color=$TEXT \
--wrong-color=$TEXT \
--time-color=$TEXT \
--date-color=$TEXT \
--layout-color=$TEXT \
--keyhl-color=$WRONG \
--bshl-color=$WRONG \
--fill \
-i ~/.config/wallpapers/yuyukowallpaper.png \
--clock \
--indicator \
--time-str="%H:%M:%S" \
--date-str="%A, %Y-%m-%d" \
--keylayout 1 \
# NetworkManager is the most popular way to manage wireless networks on Linux, # NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it. # and nm-applet is a desktop environment-independent system tray GUI for it.
@@ -286,6 +327,9 @@ exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# exec --no-startup-id sleep 2 && nitrogen --restore # exec --no-startup-id sleep 2 && nitrogen --restore
exec_always --no-startup-id sleep 1 && feh --bg-fill $HOME/.config/wallpapers/yuyukowallpaper.png exec_always --no-startup-id sleep 1 && feh --bg-fill $HOME/.config/wallpapers/yuyukowallpaper.png
# set default microphone input
exec_always --no-startup-id sleep 5 && pactl list short sources | grep 'alsa_input.usb-Razer' | awk '{print $2}' | xargs pactl set-default-source
# set powersavings for display: # set powersavings for display:
# exec --no-startup-id xset s 480 dpms 600 600 600 # exec --no-startup-id xset s 480 dpms 600 600 600
#exec --no-startup-id xset s off #exec --no-startup-id xset s off
@@ -313,7 +357,7 @@ exec_always --no-startup-id sleep 1 && feh --bg-fill $HOME/.config/wallpapers/yu
#exec --no-startup-id /usr/bin/dunst --config ~/.config/dunst/dunstrc #exec --no-startup-id /usr/bin/dunst --config ~/.config/dunst/dunstrc
# may need to run dbus-launch explicitly: # may need to run dbus-launch explicitly:
#exec --no-startup-id dbus-launch /usr/bin/dunst #exec --no-startup-id dbus-launch /usr/bin/dunst
#exec --no-startup-id /usr/bin/env dunst exec --no-startup-id /usr/bin/env dunst
# alternative if you installed aside with XFCE4: # alternative if you installed aside with XFCE4:
# exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd & # exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd &

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
for m in $(polybar --list-monitors | cut -d":" -f1); do
MONITOR=$m polybar --reload main &
done

View File

@@ -51,7 +51,7 @@ use-damage = false;
################################# #################################
# Enabled client-side shadows on windows. # Enabled client-side shadows on windows.
shadow = true; shadow = false;
# The blur radius for shadows. (default 12) # The blur radius for shadows. (default 12)
@@ -261,14 +261,13 @@ mark-ovredir-focused = true;
# use-ewmh-active-win = true; # use-ewmh-active-win = true;
detect-rounded-corners = true; detect-rounded-corners = true;
detect-client-opacity = true; detect-client-opacity = true;
refresh-rate = 0;
vsync = true; vsync = true;
# sw-opti = true; # sw-opti = true;
# unredir-if-possible = true; unredir-if-possible = true;
# unredir-if-possible-delay = 5000; # unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ]; # unredir-if-possible-exclude = [ ];

26
home-manager/dunst.nix Normal file
View File

@@ -0,0 +1,26 @@
{ lib, osConfig, pkgs, ... }:
let enable = osConfig.custom.graphical.i3.enable || osConfig.custom.graphical.hyprland.enable;
in {
config = lib.mkIf enable {
services.dunst = {
enable = true;
settings = {
global = {
width = "(0,1000)";
height = "1000";
offset = "0x0";
origin = "bottom-center";
transparency = -1;
frame_color = "#1a1c1b";
font = lib.mkDefault "Monospace 8";
};
urgency_normal = {
background = lib.mkDefault "#1a1c1b";
foreground = lib.mkDefault "#eceff1";
timeout = 10;
};
};
};
};
}

View File

@@ -282,25 +282,5 @@ in {
submap = reset submap = reset
''; '';
}; };
services.dunst = {
enable = true;
settings = {
global = {
width = "(0,1000)";
height = "1000";
offset = "0x0";
origin = "bottom-center";
transparency = -1;
frame_color = "#1a1c1b";
font = "Monospace 8";
};
urgency_normal = {
background = "#1a1c1b";
foreground = "#eceff1";
timeout = 10;
};
};
};
}; };
} }

View File

@@ -1,4 +1,4 @@
{ pkgs, config, ...}: { { pkgs, config, ... }: {
home.file.".config/i3" = { home.file.".config/i3" = {
enable = true; enable = true;
recursive = true; recursive = true;
@@ -19,4 +19,196 @@
source = ../.config/wallpapers; source = ../.config/wallpapers;
target = ".config/wallpapers"; target = ".config/wallpapers";
}; };
services.polybar = {
enable = true;
package = pkgs.polybar.override {
pulseSupport = true;
i3Support = true;
};
script = "polybar &";
config = {
"bar/main" = {
monitor = "\${env:MONITOR:}";
bottom = true;
width = "100%";
height = "22pt";
radius = 0;
# offset-y = -5;
# offset-y = "5%";
# dpi = 96;
background = config.stylix.base16Scheme.base01;
foreground = config.stylix.base16Scheme.base05;
line-size = "3pt";
font-0 = "Noto Sans:size=11;1";
font-1 = "Hack-Regular.ttf: Hack:style=Regular";
font-2 = "Noto Sans CJK JP:style=Regular";
border-top-size = 0;
border-right-size = 0;
border-left-size = 0;
border-bottom-size = 0; # "4pt";
border-color = config.stylix.base16Scheme.base00;
padding-left = 2;
padding-right = 2;
module-margin = 1;
modules-left = "i3";
modules-center = "xwindow";
modules-right = "network memory cpu pulseaudio date tray";
cursor-click = "pointer";
cursor-scroll = "ns-resize";
enable-ipc = true;
#tray-position = "right";
# wm-restack = "generic";
# wm-restack = "bspwm";
# wm-restack = "i3";
# override-redirect = true;
};
"module/i3" = let padding = 2;
in {
type = "internal/i3";
pin-workspaces = true;
show-urgent = true;
strip-wsnumbers = true;
index-sort = true;
enable-click = true;
wrapping-scroll = true;
fuzzy-match = true;
format = "<label-state> <label-mode>";
label-focused = "%name%";
label-focused-foreground = config.stylix.base16Scheme.base01;
label-focused-background = config.stylix.base16Scheme.base05;
label-focused-underline = config.stylix.base16Scheme.base03;
label-focused-padding = padding;
label-unfocused = "%name%";
label-unfocused-padding = padding;
label-visible = "%name%";
label-visible-underline = config.stylix.base16Scheme.base01;
label-visible-padding = padding;
label-urgent = "%name%";
label-urgent-foreground = config.stylix.base16Scheme.base00;
label-urgent-background = config.stylix.base16Scheme.base08;
label-urgent-underline = config.stylix.base16Scheme.base0F;
label-urgent-padding = padding;
};
"module/xworkspaces" = {
type = "internal/xworkspaces";
label-active = "%name%";
label-active-background = config.stylix.base16Scheme.base05;
label-active-foreground = config.stylix.base16Scheme.base01;
label-active-underline = config.stylix.base16Scheme.base03;
label-active-padding = 1;
label-occupied = "%name%";
label-occupied-padding = 1;
label-urgent = "%name%";
label-urgent-background = config.stylix.base16Scheme.base08;
label-urgent-padding = 1;
label-empty = "%name%";
label-empty-foreground = config.stylix.base16Scheme.base06;
label-empty-padding = 1;
};
"module/xwindow" = {
type = "internal/xwindow";
label = "%title:0:60:...%";
};
# "module/filesystem" = {
# type = "internal/fs";
# interval = 25;
# mount-0 = "/";
# label-mounted = "%{F#F0C674}%mountpoint%%{F-} %percentage_used%%";
# label-unmounted = "%mountpoint% not mounted";
# label-unmounted-foreground = colors.disabled;
# };
"module/network" = {
type = "internal/network";
interface-type = "wired";
interval = 3;
accumulate-stats = true;
format-connected = "<label-connected>";
format-connected-foreground = config.stylix.base16Scheme.base0B;
format-disconnected = "<label-disconnected>";
format-diconnected-foreground = config.stylix.base16Scheme.base08;
label-connected = "%ifname% %netspeed%";
label-disconnected = "";
};
"module/pulseaudio" = {
type = "internal/pulseaudio";
# format-volume-prefix = "VOL ";
# format-volume-prefix-foreground = colors.primary;
format-volume = "<ramp-volume> <label-volume>";
# format-volume-background = colors.background;
# label-volume-background = colors.background;
format-volume-foreground = config.stylix.base16Scheme.base09;
label-volume = "%percentage%%";
label-muted = "sound ---";
label-muted-foreground = config.stylix.base16Scheme.base09;
#ramp-volume-0 = "";
#ramp-volume-1 = "󰕾";
#ramp-volume-2 = "";
ramp-volume-0 = "sound";
ramp-volume-1 = "sound";
ramp-volume-2 = "sound";
click-right = "${pkgs.pavucontrol}/bin/pavucontrol";
};
# "module/xkeyboard" = {
# type = "internal/xkeyboard";
# blacklist-0 = "num lock";
# label-layout = "%layout%";
# label-layout-foreground = colors.primary;
# label-indicator-padding = 2;
# label-indicator-margin = 1;
# label-indicator-foreground = colors.background;
# label-indicator-background = colors.secondary;
# };
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "RAM ";
format-prefix-foreground = config.stylix.base16Scheme.base0C;
label = "%percentage_used:2%%";
};
"module/cpu" = {
type = "internal/cpu";
interval = 2;
format-prefix = "CPU ";
format-prefix-foreground = config.stylix.base16Scheme.base0D;
label = "%percentage:2%%";
};
# "network-base" = {
# type = "internal/network";
# interval = 5;
# format-connected = "<label-connected>";
# format-disconnected = "<label-disconnected>";
# label-disconnected = "%{F#F0C674}%ifname%%{F#707880} disconnected";
# };
# "module/wlan" = {
# "inherit" = "network-base";
# interface-type = "wireless";
# label-connected = "%{F#F0C674}%ifname%%{F-} %essid% %local_ip%";
# };
#"module/eth" = {
# "inherit" = "network-base";
# interface-type = "wired";
# label-connected = "%{F#F0C674}%ifname%%{F-} %local_ip%";
#};
"module/date" = {
type = "internal/date";
interval = 1;
date = "%d %b %l:%M %p";
date-alt = "%Y-%m-%d %H:%M:%S";
label = "%date%";
label-foreground = config.stylix.base16Scheme.base06;
# format-background = colors.background;
};
"module/tray" = {
type = "internal/tray";
format-margin = "8px";
tray-spacing = "8px";
};
"settings" = {
screenchange-reload = true;
pseudo-transparency = false;
};
};
};
} }

View File

@@ -26,14 +26,14 @@ in {
enable = true; enable = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
i3status # gives you the default i3 status bar i3status # gives you the default i3 status bar
i3lock # default i3 screen locker i3lock-color # i3 screen locker
i3blocks # if you are planning on using i3blocks over i3status i3blocks # if you are planning on using i3blocks over i3status
]; ];
}; };
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
#picom # compositor picom # compositor
rofi # application rofi # application
maim # takes screenshots maim # takes screenshots
xclip xclip

View File

@@ -35,7 +35,10 @@ in {
in mkIf cfg.enable { in mkIf cfg.enable {
home-manager = lib.mkIf config.custom.graphical.i3.enable { home-manager = lib.mkIf config.custom.graphical.i3.enable {
users.${config.mainUser.name}.stylix.targets.kde.enable = false; users.${config.mainUser.name}.stylix = {
targets.kde.enable = false;
base16Scheme = config.stylix.base16Scheme // cfg.override;
};
}; };
stylix = { stylix = {
autoEnable = mkForce true; autoEnable = mkForce true;

View File

@@ -24,6 +24,7 @@
../../home-manager/lf.nix ../../home-manager/lf.nix
../../home-manager/nixvim ../../home-manager/nixvim
../../home-manager/rofi.nix ../../home-manager/rofi.nix
../../home-manager/dunst.nix
#../../home-manager/theme.nix #../../home-manager/theme.nix
../../home-manager/zsh.nix ../../home-manager/zsh.nix
../../home-manager/i3.nix ../../home-manager/i3.nix