Restructure dotfiles : suppression outils abandonnés, migration sway→hyprland, neomutt→aerc
- Supprimés : fish, qtile, X, vim, sway, neomutt (+ package systemd vide) - Nouveau package hyprland : waybar, rofi, mako, gammastep, rofi-pass, systemd (mail+kanata+mpd+voxtype), script rofi - Nouveau package aerc : config aerc + infra mail (msmtp, khard, vdirsyncer) migrée depuis neomutt - Nettoyage .gitignore : suppression entrées neomutt/vim, ajout patterns moc/mpd/vifm manquants, vdirsyncer/status pour aerc - Mise à jour des configs trackées modifiées (nvim, zsh, tmux, git, newsboat) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
58
hyprland/.config/gammastep/config.ini
Normal file
58
hyprland/.config/gammastep/config.ini
Normal file
@@ -0,0 +1,58 @@
|
||||
; Global settings
|
||||
[general]
|
||||
; Set the day and night screen temperatures
|
||||
temp-day=5700
|
||||
temp-night=4000
|
||||
; Disable the smooth fade between temperatures when Redshift starts and stops.
|
||||
; 0 will cause an immediate change between screen temperatures.
|
||||
; 1 will gradually apply the new screen temperature over a couple of seconds.
|
||||
fade=1
|
||||
; Solar elevation thresholds.
|
||||
; By default, Redshift will use the current elevation of the sun to determine
|
||||
; whether it is daytime, night or in transition (dawn/dusk). When the sun is
|
||||
; above the degrees specified with elevation-high it is considered daytime and
|
||||
; below elevation-low it is considered night.
|
||||
;elevation-high=3
|
||||
;elevation-low=-6
|
||||
; Custom dawn/dusk intervals.
|
||||
; Instead of using the solar elevation, the time intervals of dawn and dusk
|
||||
; can be specified manually. The times must be specified as HH:MM in 24-hour
|
||||
; format.
|
||||
;dawn-time=6:00-7:45
|
||||
;dusk-time=18:35-20:15
|
||||
; Set the screen brightness. Default is 1.0.
|
||||
; brightness=0.8
|
||||
; It is also possible to use different settings for day and night
|
||||
; since version 1.8.
|
||||
brightness-day=1
|
||||
brightness-night=0.7
|
||||
; Set the screen gamma (for all colors, or each color channel
|
||||
; individually)
|
||||
; gamma=0.8
|
||||
;gamma=0.8:0.7:0.8
|
||||
; This can also be set individually for day and night since
|
||||
; version 1.10.
|
||||
gamma-day=0.8:0.7:0.8
|
||||
gamma-night=0.7
|
||||
; Set the location-provider: 'geoclue2', 'manual'.
|
||||
; The location provider settings are in a different section.
|
||||
location-provider=manual
|
||||
; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'.
|
||||
; 'randr' is the preferred X11 method, 'vidmode' is an older API
|
||||
; that works in some cases when 'randr' does not.
|
||||
; The adjustment method settings are in a different section.
|
||||
adjustment-method=wayland
|
||||
; Configuration of the location-provider:
|
||||
; type 'gammastep -l PROVIDER:help' to see the settings.
|
||||
; ex: 'gammastep -l manual:help'
|
||||
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
|
||||
; are negative numbers.
|
||||
[manual]
|
||||
lat=46.2
|
||||
lon=5.7
|
||||
; Configuration of the adjustment-method
|
||||
; type 'gammastep -m METHOD:help' to see the settings.
|
||||
; ex: 'gammastep -m randr:help'
|
||||
; In this example, randr is configured to adjust only screen 0.
|
||||
; Note that the numbering starts from 0, so this is actually the first screen.
|
||||
; If this option is not specified, Redshift will try to adjust _all_ screens.
|
||||
23
hyprland/.config/mako/config
Normal file
23
hyprland/.config/mako/config
Normal file
@@ -0,0 +1,23 @@
|
||||
sort=-time
|
||||
layer=overlay
|
||||
background-color=#282828
|
||||
width=300
|
||||
height=110
|
||||
border-size=2
|
||||
border-color=#88c0d0
|
||||
border-radius=5
|
||||
icons=0
|
||||
max-icon-size=64
|
||||
default-timeout=5000
|
||||
ignore-timeout=1
|
||||
font=monospace 10
|
||||
|
||||
[urgency=low]
|
||||
border-color=#ebdbb2
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#d65d0e
|
||||
|
||||
[urgency=high]
|
||||
border-color=#cc241d
|
||||
default-timeout=0
|
||||
127
hyprland/.config/rofi-pass/config
Normal file
127
hyprland/.config/rofi-pass/config
Normal file
@@ -0,0 +1,127 @@
|
||||
# permanently set alternative root dir. Use ":" to separate multiple roots
|
||||
# which can be switched at runtime with shift+left/right
|
||||
# root=/path/to/root
|
||||
|
||||
# rofi command. Make sure to have "$@" as last argument
|
||||
_rofi () {
|
||||
rofi -i -no-auto-select "$@"
|
||||
}
|
||||
|
||||
# default command to generate passwords
|
||||
_pwgen () {
|
||||
pwgen -y "$@"
|
||||
}
|
||||
|
||||
# image viewer to display qrcode of selected entry
|
||||
# qrencode is needed to generate the image and a viewer
|
||||
# that can read from pipes. Known viewers to work are feh and display
|
||||
_image_viewer () {
|
||||
# feh -
|
||||
display
|
||||
}
|
||||
|
||||
# It is possible to use wl-copy and wl-paste from wl-clipboard
|
||||
# Just uncomment the lines with wl-copy and wl-paste
|
||||
# and comment the xclip lines
|
||||
#
|
||||
_clip_in_primary() {
|
||||
# xclip
|
||||
wl-copy-p
|
||||
}
|
||||
|
||||
_clip_in_clipboard() {
|
||||
#xclip -selection clipboard
|
||||
wl-copy
|
||||
}
|
||||
|
||||
_clip_out_primary() {
|
||||
# xclip -o
|
||||
wl-paste -p
|
||||
}
|
||||
|
||||
_clip_out_clipboard() {
|
||||
# xclip --selection clipboard -o
|
||||
wl-paste
|
||||
}
|
||||
|
||||
|
||||
# xdotool needs the keyboard layout to be set using setxkbmap
|
||||
# You can do this in your autostart scripts (e.g. xinitrc)
|
||||
|
||||
# If for some reason, you cannot do this, you can set the command here.
|
||||
# and set fix_layout to true
|
||||
fix_layout=true
|
||||
|
||||
layout_cmd () {
|
||||
setxkbmap fr
|
||||
}
|
||||
|
||||
# fields to be used
|
||||
URL_field='url'
|
||||
USERNAME_field='user'
|
||||
AUTOTYPE_field='autotype'
|
||||
|
||||
# delay to be used for :delay keyword
|
||||
delay=2
|
||||
|
||||
# rofi-pass needs to close itself before it can type passwords. Set delay here.
|
||||
wait=0.2
|
||||
|
||||
# delay between keypresses when typing (in ms)
|
||||
xdotool_delay=12
|
||||
|
||||
## Programs to be used
|
||||
# Editor
|
||||
EDITOR='gvim -f'
|
||||
|
||||
# Browser
|
||||
BROWSER='xdg-open'
|
||||
|
||||
## Misc settings
|
||||
|
||||
default_do='menu' # menu, autotype, copyPass, typeUser, typePass, copyUser, copyUrl, viewEntry, typeMenu, actionMenu, copyMenu, openUrl
|
||||
auto_enter='false'
|
||||
notify='false'
|
||||
default_autotype='user :tab pass'
|
||||
|
||||
# color of the help messages
|
||||
# leave empty for autodetection
|
||||
help_color="#4872FF"
|
||||
|
||||
# Clipboard settings
|
||||
# Possible options: primary, clipboard, both
|
||||
clip=primary
|
||||
|
||||
# Seconds before clearing pass from clipboard
|
||||
clip_clear=45
|
||||
|
||||
## Options for generating new password entries
|
||||
|
||||
# open new password entries in editor
|
||||
edit_new_pass="true"
|
||||
|
||||
# default_user is also used for password files that have no user field.
|
||||
default_user=:filename
|
||||
#default_user="${ROFI_PASS_DEFAULT_USER-$(whoami)}"
|
||||
#default_user2=mary_ann
|
||||
#password_length=12
|
||||
|
||||
# Custom Keybindings
|
||||
autotype="Alt+1"
|
||||
type_user="Alt+2"
|
||||
type_pass="Alt+3"
|
||||
open_url="Alt+4"
|
||||
copy_name="Alt+u"
|
||||
copy_url="Alt+l"
|
||||
copy_pass="Alt+p"
|
||||
show="Alt+o"
|
||||
copy_entry="Alt+2"
|
||||
type_entry="Alt+1"
|
||||
copy_menu="Alt+c"
|
||||
action_menu="Alt+a"
|
||||
type_menu="Alt+t"
|
||||
help="Alt+h"
|
||||
switch="Alt+x"
|
||||
|
||||
clipboard_backend=wl-clipboard
|
||||
backend=wtype
|
||||
18
hyprland/.config/rofi/config.rasi
Normal file
18
hyprland/.config/rofi/config.rasi
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
configuration {
|
||||
terminal: "kitty";
|
||||
modi: "combi,window,drun";
|
||||
combi-modi: "drun,window";
|
||||
font: "Noto Sans Bold 10";
|
||||
show-icons: true;
|
||||
icon-theme: "Tela circle dark";
|
||||
combi-hide-mode-prefix: true;
|
||||
drun-show-actions: true;
|
||||
drun-display-format: "{name}";
|
||||
disable-history: false;
|
||||
fullscreen: false;
|
||||
hide-scrollbar: true;
|
||||
sidebar-mode: false;
|
||||
auto-select: false;
|
||||
}
|
||||
@theme "/home/lafrite/.local/share/rofi/rofi-themes-collection/themes/spotlight-dark.rasi"
|
||||
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/kanata.service
|
||||
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/msmtp-queue.path
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/user/pipewire.service
|
||||
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/voxtype.service
|
||||
14
hyprland/.config/systemd/user/kanata.service
Normal file
14
hyprland/.config/systemd/user/kanata.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Kanata keyboard remapper
|
||||
Documentation=https://github.com/jtroo/kanata
|
||||
|
||||
[Service]
|
||||
Environment=PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin
|
||||
Environment=DISPLAY=:0
|
||||
Environment=HOME=/home/lafrite/
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/kanata --cfg /home/lafrite/scripts/Cloned/arsenik/kanata/kanata.kbd
|
||||
Restart=no
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
9
hyprland/.config/systemd/user/mbsync.service
Normal file
9
hyprland/.config/systemd/user/mbsync.service
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=mbsync mail sync
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/mbsync -a
|
||||
ExecStartPost=/usr/bin/notmuch new
|
||||
ExecStartPost=/bin/sh -c 'date > ~/.local/share/mbsync/last-sync'
|
||||
9
hyprland/.config/systemd/user/mbsync.timer
Normal file
9
hyprland/.config/systemd/user/mbsync.timer
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=mbsync every 5 minutes
|
||||
|
||||
[Timer]
|
||||
OnBootSec=1m
|
||||
OnUnitActiveSec=5m
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
18
hyprland/.config/systemd/user/mpd.service
Normal file
18
hyprland/.config/systemd/user/mpd.service
Normal file
@@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Music Player Daemon
|
||||
Documentation=man:mpd(1) man:mpd.conf(5)
|
||||
After=network.target sound.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=/usr/bin/mpd --systemd %E/mpd/mdp.conf
|
||||
|
||||
#WatchdogSec=120
|
||||
|
||||
LimitRTPRIO=40
|
||||
LimitRTTIME=infinity
|
||||
LimitMEMLOCK=64M
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
Also=mpd.socket
|
||||
9
hyprland/.config/systemd/user/mpd.socket
Normal file
9
hyprland/.config/systemd/user/mpd.socket
Normal file
@@ -0,0 +1,9 @@
|
||||
[Socket]
|
||||
ListenStream=%t/mpd/socket
|
||||
ListenStream=6600
|
||||
Backlog=5
|
||||
KeepAlive=true
|
||||
PassCredentials=true
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
9
hyprland/.config/systemd/user/msmtp-queue.path
Normal file
9
hyprland/.config/systemd/user/msmtp-queue.path
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Watch msmtp queue and flush immediately
|
||||
|
||||
[Path]
|
||||
PathChanged=%h/.msmtp/queue
|
||||
Unit=msmtp-queue.service
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
7
hyprland/.config/systemd/user/msmtp-queue.service
Normal file
7
hyprland/.config/systemd/user/msmtp-queue.service
Normal file
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Flush msmtp queue
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/msmtp-queue --run
|
||||
ExecStartPost=/usr/bin/maildir-rank-addr
|
||||
9
hyprland/.config/systemd/user/msmtp-queue.timer
Normal file
9
hyprland/.config/systemd/user/msmtp-queue.timer
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Flush msmtp queue every 10 minutes
|
||||
|
||||
[Timer]
|
||||
OnBootSec=1m
|
||||
OnUnitActiveSec=10m
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
1
hyprland/.config/systemd/user/sockets.target.wants/mpd.socket
Symbolic link
1
hyprland/.config/systemd/user/sockets.target.wants/mpd.socket
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/mpd.socket
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/user/pipewire.socket
|
||||
1
hyprland/.config/systemd/user/timers.target.wants/mbsync.timer
Symbolic link
1
hyprland/.config/systemd/user/timers.target.wants/mbsync.timer
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/mbsync.timer
|
||||
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/msmtp-queue.timer
|
||||
@@ -0,0 +1 @@
|
||||
/home/lafrite/.config/systemd/user/vdirsyncer.timer
|
||||
7
hyprland/.config/systemd/user/vdirsyncer.service
Normal file
7
hyprland/.config/systemd/user/vdirsyncer.service
Normal file
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=vdirsyncer sync
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/vdirsyncer sync
|
||||
9
hyprland/.config/systemd/user/vdirsyncer.timer
Normal file
9
hyprland/.config/systemd/user/vdirsyncer.timer
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=vdirsyncer sync every 15 minutes
|
||||
|
||||
[Timer]
|
||||
OnBootSec=2m
|
||||
OnUnitActiveSec=15m
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
17
hyprland/.config/systemd/user/voxtype.service
Normal file
17
hyprland/.config/systemd/user/voxtype.service
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Voxtype push-to-talk voice-to-text daemon
|
||||
Documentation=https://voxtype.io
|
||||
PartOf=graphical-session.target
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/voxtype daemon
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
# Ensure we have access to the display
|
||||
Environment=XDG_RUNTIME_DIR=%t
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
111
hyprland/.config/waybar/config
Normal file
111
hyprland/.config/waybar/config
Normal file
@@ -0,0 +1,111 @@
|
||||
[{
|
||||
"layer": "top",
|
||||
"output": "eDP-1",
|
||||
"height": 30,
|
||||
"modules-left": ["sway/mode","sway/window" ],
|
||||
"modules-center": ["sway/workspaces" ],
|
||||
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||
"sway/window": {
|
||||
"max-length": 50
|
||||
},
|
||||
"sway/workspaces": {
|
||||
"all-outputs": true
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a, %d. %b %H:%M}",
|
||||
"on-click": "gnome-calendar"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
}
|
||||
},
|
||||
{
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"output": "DP-2",
|
||||
"height": 30,
|
||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||
"modules-center": ["sway/window"],
|
||||
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||
"sway/window": {
|
||||
"max-length": 50
|
||||
},
|
||||
"sway/workspaces": {
|
||||
"all-outputs": true
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a, %d. %b %H:%M}",
|
||||
"on-click": "gnome-calendar"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
}
|
||||
}]
|
||||
72
hyprland/.config/waybar/config_hyprland
Normal file
72
hyprland/.config/waybar/config_hyprland
Normal file
@@ -0,0 +1,72 @@
|
||||
[{
|
||||
"layer": "top",
|
||||
"output": ["eDP-1", "DVI-I-1"],
|
||||
"height": 30,
|
||||
"spacing": 0,
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": [],
|
||||
"modules-right": ["mpris", "pulseaudio", "battery", "tray", "clock"],
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
"disable-scroll": true,
|
||||
"all-outputs": true,
|
||||
"show-special": false,
|
||||
"persistent-workspaces": {
|
||||
"*": [1, 2, 3, 4]
|
||||
},
|
||||
"format": "{id}"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a %d %b %H:%M}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"on-click": "gnome-calendar"
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon}",
|
||||
"format-bluetooth-muted": " {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 22,
|
||||
"spacing": 10
|
||||
},
|
||||
"mpris": {
|
||||
"format": "{player_icon} ",
|
||||
"format-paused": "{player_icon} ",
|
||||
"format-stopped": "",
|
||||
"tooltip-format": "{title} — {artist}",
|
||||
"player-icons": {
|
||||
"default": "",
|
||||
"spotify": "",
|
||||
"firefox": "",
|
||||
"chromium": "",
|
||||
"mpv": "",
|
||||
"vlc": ""
|
||||
},
|
||||
"on-click": "playerctl play-pause",
|
||||
"on-scroll-up": "playerctl next",
|
||||
"on-scroll-down": "playerctl previous"
|
||||
}
|
||||
}]
|
||||
23
hyprland/.config/waybar/gruvbox.css
Normal file
23
hyprland/.config/waybar/gruvbox.css
Normal file
@@ -0,0 +1,23 @@
|
||||
@define-color background #282828;
|
||||
@define-color foreground #ebdbb2;
|
||||
@define-color black #282828;
|
||||
@define-color red #cc241d;
|
||||
@define-color green #98971a;
|
||||
@define-color yellow #d79921;
|
||||
@define-color blue #458588;
|
||||
@define-color magenta #b16286;
|
||||
@define-color cyan #689d6a;
|
||||
@define-color white #a89984;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color orange #d65d0e;
|
||||
|
||||
@define-color magenta_b #d3869b;
|
||||
@define-color cyan_b #8ec07c;
|
||||
@define-color yellow_b #fabd2f;
|
||||
@define-color white_b #ebdbb2;
|
||||
@define-color black_b #928374;
|
||||
@define-color red_b #fb4934;
|
||||
@define-color green_b #b8bb26;
|
||||
@define-color blue_b #83a598;
|
||||
@define-color aqua_b #8ec07c;
|
||||
@define-color orange_b #fe8010;
|
||||
107
hyprland/.config/waybar/style.css
Normal file
107
hyprland/.config/waybar/style.css
Normal file
@@ -0,0 +1,107 @@
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Noto Sans", "JetBrainsMono Nerd Font", monospace;
|
||||
font-size: 16px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
@import "gruvbox.css";
|
||||
|
||||
window#waybar {
|
||||
background: #32302f;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
/* Workspaces */
|
||||
#workspaces {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 7px;
|
||||
background: transparent;
|
||||
color: @white;
|
||||
border-radius: 6px;
|
||||
min-width: 18px;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: rgba(168, 153, 132, 0.3);
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: rgba(214, 93, 14, 0.25);
|
||||
color: @orange_b;
|
||||
}
|
||||
|
||||
#workspaces button.visible:not(.active) {
|
||||
background: rgba(69, 133, 136, 0.25);
|
||||
color: @blue_b;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: rgba(168, 153, 132, 0.15);
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
/* Mode (sway) */
|
||||
#mode {
|
||||
background: @red;
|
||||
color: @foreground;
|
||||
border-radius: 8px;
|
||||
margin: 4px 2px;
|
||||
padding: 0 10px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Right modules */
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#mpris,
|
||||
#tray {
|
||||
padding: 0 8px;
|
||||
margin: 0;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: @red_b;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: @red;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#tray {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: @red;
|
||||
border-radius: 4px;
|
||||
}
|
||||
89
hyprland/.local/bin/sway/rofi_screenshot.sh
Executable file
89
hyprland/.local/bin/sway/rofi_screenshot.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#! /usr/bin/zsh
|
||||
|
||||
set -e
|
||||
|
||||
PICTURES_DIR="$(xdg-user-dir PICTURES)"
|
||||
ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||
|
||||
monitor="$(hyprctl monitors -j | jq '[.[].focused] | index(true)')"
|
||||
# monitor="$(swaymsg -t get_outputs | jq '[.[].focused] | index(true)')"
|
||||
alias myrofi="fuzzel --dmenu"
|
||||
# alias myrofi="rofi -dmenu -matching fuzzy -i -sort -sorting-method fzf -monitor $monitor"
|
||||
|
||||
select_window() {
|
||||
declare -A windows
|
||||
|
||||
swaymsg -t get_tree |
|
||||
jq -r '..|.nodes? + .floating_nodes?|arrays|select(length > 0)|.[]|select((.nodes + .floating_nodes | length) == 0)|select(.visible)|(.app_id + ": " + .name + "\n" + (.rect.x | tostring) + "," + (.rect.y | tostring) + " " + (.rect.width | tostring) + "x" + (.rect.height | tostring))' |
|
||||
while read window_name; read geometry; do
|
||||
windows[$window_name]="$geometry"
|
||||
done
|
||||
|
||||
echo ${windows[$(print -l ${(@k)windows} | myrofi)]}
|
||||
}
|
||||
|
||||
main() {
|
||||
actions="Copy region to clipboard\nSave region to $PICTURES_DIR\nCopy window to clipboard\nSave window to $PICTURES_DIR\nSave region to zk"
|
||||
|
||||
if [[ "$(swaymsg -t get_outputs | jq length)" == "1" ]]; then
|
||||
actions+="\nCopy screen to clipboard\nSave screen to $PICTURES_DIR"
|
||||
else
|
||||
actions+="\nCopy current monitor to clipboard\nSave current monitor to $PICTURES_DIR\nCopy all monitors to clipboard\nSave all monitors to $PICTURES_DIR"
|
||||
fi
|
||||
|
||||
selection="$(echo "$actions" | myrofi -p "Take a screenshot")"
|
||||
|
||||
filename="$(date +'screenshot_%Y%m%d%H%M%s.png')"
|
||||
imagepath="${PICTURES_DIR}/$filename"
|
||||
zkpath="${ZK_NOTEBOOK_DIR}/fig/$filename"
|
||||
case "$selection" in
|
||||
"Copy region to clipboard")
|
||||
grim -g "$(slurp)" - | wl-copy
|
||||
notify-send "Region copied to clipboard"
|
||||
;;
|
||||
"Save region to $PICTURES_DIR")
|
||||
grim -g "$(slurp)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Save region to zk")
|
||||
grim -g "$(slurp)" "$zkpath"
|
||||
sh_path="../fig/${zkpath##*/}"
|
||||
wl-copy $sh_path
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved" "$sh_path is copied")
|
||||
;;
|
||||
"Copy window to clipboard")
|
||||
grim -g "$(select_window)" - | wl-copy
|
||||
notify-send "Window copied to clipboard"
|
||||
;;
|
||||
"Save window to $PICTURES_DIR")
|
||||
grim -g "$(select_window)" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy current monitor to clipboard")
|
||||
monitor="$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')"
|
||||
grim -o $monitor - | wl-copy
|
||||
notify-send "Monitor $monitor copied to clipboard"
|
||||
;;
|
||||
"Save current monitor to $PICTURES_DIR")
|
||||
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
"Copy screen to clipboard"|"Copy all monitors to clipboard")
|
||||
grim - | wl-copy
|
||||
notify-send "Screen copied to clipboard"
|
||||
;;
|
||||
"Save screen to $PICTURES_DIR"|"Save all monitors to $PICTURES_DIR")
|
||||
grim "$imagepath"
|
||||
reply=$(notify-send -A 'open,Open' -i "$imagepath" "Screenshot saved")
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$reply" == "2" ]]; then
|
||||
nautilus -s $imagepath
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user