fix: adjust hyprland configs

This commit is contained in:
ryan4yin
2023-05-07 12:09:01 +08:00
parent 88faaa950c
commit 82f0248cf6
26 changed files with 318 additions and 475 deletions

View File

@@ -7,8 +7,6 @@ This repository is home to the nix code that builds my systems.
- fix wayland related problems
- fcitx5 input method - currently not work in vscode, and failed to add flypy input method
- status bar and other hyprland scripts
- some of them do not work
- [sops-nix](https://github.com/Mic92/sops-nix): secret management
- [devShell](https://github.com/numtide/devshell): manage development environments

6
flake.lock generated
View File

@@ -224,11 +224,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1683207485,
"narHash": "sha256-gs+PHt/y/XQB7S8+YyBLAM8LjgYpPZUVFQBwpFSmJro=",
"lastModified": 1683383741,
"narHash": "sha256-rAQSBnFGNKNomUUyVl+7v0tnp45677t4Ovlh9f57k6Q=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cc45a3f8c98e1c33ca996e3504adefbf660a72d1",
"rev": "adc7c6f1bbaa73cda26be2323353b63a05b42f61",
"type": "github"
},
"original": {

View File

@@ -0,0 +1,35 @@
{ lib, stdenvNoCC, fetchgit }:
stdenvNoCC.mkDerivation rec {
pname = "archcraft-font";
version = "2023-05-07";
src = fetchgit {
url = "https://github.com/archcraft-os/archcraft-packages.git";
rev = "88030ee6d2df80db958541b53bd3673e081720cf"; # git commit id
sparseCheckout = [ "archcraft-fonts/files/icon-fonts/archcraft.ttf" ]; # only fetch the feather.ttf file
# the sha256 is used to verify the integrity of the downloaded source, and alse cache the build result.
# so if you copy other package src's sha256, you will get a cached build result of that package, and all configs in this file will be ignored.
# specify sha256 to empty and build it, then an error will indicate the correct sha256
sha256 = "sha256-DrGN8lN4Yr1RTyCUZhJjzKgCuC0vTnSWjOKovNg3T/U=";
};
installPhase = ''
runHook preInstall
install -Dm644 archcraft-fonts/files/icon-fonts/archcraft.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/archcraft-os/archcraft-packages";
description = "Archcraft icon font";
version = version;
longDescription = ''Archcraft icon font'';
license = licenses.mit;
maintainers = [ maintainers.ryan4yin ];
platforms = platforms.all;
};
}

View File

@@ -1,16 +1,21 @@
{ lib, stdenvNoCC, fetchzip }:
{ lib, stdenvNoCC, fetchgit }:
stdenvNoCC.mkDerivation rec {
pname = "icomoon-feather-font";
version = "2023-05-06";
# 参考 https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ttf-icomoon-feather
src = fetchzip {
url = "https://github.com/adi1090x/polybar-themes/archive/47b66337a92a1afd2240ed7094ffcb039cc686cf.zip";
# sha256 generated by ` nix-prefetch-url --unpack http://...`
sha256 = "1dw7k0ds3z6nkqxi09pjgxl45xcfi2y0khrawxl96hcnawy3qbg8";
};
src = fetchgit {
url = "https://github.com/adi1090x/polybar-themes.git";
rev = "47b66337a92a1afd2240ed7094ffcb039cc686cf"; # git commit id
sparseCheckout = [ "fonts/feather.ttf" ]; # only fetch the feather.ttf file
# the sha256 is used to verify the integrity of the downloaded source, and alse cache the build result.
# so if you copy other package src's sha256, you will get a cached build result of that package, and all configs in this file will be ignored.
# specify sha256 to empty and build it, then an error will indicate the correct sha256
sha256 = "sha256-R+UpUFkXDrxKcX7ljLara+1B1rOMdKGZiLQq1/ojgP4=";
};
installPhase = ''
runHook preInstall

View File

@@ -18,9 +18,10 @@
with pkgs; [
# for flypy chinese input method
fcitx5-rime
# needed enable rime using configtool after installed
fcitx5-configtool
fcitx5-chinese-addons
fcitx5-mozc # japanese input method
# fcitx5-chinese-addons
# fcitx5-mozc # japanese input method
fcitx5-gtk # gtk im module
];
};

View File

@@ -9,44 +9,11 @@
# copy the scripts directory recursively
recursive = true;
};
home.file.".config/hypr/wallpapers/lockscreen.png".source = ../wallpapers/lockscreen.png;
home.file.".config/hypr/wallpapers/wallpaper.png".source = ../wallpapers/wallpaper.png;
# allow fontconfig to discover fonts and configurations installed through home.packages
fonts.fontconfig.enable = true;
home.packages =
let
icomoon-feather-font = pkgs.callPackage ./icomoon-feather-font.nix { };
in
with pkgs; [
icomoon-feather-font
waybar # for the status bar
swaybg # for setting the wallpaper
swayidle # for setting the idle timeout
swaylock # for locking the screen
wl-clipboard # for copying and pasting
wf-recorder # for screen recording
grim # for taking screenshots
slurp # for selecting a region to screenshot
# TODO replace by `flameshot gui --raw | wl-copy`
xfce.xfce4-appfinder # for the application launcher
wofi # for the application launcher
mako # for the notification daemon
light # for changing the screen brightness
yad # for the brightness popup
# 用于播放系统音效
mpd # for playing system sounds
mpc-cli # command-line mpd client
ncmpcpp # a mpd client with a UI
];
systemd.user.sessionVariables = {
"NIXOS_OZONE_WL" = "1"; # for any ozone-based browser & electron apps to run on wayland
"MOZ_ENABLE_WAYLAND" = "1"; # for firefox to run on wayland

View File

@@ -90,22 +90,9 @@ windowrule=move 0 0,wlogout
windowrule=size 100% 100%,wlogout
windowrule=animation slide,wlogout
#windowrule=move 69 420,abc
#windowrule=size 420 69,abc
#windowrule=tile,xyz
#windowrule=pseudo,abc
#windowrule=monitor 0,xyz
#windowrule=workspace 12,abc
#windowrule=opacity 1.0,abc
#windowrule=animation slide left,abc
#windowrule=rounding 10,abc
#-- Keybindings ----------------------------------------------------
$term = alacritty
$menu1 = xfce4-appfinder --collapsed
$menu2 = ~/.config/hypr/scripts/menu
$menu3 = xfce4-appfinder
$powermenu = ~/.config/hypr/scripts/powermenu
$app_launcher = ~/.config/hypr/scripts/menu
$volume = ~/.config/hypr/scripts/volume
$backlight = ~/.config/hypr/scripts/brightness
$screenshot = ~/.config/hypr/scripts/screenshot
@@ -113,39 +100,27 @@ $lockscreen = ~/.config/hypr/scripts/lockscreen
$wlogout = ~/.config/hypr/scripts/wlogout
$colorpicker = ~/.config/hypr/scripts/colorpicker
$files = thunar
$editor = geany
$editor = code # vscode
$browser = firefox
# -- Terminal --
bind=SUPER,Return,exec,$term
bind=SUPERSHIFT,Return,exec,$term -s
bind=SUPERALT,Return,exec,$term -f
bind=SUPER,T,exec,$term -F
# -- Apps --
bind=SUPERSHIFT,F,exec,$files
bind=SUPERSHIFT,E,exec,$editor
bind=SUPERSHIFT,W,exec,$browser
# -- Wofi --
bind=ALT,F1,exec,$menu1
bind=SUPER,D,exec,$menu2
bind=ALT,F3,exec,$menu3
#bind=SUPER,X,exec,$powermenu
bind=SUPER,D,exec,$app_launcher
# -- Hyprland --
bind=SUPER,Q,killactive,
bind=SUPER,C,killactive,
bind=CTRLALT,Delete,exit,
bind=SUPER,F,fullscreen,
bind=SUPER,Space,togglefloating,
bind=SUPER,S,pseudo,
# -- Misc --
bind=SUPER,N,exec,nm-connection-editor
bind=SUPER,N,exec,nm-connection-editor # need install network-manager-applet
bind=SUPER,P,exec,$colorpicker
bind=SUPER,X,exec,$wlogout
bind=CTRLALT,L,exec,$lockscreen
bind=SUPERSHIFT,X,exec,$wlogout
# -- Some nice mouse binds --
bindm=SUPER,mouse:272,movewindow
@@ -165,10 +140,8 @@ bind=,XF86AudioStop,exec,mpc stop
# -- Screenshots --
bind=,Print,exec,$screenshot --now
bind=SUPER,Print,exec,$screenshot --in5
bind=SHIFT,Print,exec,$screenshot --in10
bind=CTRL,Print,exec,$screenshot --win
bind=SUPERCTRL,Print,exec,$screenshot --area
bind=SUPER,Print,exec,$screenshot --win
bind=CTRL,Print,exec,$screenshot --area
# Focus
bind=SUPER,left,movefocus,l
@@ -201,16 +174,16 @@ bind=SUPER,9,workspace,9
bind=SUPER,0,workspace,10
# Send to Workspaces
bind=ALT,1,movetoworkspace,1
bind=ALT,2,movetoworkspace,2
bind=ALT,3,movetoworkspace,3
bind=ALT,4,movetoworkspace,4
bind=ALT,5,movetoworkspace,5
bind=ALT,6,movetoworkspace,6
bind=ALT,7,movetoworkspace,7
bind=ALT,8,movetoworkspace,8
bind=ALT,9,movetoworkspace,9
bind=ALT,0,movetoworkspace,10
bind=SUPERSHIFT,1,movetoworkspace,1
bind=SUPERSHIFT,2,movetoworkspace,2
bind=SUPERSHIFT,3,movetoworkspace,3
bind=SUPERSHIFT,4,movetoworkspace,4
bind=SUPERSHIFT,5,movetoworkspace,5
bind=SUPERSHIFT,6,movetoworkspace,6
bind=SUPERSHIFT,7,movetoworkspace,7
bind=SUPERSHIFT,8,movetoworkspace,8
bind=SUPERSHIFT,9,movetoworkspace,9
bind=SUPERSHIFT,0,movetoworkspace,10
bind=SUPER,mouse_down,workspace,e+1
bind=SUPER,mouse_up,workspace,e-1

View File

@@ -1,70 +1,10 @@
#!/usr/bin/env bash
# Background Image
IMAGE="$HOME/.config/hypr/wallpapers/lockscreen.png"
# Colors
bg='1e1e2e' bgl='313244' fg='d9e0ee'
red='f38ba8' green='a6e3a1' yellow='f9e2af'
blue='89b4fa' magenta='cba6f7' cyan='89dceb'
alpha='00000000'
# CMD
swaylock -f \
\
`# General` \
--ignore-empty-password \
--show-failed-attempts \
--hide-keyboard-layout \
--indicator-caps-lock \
\
`# Appearance` \
--color ${bg}E6 \
`#--image ${IMAGE} --scaling fill` \
--font 'JetBrainsMono Nerd Font' --font-size 18 \
\
`# Backspace Key` \
--key-hl-color ${green} \
--caps-lock-key-hl-color ${blue} \
--bs-hl-color ${red} \
--caps-lock-bs-hl-color ${red} \
\
`# Indicator` \
--indicator-radius 120 \
--indicator-thickness 10 \
\
`# Inside Circle Colors` \
--inside-color ${alpha} \
--inside-clear-color ${alpha} \
--inside-caps-lock-color ${alpha} \
--inside-ver-color ${blue} \
--inside-wrong-color ${red} \
\
`# Layout Colors` \
--layout-bg-color ${cyan} \
--layout-border-color ${cyan} \
--layout-text-color ${bg} \
\
`# Line Colors` \
--line-color ${bg} \
--line-clear-color ${red} \
--line-caps-lock-color ${bg} \
--line-ver-color ${bg} \
--line-wrong-color ${bg} \
\
`# Ring Colors` \
--ring-color ${cyan} \
--ring-clear-color ${bg} \
--ring-caps-lock-color ${magenta} \
--ring-ver-color ${blue} \
--ring-wrong-color ${red} \
\
`# Separator Color` \
--separator-color ${bg} \
\
`# Text Colors` \
--text-color ${fg} \
--text-clear-color ${fg} \
--text-caps-lock-color ${fg} \
--text-ver-color ${bg} \
--text-wrong-color ${bg}
# Times the screen off and puts it to background
swayidle \
timeout 300 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' &
# Locks the screen immediately
swaylock
# Kills last background task so idle timer doesn't keep running
kill %%

View File

@@ -1,83 +0,0 @@
#!/usr/bin/env bash
## Wofi Powermenu
## Files
CONFIG="$HOME/.config/hypr/wofi/config"
STYLE="$HOME/.config/hypr/wofi/style.css"
COLORS="$HOME/.config/hypr/wofi/colors"
## Wofi Command
wofi_command="wofi --show dmenu \
--conf ${CONFIG} --style ${STYLE} --color ${COLORS} \
--width=300 --height=165 \
--cache-file=/dev/null \
--hide-scroll --no-actions \
--define=matching=fuzzy"
uptime=$(uptime -p | sed -e 's/up //g')
## Entries
shutdown=" Shutdown"
reboot=" Restart"
lock=" Lock"
suspend=" Sleep"
logout=" Logout"
# Ask for confirmation
cdialog () {
yad --title='Confirm?' --borders=15 --center --fixed --undecorated --button=Yes:0 --button=No:1 --text="Are you sure?" --text-align=center
}
# Variable passed to rofi
open_menu () {
options="$lock\n$suspend\n$logout\n$reboot\n$shutdown"
chosen="$(echo -e "$options" | $wofi_command --prompt "UP - $uptime")"
case $chosen in
$shutdown)
cdialog
if [[ "$?" == 0 ]]; then
systemctl poweroff
else
exit
fi
;;
$reboot)
cdialog
if [[ "$?" == 0 ]]; then
systemctl reboot
else
exit
fi
;;
$lock)
~/.config/hypr/scripts/lockscreen
;;
$suspend)
cdialog
if [[ "$?" == 0 ]]; then
mpc -q pause
amixer set Master mute
~/.config/hypr/scripts/lockscreen
systemctl suspend
else
exit
fi
;;
$logout)
cdialog
if [[ "$?" == 0 ]]; then
kill -9 -1
else
exit
fi
;;
esac
}
if [[ ! $(pidof wofi) ]]; then
open_menu
else
pkill wofi
fi

View File

@@ -5,7 +5,7 @@
iDIR="$HOME/.config/hypr/mako/icons"
time=$(date +%Y-%m-%d-%H-%M-%S)
dir="$(xdg-user-dir PICTURES)/Screenshots"
dir="$(xdg-user-dir PICTURES)/Screenshots" # need
file="Screenshot_${time}_${RANDOM}.png"
# notify and view screenshot
@@ -20,32 +20,12 @@ notify_view () {
fi
}
# countdown
countdown () {
for sec in $(seq $1 -1 1); do
notify-send -h string:x-canonical-private-synchronous:shot-notify -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec"
sleep 1
done
}
# take shots
shotnow () {
cd ${dir} && grim - | tee "$file" | wl-copy
notify_view
}
shot5 () {
countdown '5'
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
notify_view
}
shot10 () {
countdown '10'
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
notify_view
}
shotwin () {
w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1)
w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g)
@@ -64,16 +44,12 @@ fi
if [[ "$1" == "--now" ]]; then
shotnow
elif [[ "$1" == "--in5" ]]; then
shot5
elif [[ "$1" == "--in10" ]]; then
shot10
elif [[ "$1" == "--win" ]]; then
shotwin
elif [[ "$1" == "--area" ]]; then
shotarea
elif [[ "$1" == "--win" ]]; then
shotwin
else
echo -e "Available Options : --now --in5 --in10 --win --area"
echo -e "Available Options : --now --win --area"
fi
exit 0

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env bash
## launch terminal with alt config
CONFIG="$HOME/.config/hypr/foot/foot.ini"
if [ "$1" == "-f" ]; then
foot --app-id='foot-float' --config="$CONFIG"
elif [ "$1" == "-F" ]; then
foot --fullscreen --app-id='foot-full' --font="Iosevka Nerd Font:size=14" --override=pad=35x35 --config="$CONFIG"
elif [ "$1" == "-s" ]; then
foot --app-id='foot-float' --config="$CONFIG" \
--window-size-pixels=$(slurp -b 1B1F28CC -c E06B74ff -s C778DD0D -w 2 -f "%wx%h")
else
foot --config="$CONFIG"
fi

View File

@@ -0,0 +1,120 @@
#!/usr/bin/env python
import subprocess
from pyquery import PyQuery # install using `pip install pyquery`
import json
# weather icons
weather_icons = {
"sunnyDay": "滛",
"clearNight": "望",
"cloudyFoggyDay": "",
"cloudyFoggyNight": "",
"rainyDay": "",
"rainyNight": "",
"snowyIcyDay": "",
"snowyIcyNight": "",
"severe": "",
"default": "",
}
# get location_id
# to get your own location_id, go to https://weather.com & search your location.
# once you choose your location, you can see the location_id in the URL(64 chars long hex string)
# Shenzen, Guangdong's location id: https://weather.com/en-IN/weather/today/l/7a4684e0789c881e79935986f2e9e5ab05b0104ac4310fd8818006dfb66092c3
location_id = "7a4684e0789c881e79935986f2e9e5ab05b0104ac4310fd8818006dfb66092c3"
# get html page
url = "https://weather.com/en-IN/weather/today/l/" + location_id
html_data = PyQuery(url=url)
# current temperature
temp = html_data("span[data-testid='TemperatureValue']").eq(0).text()
# print(temp)
# current status phrase
status = html_data("div[data-testid='wxPhrase']").text()
status = f"{status[:16]}.." if len(status) > 17 else status
# print(status)
# status code
status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2]
# print(status_code)
# status icon
icon = (
weather_icons[status_code]
if status_code in weather_icons
else weather_icons["default"]
)
# print(icon)
# temperature feels like
temp_feel = html_data(
"div[data-testid='FeelsLikeSection'] > span[data-testid='TemperatureValue']"
).text()
temp_feel_text = f"Feels like {temp_feel}c"
# print(temp_feel_text)
# min-max temperature
temp_min = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(0)
.text()
)
temp_max = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(1)
.text()
)
temp_min_max = f" {temp_min}\t\t {temp_max}"
# print(temp_min_max)
# wind speed
wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1]
wind_text = f"煮 {wind_speed}"
# print(wind_text)
# humidity
humidity = html_data("span[data-testid='PercentageValue']").text()
humidity_text = f" {humidity}"
# print(humidity_text)
# visibility
visbility = html_data("span[data-testid='VisibilityValue']").text()
visbility_text = f" {visbility}"
# print(visbility_text)
# air quality index
air_quality_index = html_data("text[data-testid='DonutChartValue']").text()
# print(air_quality_index)
# hourly rain prediction
prediction = html_data("section[aria-label='Hourly Forecast']")(
"div[data-testid='SegmentPrecipPercentage'] > span"
).text()
prediction = prediction.replace("Chance of Rain", "")
prediction = f"\n\n  (hourly) {prediction}" if len(prediction) > 0 else prediction
# print(prediction)
# tooltip text
tooltip_text = str.format(
"\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}",
f'<span size="xx-large">{temp}</span>',
f"<big>{icon}</big>",
f"<big>{status}</big>",
f"<small>{temp_feel_text}</small>",
f"<big>{temp_min_max}</big>",
f"{wind_text}\t{humidity_text}",
f"{visbility_text}\tAQI {air_quality_index}",
f"<i>{prediction}</i>",
)
# print waybar module data
out_data = {
"text": f"{icon} {temp}",
"alt": status,
"tooltip": tooltip_text,
"class": status_code,
}
print(json.dumps(out_data))

View File

@@ -1,79 +0,0 @@
#!/usr/bin/env bash
cachedir=~/.cache/rbn
cachefile=${0##*/}-$1
if [ ! -d $cachedir ]; then
mkdir -p $cachedir
fi
if [ ! -f $cachedir/$cachefile ]; then
touch $cachedir/$cachefile
fi
# Save current IFS
SAVEIFS=$IFS
# Change IFS to new line.
IFS=$'\n'
cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile")))
if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then
data=($(curl -s https://en.wttr.in/$1\?0qnT 2>&1))
echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile
echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
fi
weather=($(cat $cachedir/$cachefile))
# Restore IFSClear
IFS=$SAVEIFS
temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]])+\.\./\1 to /g')
#echo ${weather[1]##*,}
# https://fontawesome.com/icons?s=solid&c=weather
case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in
"clear" | "sunny")
condition=""
;;
"partly cloudy")
condition="杖"
;;
"cloudy")
condition=""
;;
"overcast")
condition=""
;;
"mist" | "fog" | "freezing fog")
condition=""
;;
"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "rain")
condition=""
;;
"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower")
condition=""
;;
"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers")
condition="ﭽ"
;;
"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers")
condition="流"
;;
"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers")
condition="ﰕ"
;;
"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder")
condition=""
;;
*)
condition=""
echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
;;
esac
#echo $temp $condition
echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"

View File

@@ -7,11 +7,10 @@ STYLE="$HOME/.config/hypr/wlogout/style.css"
if [[ ! $(pidof wlogout) ]]; then
wlogout --layout ${LAYOUT} --css ${STYLE} \
--buttons-per-row 5 \
--column-spacing 50 \
--row-spacing 50 \
--margin-top 390 \
--margin-bottom 390 \
--column-spacing 20 \
--row-spacing 20 \
--margin-top 200 \
--margin-bottom 200 \
--margin-left 150 \
--margin-right 150
else

View File

@@ -111,7 +111,6 @@
"interval": 60,
"align": 0,
"rotate": 0,
//"timezone": "America/New_York",
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M}",
"format-alt": " {:%a %b %d, %G}"
@@ -128,7 +127,7 @@
"on-click": "$HOME/.config/hypr/scripts/menu",
},
"custom/power": {
"format": "",
"format": "",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/wlogout",
},
@@ -179,13 +178,13 @@
},
// weather-custom
"custom/weather": {
"format": "{}",
"format-alt": "{alt}: {}",
// "format": "{}",
// "format-alt": "{alt}: {}",
"format-alt-click": "click-right",
"interval": 1800,
"interval": 300,
"return-type": "json",
"exec": "~/.config/hypr/scripts/weather.sh",
"exec-if": "ping wttr.in -c1"
"exec": "~/.config/hypr/scripts/weather",
// "on-click": "xdg-open https://weather.com/en-IN/weather/today/l/$(location_id)"
},
// waybar-pulseaudio
"pulseaudio": {

View File

@@ -159,13 +159,6 @@ window#waybar.hidden {
font-size: 12px;
}
#custom-weather {
background-color: #cba6f7;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
}
/** Common style **/
#backlight,
#battery,
@@ -181,4 +174,43 @@ window#waybar.hidden {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
}
/** ********** Weather ********** **/
#custom-weather {
background-color: #5d388b;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
}
#custom-weather.severe {
color: #eb937d;
}
#custom-weather.sunnyDay {
color: #c2ca76;
}
#custom-weather.clearNight {
color: #2b2b2a;
}
#custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight {
color: #c2ddda;
}
#custom-weather.rainyDay, #custom-weather.rainyNight {
color: #5aaca5;
}
#custom-weather.showyIcyDay, #custom-weather.snowyIcyNight {
color: #d6e7e5;
}
#custom-weather.default {
color: #dbd9d8;
}

View File

@@ -1,50 +0,0 @@
#!/usr/bin/env bash
## wlogout actions
# Ask for confirmation
cdialog () {
yad --title='Confirm?' --borders=15 --center --fixed --undecorated --button=Yes:0 --button=No:1 --text="Are you sure?" --text-align=center
}
if [[ "$1" == '--shutdown' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl poweroff
else
exit
fi
elif [[ "$1" == '--reboot' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl reboot
else
exit
fi
elif [[ "$1" == '--hibernate' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl hibernate
else
exit
fi
elif [[ "$1" == '--lock' ]]; then
~/.config/hypr/scripts/lockscreen
elif [[ "$1" == '--suspend' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
mpc -q pause
amixer set Master mute
~/.config/hypr/scripts/lockscreen
systemctl suspend
else
exit
fi
elif [[ "$1" == '--logout' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
kill -9 -1
else
exit
fi
fi

View File

@@ -1,30 +1,36 @@
{
"label" : "suspend",
"text" : "Suspend",
"action" : "~/.config/hypr/wlogout/actions --suspend",
"keybind" : "u"
}
{
"label" : "logout",
"text" : "Logout",
"action" : "~/.config/hypr/wlogout/actions --logout",
"keybind" : "e"
}
{
"label" : "lock",
"action" : "~/.config/hypr/scripts/lockscreen",
"text" : "Lock",
"action" : "~/.config/hypr/wlogout/actions --lock",
"keybind" : "l"
}
{
"label" : "reboot",
"text" : "Reboot",
"action" : "~/.config/hypr/wlogout/actions --reboot",
"keybind" : "r"
"label" : "hibernate",
"action" : "systemctl hibernate",
"text" : "Hibernate",
"keybind" : "h"
}
{
"label" : "logout",
"action" : "loginctl terminate-user $USER",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown",
"action" : "~/.config/hypr/wlogout/actions --shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
}

View File

@@ -17,6 +17,7 @@
# chrome wayland support was broken on nixos-unstable branch, so fallback to stable branch for now
# https://github.com/swaywm/sway/issues/7562
google-chrome
vscode
];
# programs = {

View File

@@ -38,9 +38,6 @@
# cloud provider
awscli
# python
conda
# C
clang-tools
clang-analyzer

View File

@@ -9,7 +9,6 @@
./git.nix
./media.nix
./nixos-cn.nix
./vscode.nix
./xdg.nix
];
}

View File

@@ -1,17 +0,0 @@
{
config,
pkgs,
home-manager,
nix-vscode-extensions,
...
}:
{
programs.vscode = {
enable = true;
# let vscode sync and update its configuration & extensions across devices, using github account.
# userSettings = {};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

View File

@@ -34,6 +34,7 @@
nvidiaPatches = true;
};
programs.light.enable = true; # monitor backlight control
# thunar file manager(part of xfce) related options
@@ -44,6 +45,32 @@
services.gvfs.enable = true; # Mount, trash, and other functionalities
services.tumbler.enable = true; # Thumbnail support for images
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
waybar # the status bar
swaybg # the wallpaper
swayidle # the idle timeout
swaylock # locking the screen
wlogout # logout menu
wl-clipboard # copying and pasting
wf-recorder # creen recording
grim # taking screenshots
slurp # selecting a region to screenshot
# TODO replace by `flameshot gui --raw | wl-copy`
wofi # A rofi inspired launcher for wlroots compositors such as sway/hyprland
mako # the notification daemon, the same as dunst
yad # a fork of zenity, for creating dialogs
# 用于播放系统音效
mpd # for playing system sounds
mpc-cli # command-line mpd client
ncmpcpp # a mpd client with a UI
networkmanagerapplet # provide GUI app: nm-connection-editor
];
xdg.portal = {
enable = true;
@@ -51,8 +78,8 @@
xdgOpenUsePortal = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr # for wlroots based compositors
xdg-desktop-portal-gtk # for gtk
# xdg-desktop-portal-kde # for kde
# xdg-desktop-portal-gtk # for gtk
];
};

View File

@@ -34,7 +34,7 @@
arandr # screen layout manager
dex # autostart applications
xbindkeys # bind keys to commands
xorg.xbacklight # control screen brightness
xorg.xbacklight # control screen brightness, the same as light
xorg.xdpyinfo # get screen information
sysstat # get system information
];

View File

@@ -26,6 +26,7 @@
services.printing.enable = true;
# all fonts are linked to /nix/var/nix/profiles/system/sw/share/X11/fonts
fonts = {
# use fonts specified by user rather than default ones
enableDefaultFonts = false;
@@ -48,6 +49,9 @@
"Iosevka"
];})
(pkgs.callPackage ../fonts/icomoon-feather-icon-font.nix { })
(pkgs.callPackage ../fonts/archcraft-icon-font.nix { })
];
# user defined fonts
@@ -112,6 +116,14 @@
xz
zstd
(python3.withPackages(ps: with ps; [
ipython
pandas
requests
pyquery
]))
conda
# video/audio tools
libva-utils
nvtop
@@ -127,6 +139,7 @@
neofetch
xfce.thunar # xfce4's file manager
nnn # terminal file manager
xdg-user-dirs
];
@@ -171,7 +184,7 @@
users.users.ryan = {
isNormalUser = true;
description = "ryan";
extraGroups = [ "networkmanager" "wheel" "docker" "wireshark" ];
extraGroups = [ "users" "networkmanager" "wheel" "docker" "wireshark" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJx3Sk20pLL1b2PPKZey2oTyioODrErq83xG78YpFBoj admin@ryan-MBP"
];