Finalized initial wayland configuration using Hyprland and Bemenu. Found replacment tools for ones used with bspwm and dmenu.

This commit is contained in:
Thai Noodles 2024-01-07 19:13:29 -08:00
parent f305aad88b
commit 9e9165cb4e
8 changed files with 288 additions and 37 deletions

View File

@ -1,15 +0,0 @@
error: builder for '/nix/store/kdnn9827xdjh7zwfcahajjzh8qpqlrn4-dwl-0.4.drv' failed with exit code 2;
last 10 log lines:
> dwl.c:407:44: error: 'tags' undeclared here (not in a function); did you mean 'tag'?
> 407 | struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
> | ^~~~
> dwl.c:68:41: note: in definition of macro 'LENGTH'
> 68 | #define LENGTH(X) (sizeof X / sizeof X[0])
> | ^
> config.h:21:12: warning: 'log_level' defined but not used [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-variable-Wunused-variable8;;]
> 21 | static int log_level = WLR_ERROR;
> | ^~~~~~~~~
> make: *** [Makefile:60: dwl.o] Error 1
For full logs, run 'nix log /nix/store/kdnn9827xdjh7zwfcahajjzh8qpqlrn4-dwl-0.4.drv'.
error: 1 dependencies of derivation '/nix/store/lk9g5kw1yh15p2p5iw4a0wps6jq560in-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/id6523vap8cxfd7ds9yi9h49b08avwxf-nixos-system-buckwheat-24.05.20231219.54aac08.drv' failed to build

View File

@ -1,4 +1,8 @@
[[ -f ~/.bashrc ]] && . ~/.bashrc
#if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
# exec startx
#fi
tmux has-session -t scratch 2>/dev/null || tmux new-session -d -s scratch
tmux has-session -t music 2>/dev/null || tmux new-session -d -s music
tmux has-session -t chat 2>/dev/null || tmux new-session -d -s chat
tmux has-session -t dev 2>/dev/null || tmux new-session -d -s dev
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
exec Hyprland
fi

View File

@ -1,8 +1,23 @@
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
set -o vi
unset HISTFILE
# Functions
function search() {
surfraw $(surfraw -elvi | fzf | awk '{print $1;}')
}
function mkcd {
mkdir -p $1
cd $1
}
function mkplatypus() {
cd $(mktemp -d)
touch "platypus.sh"
@ -11,14 +26,7 @@ function mkplatypus() {
chmod +x "platypus.sh"
vim "+normal GA" "platypus.sh"
}
# Functions
function search() {
surfraw $(surfraw -elvi | fzf | awk '{print $1;}')
}
function mkcd {
mkdir -p $1
cd $1
}
# fe [FUZZY PATTERN] - Open the selected file with the default editor
# - Bypass fuzzy finder if there's only one match (--select-1)
# - Exit if there's no match (--exit-0)
@ -28,6 +36,7 @@ function fe() {
files=$(fzf --query="$1" --multi --select-1 --exit-0)
[ -n "$files" ] && ${EDITOR} "${files}"
}
function _track() {
TRACK_DIR=${TRACK_DIR:-.}
local lis
@ -36,6 +45,7 @@ function _track() {
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "$lis" -- "$cur") )
}
function track() {
TRACK_DIR=${TRACK_DIR:-.}
if [ $# -eq 0 ]; then
@ -102,10 +112,24 @@ function track() {
}
complete -F _track track
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Environmental Variables
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
export SYSTEMD_PAGER=
export BEMENU_OPTS="--tb '#6272a4'\
--tf '#f8f8f2'\
--fb '#282a36'\
--ff '#f8f8f2'\
--nb '#282a36'\
--nf '#6272a4'\
--hb '#44475a'\
--hf '#50fa7b'\
--sb '#44475a'\
--sf '#50fa7b'\
--scb '#282a36'\
--scf '#ff79c6'\
--fn 'Comic Mono 12'\
--hp '10'\
--binding 'vim'\
--vim-esc-exits\
--ignorecase\
--no-overlap"

View File

@ -0,0 +1,23 @@
font=Comic Mono:size=11
[colors]
alpha=1.0
foreground=f8f8f2
background=282a36
## Normal/regular colors (color palette 0-7)
regular0=000000
regular1=ff5555
regular2=50fa7b
regular3=f1fa8c
regular4=bd93f9
regular5=ff79c6
regular6=8be9fd
regular7=bfbfbf
## Bright colors (color palette 8-15)
bright0=4d4d4d
bright1=ff6367
bright2=5af78e
bright3=f4f99d
bright4=caa9fa
bright5=ff92d0
bright6=9aedfe
bright7=e63636

View File

@ -0,0 +1,201 @@
# Variables
$TERMINAL = foot
$MENU = iiwmenu
$FILEMANAGER = foot -e ranger
$MOD = SUPER
# Some default env vars.
env = XCURSOR_SIZE,24
# Auto-start
# exec-once = waybar & hyprpaper & firefox
exec-once = nm-applet
exec-once = mullvad-gui
exec-once = wl-paste --watch cliphist store
exec-once = dunst
exec-once = swww init
exec-once = swww img $HOME/Pictures/wallpapers/bliss-night.png --transition-type simple
# Monitors
monitor=DP-1,2560x1440@164.99,0x0,1
monitor=DP-2,2560x1440@164.99,2560x0,1
# Workspaces
workspace=1,monitor:DP-1
workspace=2,monitor:DP-1
workspace=3,monitor:DP-1
workspace=4,monitor:DP-1
workspace=5,monitor:DP-1
workspace=6,monitor:DP-2
workspace=7,monitor:DP-2
workspace=8,monitor:DP-2
workspace=9,monitor:DP-2
workspace=0,monitor:DP-2
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
gaps_in = 10
gaps_out = 20
border_size = 2
col.active_border = rgba(bd93f9ff) rgba(bd93f9ff) 45deg
col.inactive_border = rgba(282a3600)
layout = dwindle
allow_tearing = false
cursor_inactive_timeout = 1
}
decoration {
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
default_split_ratio = 1.10
force_split = 2
}
master {
new_is_master = false
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device:epic-mouse-v1 {
sensitivity = -0.5
}
# Hotkeys
bind = $MOD, Return, exec, $TERMINAL -e iitmux
bind = $MOD SHIFT, Return, exec, $TERMINAL
bind = $MOD, V, exec, cliphist list | bemenu -p 'Cliphist ' -l 8 | cliphist decode | wl-copy
bind = $MOD, Q, killactive,
bind = $MOD SHIFT, Q, exit,
bind = $MOD, F, togglefloating,
bind = , F11, fullscreen
bind = $MOD, Z, fullscreen, 1
bind = $MOD, Space, exec, $MENU
bind = $MOD SHIFT, F, pseudo, # dwindle
# Focus window
bind = $MOD, h, movefocus, l
bind = $MOD, j, movefocus, d
bind = $MOD, k, movefocus, u
bind = $MOD, l, movefocus, r
bind = ALT, TAB, cyclenext
bind = ALT Shift, TAB, cyclenext, prev
# Move window
bind = $MOD ALT, h, movewindow, l
bind = $MOD ALT, j, movewindow, d
bind = $MOD ALT, k, movewindow, u
bind = $MOD ALT, l, movewindow, r
# Swap window
bind = $MOD CTRL, h, swapwindow, l
bind = $MOD CTRL, j, swapwindow, d
bind = $MOD CTRL, k, swapwindow, u
bind = $MOD CTRL, l, swapwindow, r
# Focus workspace
bind = $MOD, 1, workspace, 1
bind = $MOD, 1, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 2, workspace, 2
bind = $MOD, 2, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 3, workspace, 3
bind = $MOD, 3, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 4, workspace, 4
bind = $MOD, 4, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 5, workspace, 5
bind = $MOD, 5, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 6, workspace, 6
bind = $MOD, 6, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 7, workspace, 7
bind = $MOD, 7, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 8, workspace, 8
bind = $MOD, 8, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 9, workspace, 9
bind = $MOD, 9, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, 0, workspace, 10
bind = $MOD, 0, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD, TAB, workspace, previous
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $MOD CTRL, 1, movetoworkspace, 1
bind = $MOD CTRL, 1, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 2, movetoworkspace, 2
bind = $MOD CTRL, 2, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 3, movetoworkspace, 3
bind = $MOD CTRL, 3, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 4, movetoworkspace, 4
bind = $MOD CTRL, 4, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 5, movetoworkspace, 5
bind = $MOD CTRL, 5, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 6, movetoworkspace, 6
bind = $MOD CTRL, 6, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 7, movetoworkspace, 7
bind = $MOD CTRL, 7, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 8, movetoworkspace, 8
bind = $MOD CTRL, 8, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 9, movetoworkspace, 9
bind = $MOD CTRL, 9, exec, notify-desktop "$(hyprctl activeworkspace)"
bind = $MOD CTRL, 0, movetoworkspace, 10
bind = $MOD CTRL, 0, exec, notify-desktop "$(hyprctl activeworkspace)"
# Example special workspace (scratchpad)
bind = $MOD, Grave, togglespecialworkspace, scratch
bind = $MOD SHIFT, Grave, movetoworkspace, special:scratch
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $MOD, mouse:272, movewindow
bindm = $MOD, mouse:273, resizewindow
# Screenshot
bind = $MOD SHIFT, S, exec, grimblast --notify copysave area "$HOME/Pictures/screenshots/scrot-$(date +%Y%m%d%H%M%s).jpg"
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = nomaximizerequest, class:.* # You'll probably like this.

View File

@ -68,6 +68,16 @@
};
};
xdg.configFile = {
"hyprland" = {
source = ./dots/hypr;
target = "hypr";
recursive = true;
};
"foot" = {
source = ./dots/foot;
target = "foot";
recursive = true;
};
"dunst" = {
source = ./dots/dunst;
target = "dunst";

View File

@ -11,6 +11,7 @@
gamemode.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
dnd-tools
dosbox-staging
minecraft
];

View File

@ -103,12 +103,15 @@
xsel
# Packages for Wayland
#(dwl.overrideAttrs (oldAttrs: rec {
# configFile = writeText "config.def.h" (builtins.readFile ./patches/dwl/config.h);
# postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
#}))
bemenu
dwl
bemoji
cliphist
foot
grimblast
libnotify
swww
tessen
wl-clipboard
wtype
];
}