mirror of
https://github.com/morten-olsen/nixos-config.git
synced 2026-02-08 00:36:27 +01:00
update
This commit is contained in:
25
user/programs/hyprland/default.nix
Normal file
25
user/programs/hyprland/default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../kitty
|
||||
];
|
||||
home.packages = [
|
||||
pkgs.wl-clipboard
|
||||
];
|
||||
|
||||
home.file = {
|
||||
".config/hypr" = {
|
||||
source = ./files/hypr;
|
||||
recursive = true;
|
||||
};
|
||||
".config/eww" = {
|
||||
source = ./files/eww;
|
||||
recursive = true;
|
||||
};
|
||||
".config/wofi" = {
|
||||
source = ./files/wofi;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
247
user/programs/hyprland/files/eww/eww.scss
Normal file
247
user/programs/hyprland/files/eww/eww.scss
Normal file
@@ -0,0 +1,247 @@
|
||||
/* Created by https://github.com/rxyhn
|
||||
Designed by https://github.com/rxyhn
|
||||
Maintaned by https://github.com/rxyhn
|
||||
*/
|
||||
|
||||
// Global
|
||||
*{
|
||||
all: unset;
|
||||
}
|
||||
|
||||
// Variable Color's
|
||||
$background: #1A1B26;
|
||||
$foreground: #A9B1D6;
|
||||
|
||||
$black: #24283B;
|
||||
$gray: #565F89;
|
||||
$red: #F7768E;
|
||||
$green: #73DACA;
|
||||
$yellow: #E0AF68;
|
||||
$blue: #7AA2F7;
|
||||
$magenta: #BB9AF7;
|
||||
$cyan: #7DCFFF;
|
||||
$white: $foreground;
|
||||
|
||||
// EWW BAR
|
||||
.eww_bar{
|
||||
background-color: $background;
|
||||
padding: .3rem;
|
||||
}
|
||||
|
||||
// Launcher
|
||||
.launcher_icon{
|
||||
color: $cyan;
|
||||
font-family: "Font Awesome 6";
|
||||
font-size: 1.7em;
|
||||
padding: 1rem 0 1rem 0;
|
||||
}
|
||||
|
||||
// Workspaces
|
||||
.works {
|
||||
font-family: "Font Awesome 6";
|
||||
padding: .2rem .7rem .2rem .7rem;
|
||||
background-color: $black;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.0 , .01, .02, .03, .04, .05, .06,
|
||||
.011, .022, .033, .044, .055, .066{
|
||||
margin: .55rem 0 .55rem 0;
|
||||
}
|
||||
|
||||
/* Unoccupied */
|
||||
.0 {
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
/* Occupied */
|
||||
.01, .02, .03, .04, .05, .06 {
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
/* Focused */
|
||||
.011,
|
||||
.022,
|
||||
.033,
|
||||
.044,
|
||||
.055,
|
||||
.066 {
|
||||
color: $foreground;
|
||||
}
|
||||
|
||||
.0:nth-child(1),
|
||||
.0:nth-child(3){
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.0:nth-child(2){
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.0:nth-child(4),
|
||||
.0:nth-child(5){
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.0:nth-child(6){
|
||||
font-size: 1.7em;
|
||||
}
|
||||
.01,
|
||||
.011,
|
||||
.03,
|
||||
.033{
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.02,
|
||||
.022{
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.04,
|
||||
.05,
|
||||
.044,
|
||||
.055{
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.06,
|
||||
.066{
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
// Control Panel
|
||||
.control {
|
||||
padding: .5rem;
|
||||
font-family: Material Icons;
|
||||
font-size: 1.6em;
|
||||
background-color: $black;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.bat{
|
||||
font-family: JetBrainsMono Nerd Font;
|
||||
font-size: 1.2em;
|
||||
padding-right: .5rem;
|
||||
color: $blue;
|
||||
}
|
||||
.wifi-icon{
|
||||
margin-bottom: .2rem;
|
||||
color: $magenta;
|
||||
}
|
||||
.brightness-icon{
|
||||
margin: .2rem 0 .2rem 0;
|
||||
color: $yellow;
|
||||
}
|
||||
.volume-icon{
|
||||
font-family: "Fira Code Nerd Font";
|
||||
margin: 0rem .0rem 0rem -.6rem;
|
||||
color: $green;
|
||||
}
|
||||
scale trough {
|
||||
all: unset;
|
||||
background-color: $background;
|
||||
border-radius: 5px;
|
||||
min-height: 80px;
|
||||
min-width: 10px;
|
||||
margin: .3rem 0 .3rem 0;
|
||||
}
|
||||
.bribar trough highlight {
|
||||
background-color: $yellow;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.volbar trough highlight {
|
||||
background-color: $green;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
// Clock
|
||||
.time {
|
||||
font-family: Comic Mono;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
background-color: $black;
|
||||
color: $white;
|
||||
border-radius: 5px;
|
||||
padding: .7rem 0 .5rem 0;
|
||||
margin: .5rem 0 .5rem 0;
|
||||
}
|
||||
|
||||
.workspace-entry {
|
||||
margin: 5px;
|
||||
border-radius: 5px;
|
||||
padding: .1rem .2rem;
|
||||
border: solid 3px transparent;
|
||||
|
||||
&.occupied {
|
||||
background-color: $black;
|
||||
}
|
||||
|
||||
&.current {
|
||||
border: solid 3px transparent;
|
||||
background: #e67e22;
|
||||
}
|
||||
}
|
||||
|
||||
// Calendar
|
||||
.cal-box {
|
||||
background-color: $black;
|
||||
font-family: Comic Mono;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
|
||||
.cal-inner-box {
|
||||
padding: 1rem 1rem .2rem;
|
||||
|
||||
.cal {
|
||||
&.highlight {
|
||||
padding: 10rem;
|
||||
}
|
||||
|
||||
padding: .8rem .25rem 0rem;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
calendar:selected {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
calendar.header {
|
||||
color: $blue;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
calendar.button {
|
||||
color: $magenta;
|
||||
}
|
||||
|
||||
calendar.highlight {
|
||||
color: $magenta;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
calendar:indeterminate {
|
||||
color: $background;
|
||||
}
|
||||
|
||||
// Powermenu
|
||||
.powermenu {
|
||||
font-family: feather;
|
||||
font-size: 1.4em;
|
||||
font-weight: bold;
|
||||
}
|
||||
.button-bspres, .button-reb, .button-lock,
|
||||
.button-quit, .button-off{
|
||||
padding: .5rem .2rem .3rem .2rem;
|
||||
}
|
||||
.button-off{
|
||||
margin-bottom: .5rem;
|
||||
color: $red;
|
||||
}
|
||||
.button-bspres{
|
||||
color: $green;
|
||||
}
|
||||
.button-reb{
|
||||
color: $yellow
|
||||
}
|
||||
.button-quit{
|
||||
color: $magenta;
|
||||
}
|
||||
.button-lock{
|
||||
color: $blue;
|
||||
}
|
||||
222
user/programs/hyprland/files/eww/eww.yuck
Normal file
222
user/programs/hyprland/files/eww/eww.yuck
Normal file
@@ -0,0 +1,222 @@
|
||||
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
||||
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace")
|
||||
(defwidget workspaces []
|
||||
(eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces-widget"
|
||||
(box :space-evenly true :orientation "v"
|
||||
(for workspace in workspaces
|
||||
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
|
||||
(box :orientation "v" :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||
(label :text "${workspace.id}")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
;; Created by https://github.com/rxyhn
|
||||
;; Designed by https://github.com/rxyhn
|
||||
;; Maintaned by https://github.com/rxyhn
|
||||
|
||||
;; put path to aesthetic bar config files here ;;
|
||||
(defvar eww "/usr/bin/eww -c $HOME/.config/eww")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Widget Section's ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Launcher Widgets ;;
|
||||
(defwidget launcher []
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:spacing -15
|
||||
(button :class "launcher_icon"
|
||||
:onclick "scripts/popup launcher" "")))
|
||||
|
||||
;; Volume Widgets ;;
|
||||
(defwidget volum []
|
||||
(eventbox :onhover "${eww} update volum=true"
|
||||
:onhoverlost "${eww} update volum=false"
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:spacing "2"
|
||||
(revealer :transition "slideup"
|
||||
:reveal volum
|
||||
:duration "150ms"
|
||||
(scale :class "volbar"
|
||||
:value current-volume
|
||||
:orientation "v"
|
||||
:flipped true
|
||||
:tooltip "Volume: ${current-volume}%"
|
||||
:max 101
|
||||
:min 0
|
||||
:onchange "amixer sset Master {}%" ))
|
||||
(button :onclick "pavucontrol" :class "volume-icon" ""))))
|
||||
(defpoll current-volume :interval "1s" "~/.config/eww/scripts/getvol")
|
||||
(defvar volum false)
|
||||
|
||||
|
||||
;; Wifi Widgets ;;
|
||||
(defwidget wifi []
|
||||
(box :orientation "v"
|
||||
:tooltip wifi-name
|
||||
(button :onclick "scripts/popup wifi"
|
||||
:class "wifi-icon" wifi-icon)))
|
||||
(defpoll wifi-icon :interval "1s" "scripts/wifi icon")
|
||||
(defpoll wifi-name :interval "1s" "scripts/wifi name")
|
||||
|
||||
;; Brightness Widgets ;;
|
||||
(defwidget bright []
|
||||
(eventbox :onhover "${eww} update bright=true"
|
||||
:onhoverlost "${eww} update bright=false"
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:spacing 2
|
||||
(revealer :transition "slideup"
|
||||
:reveal bright
|
||||
:duration "550ms"
|
||||
(scale :class "bribar"
|
||||
:value current-brightness
|
||||
:tooltip "Brightness: ${current-brightness}%"
|
||||
:onchange "brightnessctl set {}%"
|
||||
:orientation "v"
|
||||
:flipped true
|
||||
:max 101
|
||||
:min 0))
|
||||
(label :class "brightness-icon"
|
||||
:text ""))))
|
||||
(defpoll current-brightness :interval "1s" "brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||
(defvar bright false)
|
||||
|
||||
;; Control Panel Widgets ;;
|
||||
(defwidget control []
|
||||
(box :orientation "v"
|
||||
:space-evenly false
|
||||
:class "control"
|
||||
(volum)(bright)(wifi)))
|
||||
|
||||
;; Clock Widgets ;;
|
||||
(defwidget time []
|
||||
(box :orientation "v"
|
||||
:class "time"
|
||||
:valign "end"
|
||||
(button :onclick "scripts/popup calendar"
|
||||
:class "time-hour" hour)
|
||||
(button :onclick "scripts/popup calendar"
|
||||
:class "time-min" min)))
|
||||
(defpoll hour :interval "1s" "date '+%H'")
|
||||
(defpoll min :interval "1s" "date '+%M'")
|
||||
|
||||
;; Calendar Widgets ;;
|
||||
(defwidget cal []
|
||||
(box :class "cal-box"
|
||||
:orientation "v"
|
||||
(box :class "cal-inner-box"
|
||||
(calendar :class "cal"
|
||||
:day calendar_day
|
||||
:month calendar_month
|
||||
:year calendar_year))))
|
||||
(defpoll calendar_day :interval "10h"
|
||||
"date '+%d'")
|
||||
(defpoll calendar_month :interval "10h"
|
||||
"scripts/calendar")
|
||||
(defpoll calendar_year :interval "10h"
|
||||
"date '+%Y'")
|
||||
|
||||
;; Powermenu Widgets ;;
|
||||
(defwidget power []
|
||||
(eventbox :onhover "${eww} update power=true"
|
||||
:onhoverlost "${eww} update power=false"
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:vexpand "false"
|
||||
:class "powermenu"
|
||||
(revealer :transition "slideup"
|
||||
:reveal power
|
||||
:duration "550ms"
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
|
||||
(button :class "button-bspres"
|
||||
:tooltip "BSPWM Restart"
|
||||
:onclick "bspc wm -r" "" )
|
||||
|
||||
(button :class "button-reb"
|
||||
:tooltip "Reboot"
|
||||
:onclick "reboot" "")
|
||||
|
||||
(button :class "button-quit"
|
||||
:tooltip "Logout"
|
||||
:onclick "killall bspwm" "")
|
||||
|
||||
(button :class "button-lock"
|
||||
:tooltip "Lock Screen"
|
||||
:onclick "betterlockscreen -l" "")))
|
||||
|
||||
(button :class "button-off"
|
||||
:tooltip "Shutdown"
|
||||
:onclick "shutdown now" ""))))
|
||||
(defvar power false)
|
||||
|
||||
;; Top Widgets ;;
|
||||
(defwidget top []
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:valign "start"
|
||||
(launcher)
|
||||
(workspaces)))
|
||||
|
||||
;; Bottom Widgets ;;
|
||||
(defwidget bottom []
|
||||
(box :orientation "v"
|
||||
:space-evenly false
|
||||
(time)
|
||||
(power)))
|
||||
|
||||
;; End Widgets ;;
|
||||
(defwidget end []
|
||||
(box :orientation "v"
|
||||
:space-evenly "false"
|
||||
:valign "end"
|
||||
:spacing 5
|
||||
(control)
|
||||
(bottom)))
|
||||
|
||||
;; Bar Widgets ;;
|
||||
(defwidget bar []
|
||||
(box :class "eww_bar"
|
||||
:orientation "v"
|
||||
:vexpand "false"
|
||||
:hexpand "false"
|
||||
(top)
|
||||
(end)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Window Section's ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Bar Windows ;;
|
||||
(defwindow bar
|
||||
:geometry (geometry :x "0"
|
||||
:y "0"
|
||||
:height "100%"
|
||||
:width "47px")
|
||||
:monitor 0
|
||||
:reserve (struts :distance "35px"
|
||||
:side "left")
|
||||
:wm-ignore false
|
||||
:hexpand "false"
|
||||
:vexpand "false"
|
||||
(bar))
|
||||
|
||||
;; Calendar Windows ;;
|
||||
(defwindow calendar
|
||||
:geometry (geometry :x "70px"
|
||||
:y "65%"
|
||||
:width "270px"
|
||||
:height "60px")
|
||||
(cal))
|
||||
|
||||
|
||||
|
||||
44
user/programs/hyprland/files/eww/scripts/battery
Executable file
44
user/programs/hyprland/files/eww/scripts/battery
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
|
||||
bat=/sys/class/power_supply/BAT0/
|
||||
per="$(cat "$bat/capacity")"
|
||||
|
||||
icon() {
|
||||
|
||||
[ $(cat "$bat/status") = Charging ] && echo "" && exit
|
||||
|
||||
if [ "$per" -gt "90" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "80" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "70" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "60" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "50" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "40" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "30" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "20" ]; then
|
||||
icon=""
|
||||
elif [ "$per" -gt "10" ]; then
|
||||
icon=""
|
||||
notify-send -u critical "Battery Low" "Connect Charger"
|
||||
elif [ "$per" -gt "0" ]; then
|
||||
icon=""
|
||||
notify-send -u critical "Battery Low" "Connect Charger"
|
||||
else
|
||||
echo && exit
|
||||
fi
|
||||
echo "$icon"
|
||||
}
|
||||
|
||||
percent() {
|
||||
echo $per
|
||||
}
|
||||
|
||||
[ "$1" = "icon" ] && icon && exit
|
||||
[ "$1" = "percent" ] && percent && exit
|
||||
exit
|
||||
21
user/programs/hyprland/files/eww/scripts/change-active-workspace
Executable file
21
user/programs/hyprland/files/eww/scripts/change-active-workspace
Executable file
@@ -0,0 +1,21 @@
|
||||
#! /bin/bash
|
||||
function clamp {
|
||||
min=$1
|
||||
max=$2
|
||||
val=$3
|
||||
python -c "print(max($min, min($val, $max)))"
|
||||
}
|
||||
|
||||
direction=$1
|
||||
current=$2
|
||||
if test "$direction" = "down"
|
||||
then
|
||||
target=$(clamp 1 10 $(($current+1)))
|
||||
echo "jumping to $target"
|
||||
hyprctl dispatch workspace $target
|
||||
elif test "$direction" = "up"
|
||||
then
|
||||
target=$(clamp 1 10 $(($current-1)))
|
||||
echo "jumping to $target"
|
||||
hyprctl dispatch workspace $target
|
||||
fi
|
||||
3
user/programs/hyprland/files/eww/scripts/get-active-workspace
Executable file
3
user/programs/hyprland/files/eww/scripts/get-active-workspace
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
hyprctl monitors -j | jq --raw-output .[0].activeWorkspace.id
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 grep '^workspace>>' | stdbuf -o0 awk -F '>>|,' '{print $2}'
|
||||
11
user/programs/hyprland/files/eww/scripts/get-workspaces
Executable file
11
user/programs/hyprland/files/eww/scripts/get-workspaces
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
spaces (){
|
||||
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
|
||||
}
|
||||
|
||||
spaces
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||
spaces
|
||||
done
|
||||
2
user/programs/hyprland/files/eww/scripts/getram
Executable file
2
user/programs/hyprland/files/eww/scripts/getram
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||
2
user/programs/hyprland/files/eww/scripts/getvol
Executable file
2
user/programs/hyprland/files/eww/scripts/getvol
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
amixer sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' | head -1
|
||||
13
user/programs/hyprland/files/eww/scripts/wifi
Executable file
13
user/programs/hyprland/files/eww/scripts/wifi
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
symbol() {
|
||||
[ $(cat /sys/class/net/w*/operstate) = down ] && echo && exit
|
||||
echo
|
||||
}
|
||||
|
||||
name() {
|
||||
nmcli | grep "^wlp" | sed 's/\ connected\ to\ /Connected to /g' | cut -d ':' -f2
|
||||
}
|
||||
|
||||
[ "$1" = "icon" ] && symbol && exit
|
||||
[ "$1" = "name" ] && name && exit
|
||||
62
user/programs/hyprland/files/hypr/binds.conf
Normal file
62
user/programs/hyprland/files/hypr/binds.conf
Normal file
@@ -0,0 +1,62 @@
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod SHIFT, escape, exec, systemctl suspend
|
||||
bind = $mainMod, return, exec, kitty
|
||||
bind = $mainMod, d, exec, wofi --show drun
|
||||
bind = $mainMod, v, exec, pavucontrol
|
||||
bind=SUPER,Q,killactive,
|
||||
bind=SUPERCONTROL,Q,exec,hyprctl kill
|
||||
bind=SUPER,F,fullscreen
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod SHIFT, return, exec, flatpak run org.mozilla.firefox
|
||||
bind = $mainMod, t, togglefloating,
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, j, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Audio controls
|
||||
bind=,XF86AudioMute,exec,~/.config/hypr/scripts/volume.sh mute
|
||||
bind=,XF86AudioLowerVolume,exec,~/.config/hypr/scripts/volume.sh down
|
||||
bind=,XF86AudioRaiseVolume,exec,~/.config/hypr/scripts/volume.sh up
|
||||
bind=,XF86AudioMicMute,exec,pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
|
||||
# Display brightness
|
||||
bindle=,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness.sh up # increase screen brightness
|
||||
bindle=,XF86MonBrightnessDown,exec,~/.config/hypr/scripts/brightness.sh down # decrease screen brightnes
|
||||
11
user/programs/hyprland/files/hypr/exec.conf
Normal file
11
user/programs/hyprland/files/hypr/exec.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
exec=mako
|
||||
exec-once=avizo-service
|
||||
exec-once=redshift -c ~/.config/redshift/config
|
||||
exec-once=kanshi
|
||||
exec-once=libinput-gestures
|
||||
exec-once=hyprpaper
|
||||
exec-once=~/.config/hypr/scripts/screensharing.sh
|
||||
exec-once=~/.config/hypr/scripts/idle.sh
|
||||
exec-once=~/.config/hypr/scripts/eww.sh
|
||||
exec-once /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
74
user/programs/hyprland/files/hypr/general.conf
Normal file
74
user/programs/hyprland/files/hypr/general.conf
Normal file
@@ -0,0 +1,74 @@
|
||||
general {
|
||||
sensitivity=1.00
|
||||
apply_sens_to_raw=1
|
||||
cursor_inactive_timeout=5
|
||||
layout=dwindle
|
||||
border_size=0
|
||||
col.active_border=0xffc0392b
|
||||
col.inactive_border=0x00292a37
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding=4
|
||||
#blur=1
|
||||
inactive_opacity = 0.8
|
||||
drop_shadow=0
|
||||
shadow_range=20
|
||||
col.shadow=0xffb072d1
|
||||
dim_inactive=1
|
||||
dim_strength=0.6
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe=1
|
||||
workspace_swipe_distance=400
|
||||
workspace_swipe_invert=1
|
||||
workspace_swipe_min_speed_to_force=30
|
||||
workspace_swipe_cancel_ratio=0.5
|
||||
workspace_swipe_create_new=0
|
||||
workspace_swipe_forever=1
|
||||
}
|
||||
|
||||
#Decoration section in theme file
|
||||
blurls=lockscreen
|
||||
|
||||
bezier=slow,0,0.85,0.3,1
|
||||
bezier=overshot,0.7,0.6,0.1,1.1
|
||||
bezier=bounce,1,1.6,0.1,0.85
|
||||
bezier=slingshot,1,-1,0.15,1.25
|
||||
bezier=nice,0,6.9,0.5,-4.20
|
||||
|
||||
animations {
|
||||
enabled=1
|
||||
animation=windows,1,4,overshot,slide
|
||||
animation=border,1,20,default
|
||||
animation=fade,1,5,overshot
|
||||
animation=workspaces,1,3,overshot,slidevert
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile=0 # enable pseudotiling on dwindle
|
||||
}
|
||||
|
||||
master {
|
||||
new_is_master=0
|
||||
new_on_top=0
|
||||
}
|
||||
|
||||
binds {
|
||||
workspace_back_and_forth=1
|
||||
allow_workspace_cycles=1
|
||||
pass_mouse_when_bound=0
|
||||
}
|
||||
|
||||
misc {
|
||||
#no_vfr=0
|
||||
enable_swallow=1
|
||||
swallow_regex=^(foot:kitty:Alacritty)$
|
||||
no_direct_scanout=1
|
||||
}
|
||||
|
||||
windowrule=float,pavucontrol
|
||||
windowrule=float,title:^(Firefox — Sharing Indicator)$
|
||||
windowrule=move 95% 95%,title:^(Firefox — Sharing Indicator)$
|
||||
windowrule=nofullscreenrequest,title:^(Firefox — Sharing Indicator)$
|
||||
18
user/programs/hyprland/files/hypr/hyprland.conf
Normal file
18
user/programs/hyprland/files/hypr/hyprland.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
monitor=,preferred,auto,auto
|
||||
monitor=DP-2,addreserved,0,0,50,0
|
||||
monitor=eDP-1,addreserved,0,0,50,0
|
||||
monitor=DP-2,preferred,auto,1
|
||||
monitor=DP-2,preferred,auto,1
|
||||
|
||||
#55a75e044c80
|
||||
|
||||
bindl=,switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable"
|
||||
bindl=,switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, prefered, auto, 1"
|
||||
|
||||
workspace=eDP-1,1
|
||||
workspace=DP-2,9
|
||||
|
||||
source=~/.config/hypr/general.conf
|
||||
source=~/.config/hypr/input.conf
|
||||
source=~/.config/hypr/exec.conf
|
||||
source=~/.config/hypr/binds.conf
|
||||
3
user/programs/hyprland/files/hypr/hyprpaper.conf
Normal file
3
user/programs/hyprland/files/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
preload = ~/wallpaper.jpg
|
||||
|
||||
wallpaper = ,~/wallpaper.jpg
|
||||
24
user/programs/hyprland/files/hypr/input.conf
Normal file
24
user/programs/hyprland/files/hypr/input.conf
Normal file
@@ -0,0 +1,24 @@
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = caps:swapescape
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
disable_while_typing=1
|
||||
natural_scroll=1
|
||||
clickfinger_behavior=1
|
||||
middle_button_emulation=0
|
||||
tap-to-click=1
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
device:at-translated-set-2-keyboard {
|
||||
kb_layout = dk
|
||||
kb_variant = nodeadkeys
|
||||
}
|
||||
14
user/programs/hyprland/files/hypr/scripts/brightness.sh
Executable file
14
user/programs/hyprland/files/hypr/scripts/brightness.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
down() {
|
||||
brightnessctl s '10%-'
|
||||
}
|
||||
|
||||
up() {
|
||||
brightnessctl s +10%
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
up) up;;
|
||||
down) down;;
|
||||
esac
|
||||
4
user/programs/hyprland/files/hypr/scripts/eww.sh
Executable file
4
user/programs/hyprland/files/hypr/scripts/eww.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
eww daemon
|
||||
eww open bar
|
||||
5
user/programs/hyprland/files/hypr/scripts/idle.sh
Executable file
5
user/programs/hyprland/files/hypr/scripts/idle.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
swayidle -w \
|
||||
before-sleep 'loginctl lock-session $XDG_SESSION_ID' \
|
||||
lock '~/.config/hypr/scripts/lock.sh'
|
||||
16
user/programs/hyprland/files/hypr/scripts/lock.sh
Executable file
16
user/programs/hyprland/files/hypr/scripts/lock.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
swaylock \
|
||||
--screenshots \
|
||||
--clock \
|
||||
--indicator-radius 200 \
|
||||
--indicator-thickness 8 \
|
||||
--datestr "%a %e.%m.%Y" --timestr "%k:%M" \
|
||||
--effect-scale 1 \
|
||||
--effect-blur 7x7 \
|
||||
--ring-color 000000 \
|
||||
--key-hl-color 880033 \
|
||||
--line-color 00000000 \
|
||||
--inside-color 00000066 \
|
||||
--separator-color 00000000 \
|
||||
--fade-in 0.6
|
||||
#--effect-vignette 0.5:0.5 \
|
||||
8
user/programs/hyprland/files/hypr/scripts/screensharing.sh
Executable file
8
user/programs/hyprland/files/hypr/scripts/screensharing.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
sleep 1
|
||||
killall xdg-desktop-portal-hyprland
|
||||
killall xdg-desktop-portal-wlr
|
||||
killall xdg-desktop-portal
|
||||
/usr/libexec/xdg-desktop-portal-hyprland &
|
||||
sleep 2
|
||||
/usr/lib/xdg-desktop-portal &
|
||||
36
user/programs/hyprland/files/hypr/scripts/volume.sh
Executable file
36
user/programs/hyprland/files/hypr/scripts/volume.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
down() {
|
||||
pamixer -u
|
||||
pamixer -d 5
|
||||
volume=$(pamixer --get-volume)
|
||||
[ $volume -gt 0 ] && volume=`expr $volume`
|
||||
prec=`echo "scale=2; $volume / 100" | bc`
|
||||
avizo-client --progress=$prec --time=0.5 --background="#222" --foreground="#f39c12"
|
||||
}
|
||||
|
||||
up() {
|
||||
pamixer -u
|
||||
pamixer -i 5
|
||||
volume=$(pamixer --get-volume)
|
||||
[ $volume -lt 100 ] && volume=`expr $volume`
|
||||
prec=`echo "scale=2; $volume / 100" | bc`
|
||||
avizo-client --progress=$prec --time=1
|
||||
}
|
||||
|
||||
mute() {
|
||||
muted="$(pamixer --get-mute)"
|
||||
if $muted; then
|
||||
pamixer -u
|
||||
notify-send "Unmuted"
|
||||
else
|
||||
pamixer -m
|
||||
notify-send "Muted"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
up) up;;
|
||||
down) down;;
|
||||
mute) mute;;
|
||||
esac
|
||||
13
user/programs/hyprland/files/wofi/INSTALL.md
Normal file
13
user/programs/hyprland/files/wofi/INSTALL.md
Normal file
@@ -0,0 +1,13 @@
|
||||
### [wofi](https://hg.sr.ht/~scoopta/wofi)
|
||||
|
||||
#### Install using Git
|
||||
|
||||
If you are a git user, you can install the theme and keep up to date by cloning the repo:
|
||||
|
||||
$ git clone https://github.com/dracula/wofi.git
|
||||
|
||||
#### Install manually
|
||||
|
||||
Download using the [GitHub .zip download](https://github.com/dracula/wofi/archive/master.zip) option and unzip them.
|
||||
Place `style.css` in your `~/.config/wofi` directory.
|
||||
|
||||
21
user/programs/hyprland/files/wofi/LICENSE
Normal file
21
user/programs/hyprland/files/wofi/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 Dracula Theme
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
27
user/programs/hyprland/files/wofi/README.md
Normal file
27
user/programs/hyprland/files/wofi/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Dracula for [wofi](https://hg.sr.ht/~scoopta/wofi)
|
||||
|
||||
> A dark theme for [wofi](https://hg.sr.ht/~scoopta/wofi).
|
||||
|
||||

|
||||
|
||||
## Install
|
||||
|
||||
All instructions can be found at [draculatheme.com/wofi](https://draculatheme.com/wofi).
|
||||
|
||||
## Team
|
||||
|
||||
This theme is maintained by the following person(s) and a bunch of [awesome contributors](https://github.com/dracula/wofi/graphs/contributors).
|
||||
|
||||
| [](https://github.com/elumbella) |
|
||||
| ------------------------------------------------------------------------------------------------------- |
|
||||
| [elumbella](https://github.com/elumbella) |
|
||||
|
||||
## Community
|
||||
|
||||
- [Twitter](https://twitter.com/draculatheme) - Best for getting updates about themes and new stuff.
|
||||
- [GitHub](https://github.com/dracula/dracula-theme/discussions) - Best for asking questions and discussing issues.
|
||||
- [Discord](https://draculatheme.com/discord-invite) - Best for hanging out with the community.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](./LICENSE)
|
||||
BIN
user/programs/hyprland/files/wofi/screenshot.png
Normal file
BIN
user/programs/hyprland/files/wofi/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
39
user/programs/hyprland/files/wofi/style.css
Normal file
39
user/programs/hyprland/files/wofi/style.css
Normal file
@@ -0,0 +1,39 @@
|
||||
window {
|
||||
margin: 0px;
|
||||
border: 1px solid #bd93f9;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
background-color: #44475a;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #44475a;
|
||||
}
|
||||
Reference in New Issue
Block a user