diff --git a/flake.nix b/flake.nix index 8db4b1c..8fc5a25 100644 --- a/flake.nix +++ b/flake.nix @@ -28,7 +28,7 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.tristan = { - imports = [ ./users/tristan/home.nix ]; + imports = [ ./home.nix ]; }; } ]; diff --git a/users/tristan/home.nix b/home.nix similarity index 91% rename from users/tristan/home.nix rename to home.nix index 9dc23d7..4ded684 100644 --- a/users/tristan/home.nix +++ b/home.nix @@ -11,21 +11,27 @@ xdg.userDirs.enable = true; home.packages = with pkgs; [ + exa + libnotify + du-dust + playerctl + gimp logseq quickemu - exa - bitwarden - playerctl - nextcloud-client - du-dust - godot_4 ansible + bitwarden + nextcloud-client + godot_4 ardour blender musescore ]; + programs.fish = { + enable = true; + }; + programs.git = { enable = true; userName = "tristan"; @@ -71,6 +77,12 @@ }; }; }; + programs.waybar.systemd.enable = true; + + services.udiskie = { + enable = true; + notify = true; + }; gtk = { enable = true; @@ -208,4 +220,19 @@ D = "trash"; }; + home.sessionPath = [ + "$HOME/.local/scripts" + ]; + home.file.".local/scripts" = { + enable = true; + source = ./scripts; + executable = true; + recursive = true; + }; + home.file.".config/hypr" = { + enable = true; + source = ./hyprland; + recursive = true; + }; + } diff --git a/hyprland/hyprland.conf b/hyprland/hyprland.conf new file mode 100644 index 0000000..5159fe1 --- /dev/null +++ b/hyprland/hyprland.conf @@ -0,0 +1,137 @@ + +exec-once= ~/.local/scripts/autostart +monitor=,preferred,auto,1 +monitor=DP-1,1920x1080@144,0x0,1 +monitor=HDMI-A-1,1920x1080@60,1920x0,1 + +input { + kb_file= + kb_layout=gb + #kb_variant=dvorak + kb_model= + #kb_options=caps:escape + kb_rules= + + follow_mouse=1 + + touchpad { + natural_scroll=no + } + + sensitivity=0 + accel_profile=flat +} + +general { + + gaps_in=5 + gaps_out=20 + border_size=2 + col.active_border=0x66ee1111 + col.inactive_border=0x66333333 + + apply_sens_to_raw=0 + + layout = master +} + +decoration { + rounding=5 + blur=0 + blur_size=3 # minimum 1 + blur_passes=1 # minimum 1 + blur_new_optimizations=1 +} + +bezier=overshot, 0.05, 0.9, 0.1, 1.1 +animations { + enabled=1 + animation=windows,1,5,default + animation=border,1,5,default + animation=fade,1,10,default + animation=workspaces,1,3,overshot +} + +dwindle { + pseudotile=0 # enable pseudotiling on dwindle +} + +gestures { + workspace_swipe=no +} + +# example window rules +# for windows named/classed as abc and xyz +#windowrule=move 69 420,abc +#windowrule=size 420 69,abc +#windowrule=tile,xyz +#windowrule=float,abc +#windowrule=pseudo,abc +#windowrule=monitor 0,xyz + +# some nice mouse binds +bindm=SUPER,mouse:272,movewindow +bindm=SUPER,mouse:273,resizewindow + +bind=SUPER,RETURN,exec,foot +bind=SUPER_SHIFT,X,killactive, +bind=SUPER,M,exec,foot -e ncmpcpp +bind=SUPER,E,exec,foot -e neomutt +bind=SUPER,O,exec,pcmanfm +bind=SUPER,y,exec,foot -e ytui +bind=SUPER,Z,exec,swaylock -f +bind=SUPER,T,exec,notify-send "$(date)" +bind=SUPER,s,exec,screenshotSectionClipboard +bind=SUPER_SHIFT,S,exec,screenshotSection +bind=SUPERCTRL_SHIFT,S,exec,qrcode.sh +bind=SUPER,p,exec,hyprpicker | wl-copy; wl-paste | xargs notify-send Copied +bind=SUPER,slash,exec,brave +bind=SUPER,V,togglefloating, +bind=SUPER,F,fullscreen, +bind=SUPER,d,exec,wofi --show drun +#bind=SUPER,d,exec,nwg-drawer +bind=SUPER_SHIFT,P,exec,bwmenu +bind=SUPER,apostrophe,exec,notify-send -i mpv "$(playerctl metadata --format '{{title}}')" "$(playerctl metadata --format '{{album}}')" -t 3000 +bind=SUPER_SHIFT,E,exit, +bind=,XF86AudioRaiseVolume,exec,amixer -D pulse sset Master 5%+ && amixer sset Master unmute +bind=,XF86AudioLowerVolume,exec,amixer -D pulse sset Master 5%- +bind=,XF86AudioPlay,exec,~/.local/scripts/play-pause +bind=,XF86AudioNext,exec,playerctl next +bind=,XF86AudioPrev,exec,playerctl previous + +bind=SUPER,h,movefocus,l +bind=SUPER,l,movefocus,r + +bind=SUPER,j,layoutmsg,cyclenext +bind=SUPER,k,layoutmsg,cycleprev +bind=SUPER,space,layoutmsg,swapwithmaster + +master { + new_is_master= true + new_on_top= true +} + +bind=SUPER,1,workspace,1 +bind=SUPER,2,workspace,2 +bind=SUPER,3,workspace,3 +bind=SUPER,4,workspace,4 +bind=SUPER,5,workspace,5 +bind=SUPER,6,workspace,6 +bind=SUPER,7,workspace,7 +bind=SUPER,8,workspace,8 +bind=SUPER,9,workspace,9 +bind=SUPER,0,workspace,10 + +bind=SUPER_SHIFT,1,movetoworkspace,1 +bind=SUPER_SHIFT,2,movetoworkspace,2 +bind=SUPER_SHIFT,3,movetoworkspace,3 +bind=SUPER_SHIFT,4,movetoworkspace,4 +bind=SUPER_SHIFT,5,movetoworkspace,5 +bind=SUPER_SHIFT,6,movetoworkspace,6 +bind=SUPER_SHIFT,7,movetoworkspace,7 +bind=SUPER_SHIFT,8,movetoworkspace,8 +bind=SUPER_SHIFT,9,movetoworkspace,9 +bind=SUPER_SHIFT,0,movetoworkspace,10 + +bind=SUPER,mouse_down,workspace,e+1 +bind=SUPER,mouse_up,workspace,e-1 diff --git a/hyprland/hyprpaper.conf b/hyprland/hyprpaper.conf new file mode 100644 index 0000000..7803cff --- /dev/null +++ b/hyprland/hyprpaper.conf @@ -0,0 +1,3 @@ +# preload = ~/Pictures/backgrounds/demonslayer.jpg +# +# wallpaper = DP-1,contain: ~/Pictures/backgrounds/demonslayer.jpg diff --git a/scripts/autostart b/scripts/autostart new file mode 100755 index 0000000..f7f5471 --- /dev/null +++ b/scripts/autostart @@ -0,0 +1,14 @@ +#!/bin/sh + +nextcloud & +waybar & + +swaybg \ + -o DP-1 -i ~/Pictures/backgrounds/demonslayer.jpg \ + -o HDMI-A-1 -i ~/Pictures/backgrounds/nier.jpg & + +swayidle -w \ + timeout 600 'swaylock &' & # swaymsg dunt work \ + # timeout 400 'swaymsg "output * dpms off"' \ + # resume 'swaymsg "output * dpms on"' & + diff --git a/scripts/play-pause b/scripts/play-pause new file mode 100755 index 0000000..37a415c --- /dev/null +++ b/scripts/play-pause @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$(playerctl --list-all | wc -l)" -lt 2 ] +then + playerctl play-pause +else + playerctl --list-all | \ + xargs -I _ playerctl --player _ metadata --format '_ - {{title}}' | \ + wofi --dmenu | awk '{print $1}' | \ + xargs -I _ playerctl --player _ play-pause +fi