mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Compare commits
9 Commits
525fa05352
...
feature/no
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60f177f51c | ||
|
|
dc25960f08 | ||
|
|
a57685d377 | ||
|
|
781f366fe7 | ||
|
|
53b7baf52f | ||
|
|
525b0b0e42 | ||
|
|
57a605587a | ||
|
|
8acd8204b9 | ||
|
|
e5b24fdf2c |
@@ -91,7 +91,7 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
|
|||||||
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
||||||
- Flatpak con remoto Flathub
|
- Flatpak con remoto Flathub
|
||||||
- GNOME Keyring e bootstrap della posta via script dedicato
|
- GNOME Keyring e bootstrap della posta via script dedicato
|
||||||
- shell Noctalia su Sway su `nymph`, con plugin ufficiali per clipboard (`clipper`), polkit (`polkit-agent`), screenshot (`screenshot`) e gestione USB (`usb-drive-manager`); config condivisa in `dotfiles/desktop/.config/noctalia/` e `settings.json` renderizzato da template Ansible con variabili host-specifiche
|
- shell Noctalia su Sway su `nymph`, con plugin ufficiali per clipboard (`clipper`, `clipboard`), polkit (`polkit-agent`) e gestione USB (`usb-drive-manager`); config condivisa in `dotfiles/desktop/.config/noctalia/` e `settings.json` renderizzato da template Ansible con variabili host-specifiche
|
||||||
- `udiskie` come backend per automount/LUKS su Sway, senza tray; la UI dei dispositivi removibili è demandata a `usb-drive-manager`
|
- `udiskie` come backend per automount/LUKS su Sway, senza tray; la UI dei dispositivi removibili è demandata a `usb-drive-manager`
|
||||||
- `kanshi` su `nymph` per il profilo monitor Wayland, con workspace Sway deterministici: in dual monitor `1` resta su `eDP-1` e `2-10` vanno su `DP-1`, mentre in laptop-only tutti tornano su `eDP-1`
|
- `kanshi` su `nymph` per il profilo monitor Wayland, con workspace Sway deterministici: in dual monitor `1` resta su `eDP-1` e `2-10` vanno su `DP-1`, mentre in laptop-only tutti tornano su `eDP-1`
|
||||||
- monitor Noctalia e `screenOverrides` dichiarati in inventory (`noctalia_bar_monitors`, `noctalia_screen_overrides`) per host `nymph`
|
- monitor Noctalia e `screenOverrides` dichiarati in inventory (`noctalia_bar_monitors`, `noctalia_screen_overrides`) per host `nymph`
|
||||||
|
|||||||
@@ -9,6 +9,16 @@ desktop_default_session_env: xorg
|
|||||||
desktop_restart_emptty_automatically: false
|
desktop_restart_emptty_automatically: false
|
||||||
desktop_emptty_session_error_logging: disabled
|
desktop_emptty_session_error_logging: disabled
|
||||||
|
|
||||||
|
desktop_ui_font_family: Noto Sans
|
||||||
|
desktop_ui_font_size: 10
|
||||||
|
desktop_fixed_font_family: Hack Nerd Font
|
||||||
|
desktop_sway_font_size: 10
|
||||||
|
desktop_alacritty_font_size: 12
|
||||||
|
desktop_emacs_font_size: 14
|
||||||
|
desktop_cursor_theme: Yaru
|
||||||
|
desktop_cursor_size: 24
|
||||||
|
desktop_icon_theme: Yaru-orange-dark
|
||||||
|
|
||||||
desktop_common_packages:
|
desktop_common_packages:
|
||||||
- brightnessctl
|
- brightnessctl
|
||||||
- dex
|
- dex
|
||||||
@@ -47,12 +57,18 @@ desktop_i3_packages:
|
|||||||
- xss-lock
|
- xss-lock
|
||||||
|
|
||||||
desktop_sway_packages:
|
desktop_sway_packages:
|
||||||
|
- adw-gtk-theme
|
||||||
|
- flameshot
|
||||||
- grim
|
- grim
|
||||||
- kanshi
|
- kanshi
|
||||||
|
- qt5ct
|
||||||
|
- qt6ct
|
||||||
- slurp
|
- slurp
|
||||||
- swayfx
|
- swayfx
|
||||||
- wl-clipboard
|
- wl-clipboard
|
||||||
|
- xhost
|
||||||
- xdg-desktop-portal-wlr
|
- xdg-desktop-portal-wlr
|
||||||
|
- xorg-server-xwayland
|
||||||
|
|
||||||
profile_packages:
|
profile_packages:
|
||||||
- alacritty
|
- alacritty
|
||||||
@@ -231,10 +247,18 @@ desktop_common_dotfiles:
|
|||||||
src: .local/bin/update-turnstile-env
|
src: .local/bin/update-turnstile-env
|
||||||
dest: .local/bin/update-turnstile-env
|
dest: .local/bin/update-turnstile-env
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
- name: Gufw Sway wrapper
|
||||||
|
src: .local/bin/run-gufw
|
||||||
|
dest: .local/bin/run-gufw
|
||||||
|
mode: "0755"
|
||||||
- name: Udiskie password helper
|
- name: Udiskie password helper
|
||||||
src: .local/bin/udiskie-password
|
src: .local/bin/udiskie-password
|
||||||
dest: .local/bin/udiskie-password
|
dest: .local/bin/udiskie-password
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
- name: Desktop application overrides
|
||||||
|
src: .local/share/applications/
|
||||||
|
dest: .local/share/applications/
|
||||||
|
mode: preserve
|
||||||
- name: SSH config
|
- name: SSH config
|
||||||
src: .ssh/config
|
src: .ssh/config
|
||||||
dest: .ssh/config
|
dest: .ssh/config
|
||||||
@@ -277,6 +301,10 @@ desktop_sway_dotfiles:
|
|||||||
src: .config/i3/wallpapers/
|
src: .config/i3/wallpapers/
|
||||||
dest: .config/sway/wallpapers/
|
dest: .config/sway/wallpapers/
|
||||||
mode: preserve
|
mode: preserve
|
||||||
|
- name: Noctalia wallpaper library
|
||||||
|
src: Pictures/Wallpapers/
|
||||||
|
dest: Pictures/Wallpapers/
|
||||||
|
mode: preserve
|
||||||
- name: Sway session wrapper
|
- name: Sway session wrapper
|
||||||
src: .local/bin/start-sway-session
|
src: .local/bin/start-sway-session
|
||||||
dest: .local/bin/start-sway-session
|
dest: .local/bin/start-sway-session
|
||||||
@@ -299,6 +327,8 @@ noctalia_bar_monitors:
|
|||||||
|
|
||||||
noctalia_screen_overrides: []
|
noctalia_screen_overrides: []
|
||||||
|
|
||||||
|
noctalia_wallpaper: "{{ user_home }}/Pictures/Wallpapers/star-wars-trio.jpg"
|
||||||
|
|
||||||
desktop_flatpak_packages:
|
desktop_flatpak_packages:
|
||||||
- be.alexandervanhee.gradia
|
- be.alexandervanhee.gradia
|
||||||
- ch.protonmail.protonmail-bridge
|
- ch.protonmail.protonmail-bridge
|
||||||
@@ -310,4 +340,14 @@ desktop_flatpak_packages:
|
|||||||
- org.telegram.desktop
|
- org.telegram.desktop
|
||||||
|
|
||||||
desktop_flatpak_extensions:
|
desktop_flatpak_extensions:
|
||||||
- org.gtk.Gtk3theme.Yaru-Blue-dark//stable
|
- org.gtk.Gtk3theme.Yaru-Orange-dark//3.22
|
||||||
|
|
||||||
|
desktop_flatpak_global_filesystems:
|
||||||
|
- xdg-config/gtk-3.0:ro
|
||||||
|
- xdg-config/gtk-4.0:ro
|
||||||
|
- xdg-config/qt5ct:ro
|
||||||
|
- xdg-config/qt6ct:ro
|
||||||
|
|
||||||
|
desktop_flatpak_global_env:
|
||||||
|
- QT_QPA_PLATFORM=wayland
|
||||||
|
- QT_QPA_PLATFORMTHEME=qt6ct
|
||||||
|
|||||||
@@ -18,10 +18,10 @@
|
|||||||
loop:
|
loop:
|
||||||
- "{{ user_home }}/.config"
|
- "{{ user_home }}/.config"
|
||||||
- "{{ user_home }}/.config/autostart"
|
- "{{ user_home }}/.config/autostart"
|
||||||
- "{{ user_home }}/.config/dunst"
|
|
||||||
- "{{ user_home }}/.config/alacritty"
|
- "{{ user_home }}/.config/alacritty"
|
||||||
- "{{ user_home }}/.config/Thunar"
|
- "{{ user_home }}/.config/Thunar"
|
||||||
- "{{ user_home }}/.config/rofi"
|
- "{{ user_home }}/.local/share"
|
||||||
|
- "{{ user_home }}/.local/share/applications"
|
||||||
- "{{ user_home }}/.tmux"
|
- "{{ user_home }}/.tmux"
|
||||||
- "{{ user_home }}/.tmux/bin"
|
- "{{ user_home }}/.tmux/bin"
|
||||||
- "{{ user_home }}/.tmux/plugins"
|
- "{{ user_home }}/.tmux/plugins"
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
loop:
|
loop:
|
||||||
- "{{ user_home }}/.config/sway"
|
- "{{ user_home }}/.config/sway"
|
||||||
- "{{ user_home }}/.config/kanshi"
|
- "{{ user_home }}/.config/kanshi"
|
||||||
|
- "{{ user_home }}/.config/qt5ct"
|
||||||
|
- "{{ user_home }}/.config/qt5ct/colors"
|
||||||
|
- "{{ user_home }}/.config/qt6ct"
|
||||||
|
- "{{ user_home }}/.config/qt6ct/colors"
|
||||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
|
||||||
- name: Ensure Noctalia config directories exist
|
- name: Ensure Noctalia config directories exist
|
||||||
@@ -69,6 +73,26 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
|
||||||
|
- name: Render qt5ct config
|
||||||
|
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: qt5ct.conf.j2
|
||||||
|
dest: "{{ user_home }}/.config/qt5ct/qt5ct.conf"
|
||||||
|
owner: "{{ username }}"
|
||||||
|
group: "{{ user_group }}"
|
||||||
|
mode: "0644"
|
||||||
|
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
|
||||||
|
- name: Render qt6ct config
|
||||||
|
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: qt6ct.conf.j2
|
||||||
|
dest: "{{ user_home }}/.config/qt6ct/qt6ct.conf"
|
||||||
|
owner: "{{ username }}"
|
||||||
|
group: "{{ user_group }}"
|
||||||
|
mode: "0644"
|
||||||
|
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
|
||||||
- name: Manage Noctalia shell plugins
|
- name: Manage Noctalia shell plugins
|
||||||
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
|
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
|
||||||
ansible.builtin.include_tasks: noctalia.yml
|
ansible.builtin.include_tasks: noctalia.yml
|
||||||
@@ -83,3 +107,37 @@
|
|||||||
group: "{{ user_group }}"
|
group: "{{ user_group }}"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
|
||||||
|
- name: Allow Flatpak apps to read shared theme configs
|
||||||
|
tags: [packages, dotfiles, dotfiles:desktop, sway, noctalia]
|
||||||
|
ansible.builtin.command:
|
||||||
|
argv:
|
||||||
|
- flatpak
|
||||||
|
- override
|
||||||
|
- --user
|
||||||
|
- "--filesystem={{ item }}"
|
||||||
|
become_user: "{{ username }}"
|
||||||
|
environment:
|
||||||
|
HOME: "{{ user_home }}"
|
||||||
|
changed_when: false
|
||||||
|
loop: "{{ desktop_flatpak_global_filesystems | default([]) }}"
|
||||||
|
when:
|
||||||
|
- "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
- (desktop_flatpak_packages | default([])) | length > 0
|
||||||
|
|
||||||
|
- name: Export global Flatpak environment for theme integration
|
||||||
|
tags: [packages, dotfiles, dotfiles:desktop, sway, noctalia]
|
||||||
|
ansible.builtin.command:
|
||||||
|
argv:
|
||||||
|
- flatpak
|
||||||
|
- override
|
||||||
|
- --user
|
||||||
|
- "--env={{ item }}"
|
||||||
|
become_user: "{{ username }}"
|
||||||
|
environment:
|
||||||
|
HOME: "{{ user_home }}"
|
||||||
|
changed_when: false
|
||||||
|
loop: "{{ desktop_flatpak_global_env | default([]) }}"
|
||||||
|
when:
|
||||||
|
- "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
|
- (desktop_flatpak_packages | default([])) | length > 0
|
||||||
|
|||||||
@@ -137,6 +137,22 @@
|
|||||||
owner: "{{ username }}"
|
owner: "{{ username }}"
|
||||||
group: "{{ user_group }}"
|
group: "{{ user_group }}"
|
||||||
loop:
|
loop:
|
||||||
|
- clipboard
|
||||||
- polkit-agent
|
- polkit-agent
|
||||||
- screenshot
|
|
||||||
- usb-drive-manager
|
- usb-drive-manager
|
||||||
|
|
||||||
|
- name: Ensure Noctalia cache directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ user_home }}/.cache/noctalia"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ username }}"
|
||||||
|
group: "{{ user_group }}"
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Deploy Noctalia wallpapers cache
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: wallpapers.json.j2
|
||||||
|
dest: "{{ user_home }}/.cache/noctalia/wallpapers.json"
|
||||||
|
owner: "{{ username }}"
|
||||||
|
group: "{{ user_group }}"
|
||||||
|
mode: "0644"
|
||||||
|
|||||||
@@ -203,6 +203,18 @@
|
|||||||
"middleClickCommand": "pwvucontrol || pavucontrol",
|
"middleClickCommand": "pwvucontrol || pavucontrol",
|
||||||
"textColor": "none"
|
"textColor": "none"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "Network",
|
||||||
|
"textColor": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "Bluetooth",
|
||||||
|
"textColor": "none"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"applyToAllMonitors": false,
|
"applyToAllMonitors": false,
|
||||||
"displayMode": "onhover",
|
"displayMode": "onhover",
|
||||||
@@ -561,15 +573,17 @@
|
|||||||
{"enabled": true, "id": "alacritty"},
|
{"enabled": true, "id": "alacritty"},
|
||||||
{"enabled": true, "id": "gtk"},
|
{"enabled": true, "id": "gtk"},
|
||||||
{"enabled": true, "id": "emacs"},
|
{"enabled": true, "id": "emacs"},
|
||||||
{"enabled": true, "id": "telegram"}
|
{"enabled": true, "id": "telegram"},
|
||||||
|
{"enabled": true, "id": "qt"},
|
||||||
|
{"enabled": true, "id": "sway"}
|
||||||
],
|
],
|
||||||
"enableUserTheming": false
|
"enableUserTheming": false
|
||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"boxBorderEnabled": false,
|
"boxBorderEnabled": false,
|
||||||
"fontDefault": "Sans Serif",
|
"fontDefault": "{{ desktop_ui_font_family | default('Noto Sans') }}",
|
||||||
"fontDefaultScale": 1,
|
"fontDefaultScale": 1,
|
||||||
"fontFixed": "monospace",
|
"fontFixed": "{{ desktop_fixed_font_family | default('Hack Nerd Font') }}",
|
||||||
"fontFixedScale": 1,
|
"fontFixedScale": 1,
|
||||||
"panelBackgroundOpacity": 0.93,
|
"panelBackgroundOpacity": 0.93,
|
||||||
"panelsAttachedToBar": true,
|
"panelsAttachedToBar": true,
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[Appearance]
|
||||||
|
color_scheme_path={{ user_home }}/.config/qt5ct/colors/noctalia.conf
|
||||||
|
custom_palette=true
|
||||||
|
icon_theme={{ desktop_icon_theme | default('Yaru-orange-dark') }}
|
||||||
|
standard_dialogs=default
|
||||||
|
style=Fusion
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[Appearance]
|
||||||
|
color_scheme_path={{ user_home }}/.config/qt6ct/colors/noctalia.conf
|
||||||
|
custom_palette=true
|
||||||
|
icon_theme={{ desktop_icon_theme | default('Yaru-orange-dark') }}
|
||||||
|
standard_dialogs=default
|
||||||
|
style=Fusion
|
||||||
@@ -2,9 +2,9 @@ set $menu qs -c noctalia-shell ipc call launcher toggle
|
|||||||
set $audio_panel qs -c noctalia-shell ipc call volume openPanel
|
set $audio_panel qs -c noctalia-shell ipc call volume openPanel
|
||||||
set $locker qs -c noctalia-shell ipc call lockScreen lock
|
set $locker qs -c noctalia-shell ipc call lockScreen lock
|
||||||
set $powermenu qs -c noctalia-shell ipc call sessionMenu toggle
|
set $powermenu qs -c noctalia-shell ipc call sessionMenu toggle
|
||||||
set $screenshot_full qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot output
|
set $screenshot_full sh -c 'QT_QPA_PLATFORM=wayland flameshot full --clipboard'
|
||||||
set $screenshot_region qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot region
|
set $screenshot_region sh -c 'QT_QPA_PLATFORM=wayland flameshot gui'
|
||||||
set $screenshot_window qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot window
|
set $screenshot_window sh -c 'QT_QPA_PLATFORM=wayland flameshot gui'
|
||||||
set $audio_raise qs -c noctalia-shell ipc call volume increase
|
set $audio_raise qs -c noctalia-shell ipc call volume increase
|
||||||
set $audio_lower qs -c noctalia-shell ipc call volume decrease
|
set $audio_lower qs -c noctalia-shell ipc call volume decrease
|
||||||
set $audio_mute qs -c noctalia-shell ipc call volume muteOutput
|
set $audio_mute qs -c noctalia-shell ipc call volume muteOutput
|
||||||
@@ -22,8 +22,11 @@ exec pipewire
|
|||||||
exec pipewire-pulse
|
exec pipewire-pulse
|
||||||
exec wireplumber
|
exec wireplumber
|
||||||
exec kanshi
|
exec kanshi
|
||||||
|
exec flameshot
|
||||||
exec udiskie --no-tray
|
exec udiskie --no-tray
|
||||||
exec wl-paste --watch cliphist store
|
exec wl-paste --watch cliphist store
|
||||||
exec qs -c noctalia-shell
|
exec qs -c noctalia-shell
|
||||||
|
|
||||||
bindsym $mod+c exec qs -c noctalia-shell ipc call launcher clipboard
|
bindsym $mod+c exec qs -c noctalia-shell ipc call launcher clipboard
|
||||||
|
bindsym $mod+Ctrl+v exec qs -c noctalia-shell ipc call plugin:clipboard toggle
|
||||||
|
bindsym $mod+Ctrl+Shift+v exec qs -c noctalia-shell ipc call plugin:clipboard wipe
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"defaultWallpaper": "/etc/xdg/quickshell/noctalia-shell/Assets/Wallpaper/noctalia.png",
|
||||||
|
"usedRandomWallpapers": {},
|
||||||
|
"wallpapers": {
|
||||||
|
"": {
|
||||||
|
"dark": "{{ noctalia_wallpaper }}",
|
||||||
|
"light": "{{ noctalia_wallpaper }}"
|
||||||
|
},
|
||||||
|
"DP-1": {
|
||||||
|
"dark": "{{ noctalia_wallpaper }}",
|
||||||
|
"light": "{{ noctalia_wallpaper }}"
|
||||||
|
},
|
||||||
|
"eDP-1": {
|
||||||
|
"dark": "{{ noctalia_wallpaper }}",
|
||||||
|
"light": "{{ noctalia_wallpaper }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
|
[general]
|
||||||
|
import = ["~/.config/alacritty/themes/noctalia.toml"]
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
padding = { x = 8, y = 8 }
|
padding = { x = 8, y = 8 }
|
||||||
opacity = 1.0
|
opacity = 1.0
|
||||||
@@ -13,30 +16,6 @@ multiplier = 3
|
|||||||
[cursor]
|
[cursor]
|
||||||
style = { shape = "Beam", blinking = "Off" }
|
style = { shape = "Beam", blinking = "Off" }
|
||||||
|
|
||||||
[colors.primary]
|
|
||||||
background = "#000000"
|
|
||||||
foreground = "#c8c8c8"
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = "#1f1f28"
|
|
||||||
red = "#c7162b"
|
|
||||||
green = "#4caf50"
|
|
||||||
yellow = "#e95420"
|
|
||||||
blue = "#4a90d9"
|
|
||||||
magenta = "#7e57c2"
|
|
||||||
cyan = "#6daeea"
|
|
||||||
white = "#eeeeee"
|
|
||||||
|
|
||||||
[colors.bright]
|
|
||||||
black = "#3a3a46"
|
|
||||||
red = "#ff5c5c"
|
|
||||||
green = "#7ad97a"
|
|
||||||
yellow = "#ff8f40"
|
|
||||||
blue = "#6daeea"
|
|
||||||
magenta = "#9575cd"
|
|
||||||
cyan = "#8bd6ff"
|
|
||||||
white = "#ffffff"
|
|
||||||
|
|
||||||
[keyboard]
|
[keyboard]
|
||||||
bindings = [
|
bindings = [
|
||||||
{ key = "V", mods = "Control|Shift", action = "Paste" },
|
{ key = "V", mods = "Control|Shift", action = "Paste" },
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"states": {
|
"states": {
|
||||||
|
"clipboard": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
},
|
||||||
"clipper": {
|
"clipper": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
@@ -15,10 +19,6 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
},
|
},
|
||||||
"screenshot": {
|
|
||||||
"enabled": true,
|
|
||||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
|
||||||
},
|
|
||||||
"usb-drive-manager": {
|
"usb-drive-manager": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
|||||||
@@ -38,43 +38,7 @@
|
|||||||
"fg": "mOnError"
|
"fg": "mOnError"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"customColors": {
|
"customColors": {},
|
||||||
"Text": {
|
|
||||||
"bg": "#555555",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#e9e4f0"
|
|
||||||
},
|
|
||||||
"Image": {
|
|
||||||
"bg": "#e0b7c9",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#20161f"
|
|
||||||
},
|
|
||||||
"Link": {
|
|
||||||
"bg": "#c7a1d8",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#1a151f"
|
|
||||||
},
|
|
||||||
"Code": {
|
|
||||||
"bg": "#a984c4",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#f3edf7"
|
|
||||||
},
|
|
||||||
"Color": {
|
|
||||||
"bg": "#a984c4",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#f3edf7"
|
|
||||||
},
|
|
||||||
"Emoji": {
|
|
||||||
"bg": "#e0b7c9",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#20161f"
|
|
||||||
},
|
|
||||||
"File": {
|
|
||||||
"bg": "#e9899d",
|
|
||||||
"separator": "#000000",
|
|
||||||
"fg": "#1e1418"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enableTodoIntegration": true,
|
"enableTodoIntegration": true,
|
||||||
"autoOpenPinnedPanel": false,
|
"autoOpenPinnedPanel": false,
|
||||||
"pincardsEnabled": true,
|
"pincardsEnabled": true,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ set $fallback_terminal st
|
|||||||
include ~/.config/sway/host.conf
|
include ~/.config/sway/host.conf
|
||||||
include ~/.config/sway/shell.conf
|
include ~/.config/sway/shell.conf
|
||||||
|
|
||||||
font pango:Liberation Mono 10
|
font pango:Hack Nerd Font 10
|
||||||
|
|
||||||
# Input and output defaults
|
# Input and output defaults
|
||||||
seat seat0 xcursor_theme Yaru 24
|
seat seat0 xcursor_theme Yaru 24
|
||||||
@@ -166,9 +166,4 @@ mode "resize" {
|
|||||||
|
|
||||||
bindsym $mod+r mode "resize"
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
client.focused #4a90d9 #4a90d9 #ffffff #4a90d9 #4a90d9
|
include ~/.config/sway/noctalia
|
||||||
client.focused_inactive #3a3a46 #2b2b36 #eeeeee #3a3a46 #3a3a46
|
|
||||||
client.unfocused #2b2b36 #1f1f28 #bcbcbc #2b2b36 #2b2b36
|
|
||||||
client.urgent #c7162b #c7162b #ffffff #c7162b #c7162b
|
|
||||||
client.placeholder #1f1f28 #1f1f28 #bcbcbc #1f1f28 #1f1f28
|
|
||||||
client.background #1f1f28
|
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
;;; core-ui.el -*- lexical-binding: t; -*-
|
;;; core-ui.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;; Load default theme
|
;; Load generated Noctalia theme.
|
||||||
(use-package nordic-night-theme
|
(add-to-list 'custom-theme-load-path (expand-file-name "themes" user-emacs-directory))
|
||||||
:ensure t)
|
(load-theme 'noctalia t)
|
||||||
|
|
||||||
(load-theme 'nordic-night t)
|
|
||||||
|
|
||||||
;; Setting default font
|
;; Setting default font
|
||||||
(set-frame-font "Liberation Mono 14" nil t)
|
(set-frame-font "Hack Nerd Font 14" nil t)
|
||||||
|
|
||||||
(add-to-list 'default-frame-alist
|
(add-to-list 'default-frame-alist
|
||||||
'(font . "Liberation Mono-14"))
|
'(font . "Hack Nerd Font-14"))
|
||||||
|
|
||||||
;; Remove toolbar
|
;; Remove toolbar
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
|
|||||||
22
dotfiles/desktop/.local/bin/run-gufw
Normal file
22
dotfiles/desktop/.local/bin/run-gufw
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if [ -z "${DISPLAY:-}" ]; then
|
||||||
|
printf 'Error: DISPLAY is not set; cannot launch gufw under Xwayland.\n' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v xhost >/dev/null 2>&1; then
|
||||||
|
printf 'Error: xhost is required to launch gufw from a Wayland session.\n' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
xhost -si:localuser:root >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT INT TERM HUP
|
||||||
|
|
||||||
|
xhost si:localuser:root >/dev/null
|
||||||
|
exec gufw "$@"
|
||||||
@@ -1,15 +1,13 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
THEME="Yaru-blue-dark"
|
ICONS="Yaru-orange-dark"
|
||||||
ICONS="Yaru-blue-dark"
|
|
||||||
CURSOR="Yaru"
|
CURSOR="Yaru"
|
||||||
FONT_UI="Liberation Sans 10"
|
FONT_UI="Noto Sans 10"
|
||||||
|
|
||||||
mkdir -p "$HOME/.config/gtk-3.0"
|
mkdir -p "$HOME/.config/gtk-3.0"
|
||||||
mkdir -p "$HOME/.config/gtk-4.0"
|
mkdir -p "$HOME/.config/gtk-4.0"
|
||||||
|
|
||||||
cat > "$HOME/.gtkrc-2.0" <<EOF
|
cat > "$HOME/.gtkrc-2.0" <<EOF
|
||||||
gtk-theme-name="$THEME"
|
|
||||||
gtk-icon-theme-name="$ICONS"
|
gtk-icon-theme-name="$ICONS"
|
||||||
gtk-cursor-theme-name="$CURSOR"
|
gtk-cursor-theme-name="$CURSOR"
|
||||||
gtk-font-name="$FONT_UI"
|
gtk-font-name="$FONT_UI"
|
||||||
@@ -19,7 +17,6 @@ EOF
|
|||||||
|
|
||||||
cat > "$HOME/.config/gtk-3.0/settings.ini" <<EOF
|
cat > "$HOME/.config/gtk-3.0/settings.ini" <<EOF
|
||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name=$THEME
|
|
||||||
gtk-icon-theme-name=$ICONS
|
gtk-icon-theme-name=$ICONS
|
||||||
gtk-cursor-theme-name=$CURSOR
|
gtk-cursor-theme-name=$CURSOR
|
||||||
gtk-font-name=$FONT_UI
|
gtk-font-name=$FONT_UI
|
||||||
@@ -32,7 +29,6 @@ EOF
|
|||||||
|
|
||||||
cat > "$HOME/.config/gtk-4.0/settings.ini" <<EOF
|
cat > "$HOME/.config/gtk-4.0/settings.ini" <<EOF
|
||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name=$THEME
|
|
||||||
gtk-icon-theme-name=$ICONS
|
gtk-icon-theme-name=$ICONS
|
||||||
gtk-cursor-theme-name=$CURSOR
|
gtk-cursor-theme-name=$CURSOR
|
||||||
gtk-font-name=$FONT_UI
|
gtk-font-name=$FONT_UI
|
||||||
@@ -40,8 +36,8 @@ gtk-application-prefer-dark-theme=1
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
if command -v gsettings >/dev/null 2>&1; then
|
if command -v gsettings >/dev/null 2>&1; then
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "$THEME" >/dev/null 2>&1 || true
|
|
||||||
gsettings set org.gnome.desktop.interface icon-theme "$ICONS" >/dev/null 2>&1 || true
|
gsettings set org.gnome.desktop.interface icon-theme "$ICONS" >/dev/null 2>&1 || true
|
||||||
gsettings set org.gnome.desktop.interface cursor-theme "$CURSOR" >/dev/null 2>&1 || true
|
gsettings set org.gnome.desktop.interface cursor-theme "$CURSOR" >/dev/null 2>&1 || true
|
||||||
|
gsettings set org.gnome.desktop.interface font-name "$FONT_UI" >/dev/null 2>&1 || true
|
||||||
gsettings set org.gnome.desktop.interface color-scheme prefer-dark >/dev/null 2>&1 || true
|
gsettings set org.gnome.desktop.interface color-scheme prefer-dark >/dev/null 2>&1 || true
|
||||||
fi
|
fi
|
||||||
|
|||||||
13
dotfiles/desktop/.local/share/applications/gufw.desktop
Normal file
13
dotfiles/desktop/.local/share/applications/gufw.desktop
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Firewall Configuration
|
||||||
|
Comment=An easy way to configure your firewall
|
||||||
|
Keywords=gufw;security;firewall;network;
|
||||||
|
Categories=GNOME;GTK;Settings;Security;X-GNOME-Settings-Panel;X-GNOME-SystemSettings;X-Unity-Settings-Panel;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
|
||||||
|
Exec=/home/fscotto/.local/bin/run-gufw
|
||||||
|
Icon=gufw
|
||||||
|
Terminal=false
|
||||||
|
X-GNOME-Settings-Panel=gufw
|
||||||
|
X-Unity-Settings-Panel=gufw
|
||||||
|
X-Ubuntu-Gettext-Domain=gufw
|
||||||
BIN
dotfiles/desktop/Pictures/Wallpapers/star-wars-trio.jpg
Normal file
BIN
dotfiles/desktop/Pictures/Wallpapers/star-wars-trio.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
@@ -1,4 +1,6 @@
|
|||||||
export LIBVA_DRIVER_NAME=iHD
|
export LIBVA_DRIVER_NAME=iHD
|
||||||
|
export QT_QPA_PLATFORM=wayland
|
||||||
|
export QT_QPA_PLATFORMTHEME=qt6ct
|
||||||
export SWAY_UNSUPPORTED_GPU=1
|
export SWAY_UNSUPPORTED_GPU=1
|
||||||
export WLR_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1
|
export WLR_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
export WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
|||||||
242
scripts/cleanup_i3_after_sway_migration.sh
Executable file
242
scripts/cleanup_i3_after_sway_migration.sh
Executable file
@@ -0,0 +1,242 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
APPLY=0
|
||||||
|
AGGRESSIVE=0
|
||||||
|
|
||||||
|
SAFE_PACKAGES="
|
||||||
|
arandr
|
||||||
|
autorandr
|
||||||
|
feh
|
||||||
|
i3
|
||||||
|
i3blocks
|
||||||
|
i3blocks-blocklets
|
||||||
|
i3lock-color
|
||||||
|
i3status
|
||||||
|
scrot
|
||||||
|
setxkbmap
|
||||||
|
volumeicon
|
||||||
|
xclip
|
||||||
|
xkbutils
|
||||||
|
xorg-fonts
|
||||||
|
xorg-minimal
|
||||||
|
xss-lock
|
||||||
|
"
|
||||||
|
|
||||||
|
AGGRESSIVE_PACKAGES="
|
||||||
|
dunst
|
||||||
|
rofi
|
||||||
|
blueman
|
||||||
|
network-manager-applet
|
||||||
|
xfce-polkit
|
||||||
|
xfce4-clipman-plugin
|
||||||
|
xfce4-screenshooter
|
||||||
|
"
|
||||||
|
|
||||||
|
SAFE_PATHS="
|
||||||
|
$HOME/.config/i3
|
||||||
|
$HOME/.config/i3blocks
|
||||||
|
$HOME/.config/autorandr
|
||||||
|
$HOME/.xinitrc
|
||||||
|
"
|
||||||
|
|
||||||
|
AGGRESSIVE_PATHS="
|
||||||
|
$HOME/.config/dunst
|
||||||
|
$HOME/.config/rofi
|
||||||
|
"
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<'EOF'
|
||||||
|
Usage: cleanup_i3_after_sway_migration.sh [--apply] [--aggressive]
|
||||||
|
|
||||||
|
One-shot cleanup for removing i3/X11-only packages and dotfiles after a host
|
||||||
|
has already migrated to SwayFX + Noctalia.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--apply perform the cleanup for real
|
||||||
|
--aggressive also remove extra desktop apps/configs that were mainly useful
|
||||||
|
in the old i3 setup (dunst, rofi, blueman, etc.)
|
||||||
|
-h, --help show this help
|
||||||
|
|
||||||
|
Default mode is dry-run.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
have_command() {
|
||||||
|
command -v "$1" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
require_sway_noctalia() {
|
||||||
|
if [ ! -f "$HOME/.config/sway/config" ]; then
|
||||||
|
printf 'Error: Sway config not found at %s\n' "$HOME/.config/sway/config" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$HOME/.config/noctalia/settings.json" ]; then
|
||||||
|
printf 'Error: Noctalia settings not found at %s\n' "$HOME/.config/noctalia/settings.json" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
append_lines() {
|
||||||
|
src_lines=$1
|
||||||
|
dst_var=$2
|
||||||
|
|
||||||
|
for line in $src_lines; do
|
||||||
|
line=$(printf '%s' "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
|
[ -n "$line" ] || continue
|
||||||
|
case "$dst_var" in
|
||||||
|
PACKAGES)
|
||||||
|
PACKAGES="$PACKAGES $line"
|
||||||
|
;;
|
||||||
|
PATHS)
|
||||||
|
PATHS="$PATHS $line"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'Error: unsupported destination list: %s\n' "$dst_var" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_installed_packages() {
|
||||||
|
packages=$1
|
||||||
|
installed=''
|
||||||
|
|
||||||
|
for pkg in $packages; do
|
||||||
|
pkg=$(printf '%s' "$pkg" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
|
[ -n "$pkg" ] || continue
|
||||||
|
if xbps-query -s "$pkg" >/dev/null 2>&1; then
|
||||||
|
installed="$installed $pkg"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '%s' "$installed"
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_existing_paths() {
|
||||||
|
paths=$1
|
||||||
|
existing=''
|
||||||
|
|
||||||
|
for path in $paths; do
|
||||||
|
path=$(printf '%s' "$path" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
|
[ -n "$path" ] || continue
|
||||||
|
if [ -e "$path" ] || [ -L "$path" ]; then
|
||||||
|
existing="$existing $path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '%s' "$existing"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_section() {
|
||||||
|
title=$1
|
||||||
|
items=$2
|
||||||
|
|
||||||
|
printf '%s\n' "$title"
|
||||||
|
if [ -z "$items" ]; then
|
||||||
|
printf ' (none)\n'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for item in $items; do
|
||||||
|
item=$(printf '%s' "$item" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
|
[ -n "$item" ] || continue
|
||||||
|
printf ' - %s\n' "$item"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
confirm_apply() {
|
||||||
|
printf 'Proceed with i3 cleanup? [y/N] '
|
||||||
|
IFS= read -r answer
|
||||||
|
case "$answer" in
|
||||||
|
y|Y|yes|YES)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'Aborted.\n'
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
run_remove_packages() {
|
||||||
|
packages=$1
|
||||||
|
[ -n "$packages" ] || return 0
|
||||||
|
|
||||||
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
|
xbps-remove -R $packages
|
||||||
|
elif have_command sudo; then
|
||||||
|
sudo xbps-remove -R $packages
|
||||||
|
else
|
||||||
|
printf 'Error: package removal requires root and sudo was not found.\n' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
run_remove_paths() {
|
||||||
|
paths=$1
|
||||||
|
[ -n "$paths" ] || return 0
|
||||||
|
|
||||||
|
for path in $paths; do
|
||||||
|
path=$(printf '%s' "$path" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
|
[ -n "$path" ] || continue
|
||||||
|
rm -rf "$path"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--apply)
|
||||||
|
APPLY=1
|
||||||
|
;;
|
||||||
|
--aggressive)
|
||||||
|
AGGRESSIVE=1
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'Error: unknown argument: %s\n\n' "$1" >&2
|
||||||
|
usage >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
require_sway_noctalia
|
||||||
|
|
||||||
|
PACKAGES=''
|
||||||
|
PATHS=''
|
||||||
|
append_lines "$SAFE_PACKAGES" PACKAGES
|
||||||
|
append_lines "$SAFE_PATHS" PATHS
|
||||||
|
|
||||||
|
if [ "$AGGRESSIVE" -eq 1 ]; then
|
||||||
|
append_lines "$AGGRESSIVE_PACKAGES" PACKAGES
|
||||||
|
append_lines "$AGGRESSIVE_PATHS" PATHS
|
||||||
|
fi
|
||||||
|
|
||||||
|
INSTALLED_PACKAGES=$(filter_installed_packages "$PACKAGES")
|
||||||
|
EXISTING_PATHS=$(filter_existing_paths "$PATHS")
|
||||||
|
|
||||||
|
printf 'Mode: %s\n' "$( [ "$APPLY" -eq 1 ] && printf 'apply' || printf 'dry-run' )"
|
||||||
|
printf 'Aggressive cleanup: %s\n\n' "$( [ "$AGGRESSIVE" -eq 1 ] && printf 'yes' || printf 'no' )"
|
||||||
|
|
||||||
|
print_section 'Packages to remove:' "$INSTALLED_PACKAGES"
|
||||||
|
printf '\n'
|
||||||
|
print_section 'Paths to remove:' "$EXISTING_PATHS"
|
||||||
|
|
||||||
|
if [ "$APPLY" -ne 1 ]; then
|
||||||
|
printf '\nDry-run only. Re-run with --apply to perform the cleanup.\n'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
confirm_apply
|
||||||
|
|
||||||
|
run_remove_packages "$INSTALLED_PACKAGES"
|
||||||
|
run_remove_paths "$EXISTING_PATHS"
|
||||||
|
|
||||||
|
printf '\nCleanup complete.\n'
|
||||||
Reference in New Issue
Block a user