Initial commit
This commit is contained in:
commit
e6bdde0bb4
159
.config/alacritty/alacritty.yml
Normal file
159
.config/alacritty/alacritty.yml
Normal file
@ -0,0 +1,159 @@
|
||||
font:
|
||||
normal:
|
||||
family: "CozetteVector"
|
||||
|
||||
bold:
|
||||
family: "CozetteVector"
|
||||
|
||||
italic:
|
||||
family: "CozetteVector"
|
||||
|
||||
size: 13.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
glyph_offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 12
|
||||
y: 12
|
||||
dynamic_padding: true
|
||||
# decorations: none
|
||||
|
||||
|
||||
cursor:
|
||||
style: Block
|
||||
unfocused_hollow: false
|
||||
# thickness: 0.33
|
||||
|
||||
mouse:
|
||||
hide_when_typing: true
|
||||
|
||||
|
||||
# Base16 Gruvbox light, medium 256 - alacritty color config
|
||||
# Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '0xfbf1c7'
|
||||
foreground: '0x504945'
|
||||
|
||||
# Colors the cursor will use if `custom_cursor_colors` is true
|
||||
cursor:
|
||||
text: '0xfbf1c7'
|
||||
cursor: '0x504945'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '0xfbf1c7'
|
||||
red: '0x9d0006'
|
||||
green: '0x79740e'
|
||||
yellow: '0xb57614'
|
||||
blue: '0x076678'
|
||||
magenta: '0x8f3f71'
|
||||
cyan: '0x427b58'
|
||||
white: '0x504945'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '0xbdae93'
|
||||
red: '0x9d0006'
|
||||
green: '0x79740e'
|
||||
yellow: '0xb57614'
|
||||
blue: '0x076678'
|
||||
magenta: '0x8f3f71'
|
||||
cyan: '0x427b58'
|
||||
white: '0x282828'
|
||||
|
||||
indexed_colors:
|
||||
- { index: 16, color: '0xaf3a03' }
|
||||
- { index: 17, color: '0xd65d0e' }
|
||||
- { index: 18, color: '0xebdbb2' }
|
||||
- { index: 19, color: '0xd5c4a1' }
|
||||
- { index: 20, color: '0x665c54' }
|
||||
- { index: 21, color: '0x3c3836' }
|
||||
|
||||
key_bindings:
|
||||
- { key: A, mods: Alt, chars: "\x1ba" }
|
||||
- { key: B, mods: Alt, chars: "\x1bb" }
|
||||
- { key: C, mods: Alt, chars: "\x1bc" }
|
||||
- { key: D, mods: Alt, chars: "\x1bd" }
|
||||
- { key: E, mods: Alt, chars: "\x1be" }
|
||||
- { key: F, mods: Alt, chars: "\x1bf" }
|
||||
- { key: G, mods: Alt, chars: "\x1bg" }
|
||||
- { key: H, mods: Alt, chars: "\x1bh" }
|
||||
- { key: I, mods: Alt, chars: "\x1bi" }
|
||||
- { key: J, mods: Alt, chars: "\x1bj" }
|
||||
- { key: K, mods: Alt, chars: "\x1bk" }
|
||||
- { key: L, mods: Alt, chars: "\x1bl" }
|
||||
- { key: M, mods: Alt, chars: "\x1bm" }
|
||||
- { key: N, mods: Alt, chars: "\x1bn" }
|
||||
- { key: O, mods: Alt, chars: "\x1bo" }
|
||||
- { key: P, mods: Alt, chars: "\x1bp" }
|
||||
- { key: Q, mods: Alt, chars: "\x1bq" }
|
||||
- { key: R, mods: Alt, chars: "\x1br" }
|
||||
- { key: S, mods: Alt, chars: "\x1bs" }
|
||||
- { key: T, mods: Alt, chars: "\x1bt" }
|
||||
- { key: U, mods: Alt, chars: "\x1bu" }
|
||||
- { key: V, mods: Alt, chars: "\x1bv" }
|
||||
- { key: W, mods: Alt, chars: "\x1bw" }
|
||||
- { key: X, mods: Alt, chars: "\x1bx" }
|
||||
- { key: Y, mods: Alt, chars: "\x1by" }
|
||||
- { key: Z, mods: Alt, chars: "\x1bz" }
|
||||
- { key: A, mods: Alt|Shift, chars: "\x1bA" }
|
||||
- { key: B, mods: Alt|Shift, chars: "\x1bB" }
|
||||
- { key: C, mods: Alt|Shift, chars: "\x1bC" }
|
||||
- { key: D, mods: Alt|Shift, chars: "\x1bD" }
|
||||
- { key: E, mods: Alt|Shift, chars: "\x1bE" }
|
||||
- { key: F, mods: Alt|Shift, chars: "\x1bF" }
|
||||
- { key: G, mods: Alt|Shift, chars: "\x1bG" }
|
||||
- { key: H, mods: Alt|Shift, chars: "\x1bH" }
|
||||
- { key: I, mods: Alt|Shift, chars: "\x1bI" }
|
||||
- { key: J, mods: Alt|Shift, chars: "\x1bJ" }
|
||||
- { key: K, mods: Alt|Shift, chars: "\x1bK" }
|
||||
- { key: L, mods: Alt|Shift, chars: "\x1bL" }
|
||||
- { key: M, mods: Alt|Shift, chars: "\x1bM" }
|
||||
- { key: N, mods: Alt|Shift, chars: "\x1bN" }
|
||||
- { key: O, mods: Alt|Shift, chars: "\x1bO" }
|
||||
- { key: P, mods: Alt|Shift, chars: "\x1bP" }
|
||||
- { key: Q, mods: Alt|Shift, chars: "\x1bQ" }
|
||||
- { key: R, mods: Alt|Shift, chars: "\x1bR" }
|
||||
- { key: S, mods: Alt|Shift, chars: "\x1bS" }
|
||||
- { key: T, mods: Alt|Shift, chars: "\x1bT" }
|
||||
- { key: U, mods: Alt|Shift, chars: "\x1bU" }
|
||||
- { key: V, mods: Alt|Shift, chars: "\x1bV" }
|
||||
- { key: W, mods: Alt|Shift, chars: "\x1bW" }
|
||||
- { key: X, mods: Alt|Shift, chars: "\x1bX" }
|
||||
- { key: Y, mods: Alt|Shift, chars: "\x1bY" }
|
||||
- { key: Z, mods: Alt|Shift, chars: "\x1bZ" }
|
||||
- { key: Key1, mods: Alt, chars: "\x1b1" }
|
||||
- { key: Key2, mods: Alt, chars: "\x1b2" }
|
||||
- { key: Key3, mods: Alt, chars: "\x1b3" }
|
||||
- { key: Key4, mods: Alt, chars: "\x1b4" }
|
||||
- { key: Key5, mods: Alt, chars: "\x1b5" }
|
||||
- { key: Key6, mods: Alt, chars: "\x1b6" }
|
||||
- { key: Key7, mods: Alt, chars: "\x1b7" }
|
||||
- { key: Key8, mods: Alt, chars: "\x1b8" }
|
||||
- { key: Key9, mods: Alt, chars: "\x1b9" }
|
||||
- { key: Key0, mods: Alt, chars: "\x1b0" }
|
||||
- { key: Space, mods: Control, chars: "\x00" } # Ctrl + Space
|
||||
- { key: Grave, mods: Alt, chars: "\x1b`" } # Alt + `
|
||||
- { key: Grave, mods: Alt|Shift, chars: "\x1b~" } # Alt + ~
|
||||
- { key: Period, mods: Alt, chars: "\x1b." } # Alt + .
|
||||
- { key: Key8, mods: Alt|Shift, chars: "\x1b*" } # Alt + *
|
||||
- { key: Key3, mods: Alt|Shift, chars: "\x1b#" } # Alt + #
|
||||
- { key: Period, mods: Alt|Shift, chars: "\x1b>" } # Alt + >
|
||||
- { key: Comma, mods: Alt|Shift, chars: "\x1b<" } # Alt + <
|
||||
- { key: Minus, mods: Alt|Shift, chars: "\x1b_" } # Alt + _
|
||||
- { key: Key5, mods: Alt|Shift, chars: "\x1b%" } # Alt + %
|
||||
- { key: Key6, mods: Alt|Shift, chars: "\x1b^" } # Alt + ^
|
||||
- { key: Backslash, mods: Alt, chars: "\x1b\\" } # Alt + \
|
||||
- { key: Backslash, mods: Alt|Shift, chars: "\x1b|" } # Alt + |
|
||||
|
||||
|
||||
#colors: *gruvbox_material_medium_light
|
49
.config/dunst/dunstrc
Normal file
49
.config/dunst/dunstrc
Normal file
@ -0,0 +1,49 @@
|
||||
[global]
|
||||
font = "CozetteVector"
|
||||
allow_markup = yes
|
||||
format = "<b>%s</b>\n%b"
|
||||
sort = yes
|
||||
indicate_hidden = yes
|
||||
alignment = center
|
||||
show_age_threshold = 60
|
||||
word_wrap = yes
|
||||
ignore_newline = no
|
||||
geometry = "200x5-6+30"
|
||||
idle_threshold = 120
|
||||
monitor = 0
|
||||
follow = mouse
|
||||
sticky_history = yes
|
||||
line_height = 0
|
||||
separator_height = 2
|
||||
padding = 8
|
||||
horizontal_padding = 8
|
||||
separator_color = "#689d6a"
|
||||
startup_notification = false
|
||||
# https://github.com/knopwob/dunst/issues/26#issuecomment-36159395
|
||||
#icon_position = left
|
||||
#icon_folders = /usr/share/icons/elementary/actions/16/
|
||||
|
||||
[frame]
|
||||
width = 1
|
||||
color = "#689d6a"
|
||||
|
||||
[shortcuts]
|
||||
close = ctrl+space
|
||||
close_all = ctrl+shift+space
|
||||
history = ctrl+grave
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
background = "#fbf1c7"
|
||||
foreground = "#3c3836"
|
||||
timeout = 5
|
||||
|
||||
[urgency_normal]
|
||||
background = "#fbf1c7"
|
||||
foreground = "#3c3836"
|
||||
timeout = 20
|
||||
|
||||
[urgency_critical]
|
||||
background = "#9d0006"
|
||||
foreground = "#fbf1c7"
|
||||
timeout = 0
|
1
.config/spotifyd/.gitignore
vendored
Normal file
1
.config/spotifyd/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
spotifyd.conf
|
15
.config/spotifyd/spotifyd.conf.example
Normal file
15
.config/spotifyd/spotifyd.conf.example
Normal file
@ -0,0 +1,15 @@
|
||||
[global]
|
||||
username = "laskdfjalskdjfaklsdjflakjd"
|
||||
password = "asdfasdfasdfasdfasdf"
|
||||
on_song_change_hook = "/home/ME/scripts/songnotification"
|
||||
cache_path = "/home/ME/.cache/spotifyd"
|
||||
|
||||
device_name = "archbox"
|
||||
|
||||
|
||||
backend = "pulseaudio"
|
||||
bitrate = 160
|
||||
volume_normalisation = true
|
||||
normalisation_pregain = -10
|
||||
device_type = "computer"
|
||||
no_audio_cache = true
|
237
.config/sway/config
Normal file
237
.config/sway/config
Normal file
@ -0,0 +1,237 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term alacritty
|
||||
set $browser firefox
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
set $menu wofi --show=drun --lines=5 --prompt=""
|
||||
set $wallpapers_path $HOME/Wallpapers
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
output * bg `find $wallpapers_path -type f | shuf -n 1` fill
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
exec swayidle -w \
|
||||
timeout 600 'swaylock -f -c 000000' \
|
||||
timeout 900 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Browser
|
||||
bindsym $mod+Shift+b exec $browser
|
||||
# Emacs
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec emacs
|
||||
|
||||
# Brightness
|
||||
bindsym $mod+Shift+w exec "brightnessctl set +5%"
|
||||
bindsym $mod+Shift+s exec "brightnessctl set 5%-"
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 20px
|
||||
bindsym $down resize grow height 20px
|
||||
bindsym $up resize shrink height 20px
|
||||
bindsym $right resize grow width 20px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
#
|
||||
# Gaps
|
||||
#
|
||||
gaps inner 5
|
||||
default_border pixel 3
|
||||
client.focused "#000000" "#ffffff" "#000000"
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
#
|
||||
# Cursor
|
||||
#
|
||||
|
||||
set $my_cursor Bibata-Modern-Amber
|
||||
set $my_cursor_size 16
|
||||
|
||||
exec_always {
|
||||
gsettings set org.gnome.desktop.interface cursor-theme $my_cursor
|
||||
gsettings set org.gnome.desktop.interface cursor-size $my_cursor_size
|
||||
}
|
||||
|
72
.config/waybar/config
Normal file
72
.config/waybar/config
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
"position": "top",
|
||||
"spacing": 0,
|
||||
"modules-left": ["network", "clock"],
|
||||
"modules-center": ["sway/workspaces", "custom/spotify"],
|
||||
"modules-right": ["pulseaudio", "memory", "cpu", "temperature#cpu", "backlight", "battery"],
|
||||
|
||||
"clock": {
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": " {:%A, %d %B %Y, %H:%M}",
|
||||
"interval": 60
|
||||
},
|
||||
"backlight": {
|
||||
"format": " {}%"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage}%"
|
||||
},
|
||||
"memory": {
|
||||
"format": " {}%",
|
||||
"tooltip": false,
|
||||
},
|
||||
"temperature#cpu": {
|
||||
"critical-threshold": 70,
|
||||
"format": " {temperatureC}°C "
|
||||
},
|
||||
"custom/spotify": {
|
||||
"exec": "/home/logan/scripts/mediaplayer.py --player spotify --period 1 --width 18",
|
||||
"format": "{} ",
|
||||
"return-type": "json",
|
||||
"on-click": "playerctl play-pause",
|
||||
"on-scroll-up": "playerctl next",
|
||||
"on-scroll-down": "playerctl previous"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": " {ipaddr}",
|
||||
"format-ethernet": " {ipaddr}/{cidr}",
|
||||
"format-disconnected": "⚠ Disconnected",
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{icon} {volume}% {format_source}",
|
||||
"format-bluetooth": "{icon} {volume}% {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"
|
||||
},
|
||||
}
|
59
.config/waybar/style.css
Normal file
59
.config/waybar/style.css
Normal file
@ -0,0 +1,59 @@
|
||||
* {
|
||||
font-family: CozetteVector;
|
||||
font-size: 16px;
|
||||
color: #3C3836; /* Foreground "black" */
|
||||
}
|
||||
|
||||
window > box {
|
||||
margin: 4px 4px 4px 0px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(251,241,199,0.7); /* Background "wheat"-ish */
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
background: #fbf1c7;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background: #689d6a; /* Aqua */
|
||||
}
|
||||
|
||||
/* Modules */
|
||||
|
||||
#clock, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #pulseaudio, #custom-media, #custom-launcher, #custom-power, #tray, #mode, #idle_inhibitor , #mpd, .custom-spotify {
|
||||
padding: 0 10px;
|
||||
margin: 0px 5px;
|
||||
background: #fbf1c7;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #D79921;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
background-color: #98971A;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #98971A;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: #cc241d;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
background-color: #98971a;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #cc241d;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: #cc241d;
|
||||
}
|
5
.config/xremap/config.yml
Normal file
5
.config/xremap/config.yml
Normal file
@ -0,0 +1,5 @@
|
||||
modmap:
|
||||
- name: CapsLock Control
|
||||
remap: # Required
|
||||
KEY_CAPSLOCK: CONTROL_L
|
||||
CONTROL_L: KEY_ESC
|
20
.emacs.d/init.el
Normal file
20
.emacs.d/init.el
Normal file
@ -0,0 +1,20 @@
|
||||
(require 'org)
|
||||
|
||||
(org-babel-load-file
|
||||
(expand-file-name "settings.org"
|
||||
user-emacs-directory))
|
||||
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(package-selected-packages '(magit counsel doom-modeline doom-themes use-package))
|
||||
'(tab-width 2))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
)
|
||||
|
262
.emacs.d/settings.org
Normal file
262
.emacs.d/settings.org
Normal file
@ -0,0 +1,262 @@
|
||||
#+TITLE: Simponic's Settings
|
||||
#+AUTHOR: Simponic
|
||||
#+STARTUP: fold
|
||||
|
||||
* Packages
|
||||
** Melpa
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "https://melpa.org/packages/") t)
|
||||
#+END_SRC
|
||||
** use-package
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(dolist (package '(use-package))
|
||||
(unless (package-installed-p package)
|
||||
(package-install package)))
|
||||
#+END_SRC
|
||||
|
||||
* General emacs
|
||||
** Tab bar mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-tabbar-buffer-groups () ;; customize to show all normal files in one group
|
||||
(list (cond ((string-equal "*" (substring (buffer-name) 0 1)) "emacs")
|
||||
((eq major-mode 'dired-mode) "emacs")
|
||||
(t "user"))))
|
||||
(setq tabbar-buffer-groups-function 'my-tabbar-buffer-groups)
|
||||
(tab-bar-mode)
|
||||
#+END_SRC
|
||||
** Indentation
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq default-tab-width 2)
|
||||
(setq-default tab-width 2)
|
||||
(setq-default indent-tabs-mode nil)
|
||||
#+END_SRC
|
||||
** Line numbers
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq display-line-numbers-type 'relative)
|
||||
(global-display-line-numbers-mode)
|
||||
#+END_SRC
|
||||
** Filesystem stuff
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq auto-save-default nil)
|
||||
(setq make-backup-files nil)
|
||||
(setq create-lockfiles nil)
|
||||
(global-auto-revert-mode t) ;; Change files on disk as they are updated
|
||||
#+END_SRC
|
||||
** GUI stuff
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(menu-bar-mode -1)
|
||||
(setq inhibit-startup-screen t) ;; Startup screen
|
||||
(if (display-graphic-p)
|
||||
(funcall (lambda ()
|
||||
(tool-bar-mode -1) ;; System bar
|
||||
(set-fringe-mode '(1 . 1)) ;; Minimize arrows before and after wrapped lines by setting fringe to 1px
|
||||
(toggle-scroll-bar -1)))) ;; Scroll bar
|
||||
(setq frame-resize-pixelwise t) ;; Use 100% of window space
|
||||
#+END_SRC
|
||||
** System path (macos)
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; Use system path on macos - needed for node
|
||||
(use-package exec-path-from-shell
|
||||
:ensure t
|
||||
:init
|
||||
(when (memq window-system '(mac ns x))
|
||||
(exec-path-from-shell-initialize)))
|
||||
#+END_SRC
|
||||
|
||||
* Theming
|
||||
** Highlight current line
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(global-hl-line-mode)
|
||||
#+END_SRC
|
||||
** Font
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(let ((font "CozetteVector-14"))
|
||||
(set-face-attribute 'default nil :font font)
|
||||
(set-frame-font font nil t))
|
||||
#+END_SRC
|
||||
** Doom-themes
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package doom-themes
|
||||
:ensure t
|
||||
:config
|
||||
;; Global settings (defaults)
|
||||
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
|
||||
doom-themes-enable-italic t) ; if nil, italics is universally disabled
|
||||
(load-theme 'doom-gruvbox-light t)
|
||||
|
||||
;; Enable flashing mode-line on errors
|
||||
(doom-themes-visual-bell-config)
|
||||
;; Enable custom neotree theme (all-the-icons must be installed!)
|
||||
(doom-themes-neotree-config)
|
||||
;; or for treemacs users
|
||||
(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme
|
||||
(doom-themes-treemacs-config)
|
||||
;; Corrects (and improves) org-mode's native fontification.
|
||||
(doom-themes-org-config))
|
||||
#+END_SRC
|
||||
** Doom-modeline
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package doom-modeline
|
||||
:ensure t
|
||||
:init (doom-modeline-mode 1))
|
||||
#+END_SRC
|
||||
** All the icons
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package all-the-icons
|
||||
:ensure t)
|
||||
#+END_SRC
|
||||
|
||||
* Projectile
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package projectile
|
||||
:bind ("C-c p" . 'projectile-command-map)
|
||||
:init (projectile-mode +1) (setq projectile-enable-caching t)
|
||||
:ensure t)
|
||||
#+END_SRC
|
||||
|
||||
* Swiper, Ivy
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package counsel
|
||||
:ensure t
|
||||
:bind
|
||||
("C-s" . 'swiper-isearch)
|
||||
("M-x" . 'counsel-M-x)
|
||||
:init
|
||||
(setq ivy-use-virtual-buffers t)
|
||||
(setq enable-recursive-minibuffers t)
|
||||
(ivy-mode 1))
|
||||
#+END_SRC
|
||||
|
||||
* Neotree
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package neotree
|
||||
:ensure t
|
||||
:bind ("C-c j" . 'neotree-toggle)
|
||||
:init
|
||||
;; slow rendering
|
||||
(setq inhibit-compacting-font-caches t)
|
||||
|
||||
;; set icons theme
|
||||
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
|
||||
|
||||
;; Every time when the neotree window is opened, let it find current file and jump to node
|
||||
(setq neo-smart-open t)
|
||||
|
||||
;; When running ‘projectile-switch-project’ (C-c p p), ‘neotree’ will change root automatically
|
||||
(setq projectile-switch-project-action 'neotree-projectile-action)
|
||||
|
||||
(setq neo-window-width 35)
|
||||
|
||||
;; show hidden files
|
||||
(setq-default neo-show-hidden-files t))
|
||||
#+END_SRC
|
||||
|
||||
* Org mode
|
||||
** General
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq org-startup-indented t)
|
||||
#+END_SRC
|
||||
** Babel
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((lisp . t)
|
||||
(python . t)))
|
||||
#+END_SRC
|
||||
** org-bullets
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package org-bullets
|
||||
:ensure t
|
||||
:init
|
||||
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
|
||||
#+END_SRC
|
||||
** org-appear
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package org-appear
|
||||
:ensure t
|
||||
:init
|
||||
(add-hook 'org-mode-hook 'org-appear-mode))
|
||||
#+END_SRC
|
||||
|
||||
* Development
|
||||
** Git
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package magit :ensure t)
|
||||
#+END_SRC
|
||||
** Company mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package company
|
||||
:ensure t
|
||||
:init
|
||||
(global-company-mode t)
|
||||
:bind (:map company-active-map
|
||||
("C-n" . company-select-next)
|
||||
("C-p" . company-select-previous))
|
||||
:config
|
||||
(setq company-idle-delay 0.3))
|
||||
#+END_SRC
|
||||
** LSP Mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package lsp-mode
|
||||
:ensure t
|
||||
:init
|
||||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
||||
(elixir-mode . lsp)
|
||||
(rust-mode . lsp)
|
||||
(typescript-mode . lsp)
|
||||
;; if you want which-key integration
|
||||
(lsp-mode . lsp-enable-which-key-integration))
|
||||
:commands lsp)
|
||||
#+END_SRC
|
||||
** Languages
|
||||
*** Common Lisp
|
||||
**** Slime
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package slime
|
||||
:ensure t
|
||||
:init
|
||||
(setq inferior-lisp-program "sbcl"))
|
||||
#+END_SRC
|
||||
*** Elixir
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package elixir-mode
|
||||
:ensure t)
|
||||
#+END_SRC
|
||||
*** Rust
|
||||
After installing the ~rust-analyzer~ program, the following can be used:
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package rust-mode
|
||||
:ensure t)
|
||||
(setq lsp-rust-server 'rust-analyzer)
|
||||
#+END_SRC
|
||||
|
||||
*** Web Stuff
|
||||
**** Web Mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; web-mode
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
(setq web-mode-css-indent-offset 2)
|
||||
(use-package web-mode
|
||||
:ensure t
|
||||
:mode (("\\.js\\'" . web-mode)
|
||||
("\\.jsx\\'" . web-mode)
|
||||
("\\.ts\\'" . web-mode)
|
||||
("\\.tsx\\'" . web-mode)
|
||||
("\\.html\\'" . web-mode))
|
||||
:commands web-mode)
|
||||
#+END_SRC
|
||||
**** Prettier
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package prettier-js
|
||||
:ensure t)
|
||||
(add-hook 'web-mode-hook #'(lambda ()
|
||||
(enable-minor-mode
|
||||
'("\\.jsx?\\'" . prettier-js-mode))
|
||||
(enable-minor-mode
|
||||
'("\\.tsx?\\'" . prettier-js-mode))))
|
||||
#+END_SRC
|
45
.gitignore
vendored
Normal file
45
.gitignore
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
*
|
||||
!.gitignore
|
||||
!.gitmodules
|
||||
|
||||
!scripts
|
||||
!scripts/*
|
||||
|
||||
!.vimrc
|
||||
|
||||
!.zshrc
|
||||
!.spaceshiprc.zsh
|
||||
!ascii-arts
|
||||
!ascii-arts/*
|
||||
!zsh-stuff
|
||||
|
||||
!.config
|
||||
!.config/picom
|
||||
!.config/picom/*
|
||||
|
||||
!.config/alacritty
|
||||
!.config/alacritty/*
|
||||
|
||||
!.config/dunst
|
||||
!.config/dunst/*
|
||||
|
||||
!.config/waybar
|
||||
!.config/waybar/*
|
||||
|
||||
!.config/sway
|
||||
!.config/sway/*
|
||||
|
||||
!.config/xremap
|
||||
!.config/xremap/*
|
||||
|
||||
!.config/systemd
|
||||
!.config/systemd/*
|
||||
|
||||
!.config/spotifyd
|
||||
!.config/spotifyd/*
|
||||
|
||||
!.emacs.d
|
||||
!.emacs.d/*
|
||||
|
||||
!.stumpwm.d
|
||||
!.stumpwm.d/*
|
9
.gitmodules
vendored
Normal file
9
.gitmodules
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
[submodule "zsh-stuff/zsh-syntax-highlighting"]
|
||||
path = zsh-stuff/zsh-syntax-highlighting
|
||||
url = https://github.com/zsh-users/zsh-syntax-highlighting.git
|
||||
[submodule "zsh-stuff/spaceship-prompt"]
|
||||
path = zsh-stuff/spaceship-prompt
|
||||
url = https://github.com/spaceship-prompt/spaceship-prompt.git
|
||||
[submodule ".stumpwm.d/modules"]
|
||||
path = .stumpwm.d/modules
|
||||
url = https://github.com/stumpwm/stumpwm-contrib
|
11
.spaceshiprc.zsh
Normal file
11
.spaceshiprc.zsh
Normal file
@ -0,0 +1,11 @@
|
||||
# Display time
|
||||
SPACESHIP_TIME_SHOW=true
|
||||
|
||||
# Display username always
|
||||
SPACESHIP_USER_SHOW=always
|
||||
|
||||
# Do not truncate path in repos
|
||||
SPACESHIP_DIR_TRUNC_REPO=false
|
||||
|
||||
SPACESHIP_HOST_SHOW="always"
|
||||
SPACESHIP_GIT_SHOW=always
|
3
.stumpwm.d/.gitignore
vendored
Normal file
3
.stumpwm.d/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
*~
|
||||
*.log.1
|
||||
*.log
|
53
.stumpwm.d/README.md
Normal file
53
.stumpwm.d/README.md
Normal file
@ -0,0 +1,53 @@
|
||||
## Dependencies
|
||||
|
||||
### SBCL
|
||||
|
||||
`sudo pacman -S sbcl`
|
||||
|
||||
### Quicklisp:
|
||||
|
||||
In a shell:
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
curl -O https://beta.quicklisp.org/quicklisp.lisp
|
||||
sbcl --load quicklisp.lisp
|
||||
```
|
||||
|
||||
Then in the REPL:
|
||||
|
||||
```common-lisp
|
||||
(quicklisp-quickstart:install)
|
||||
(ql:add-to-init-file)
|
||||
```
|
||||
|
||||
And install some packages from quicklisp:
|
||||
|
||||
```common-lisp
|
||||
(ql:quickload '(:clx :cl-ppcre :alexandria))
|
||||
```
|
||||
|
||||
### Other
|
||||
|
||||
You'll probably want some stuff on your modeline. My modeline setup is hacky AF so you'll want the following:
|
||||
|
||||
- `ifconfig` (in `net-tools` in Arch)
|
||||
- `acpi`
|
||||
- `lm_sensors`
|
||||
- `pamixer`
|
||||
|
||||
## Building and Installing
|
||||
|
||||
```bash
|
||||
mkdir ~/src
|
||||
git clone git@github.com:stumpwm/stumpwm.git ~/src/stumpwm
|
||||
cd ~/src/stumpwm
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j6
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
- If the environment variable LAPTOP exists, then the battery will show in the modeling. You can edit `/etc/environment` if you want it in other programs too.
|
9
.stumpwm.d/gaps.lisp
Normal file
9
.stumpwm.d/gaps.lisp
Normal file
@ -0,0 +1,9 @@
|
||||
(add-to-load-path "~/.stumpwm.d/modules/util/swm-gaps")
|
||||
|
||||
(load-module "swm-gaps")
|
||||
|
||||
(setf swm-gaps:*head-gaps-size* 0
|
||||
swm-gaps:*inner-gaps-size* 5
|
||||
swm-gaps:*outer-gaps-size* 5)
|
||||
|
||||
(swm-gaps:toggle-gaps)
|
5
.stumpwm.d/groups.lisp
Normal file
5
.stumpwm.d/groups.lisp
Normal file
@ -0,0 +1,5 @@
|
||||
(grename "misc")
|
||||
(gnew "www")
|
||||
(gnew "txt")
|
||||
(gnew "sh")
|
||||
(gnew "chat")
|
21
.stumpwm.d/init.lisp
Normal file
21
.stumpwm.d/init.lisp
Normal file
@ -0,0 +1,21 @@
|
||||
(in-package :stumpwm)
|
||||
|
||||
;; Utils and helpers
|
||||
(load "~/.stumpwm.d/utils.lisp")
|
||||
|
||||
;; Swank
|
||||
(load "~/.stumpwm.d/swank.lisp")
|
||||
|
||||
;; Keybindings and whatnot
|
||||
(load "~/.stumpwm.d/keyboard.lisp")
|
||||
|
||||
;; Groups
|
||||
(load "~/.stumpwm.d/groups.lisp")
|
||||
|
||||
;; The actual rice
|
||||
(load "~/.stumpwm.d/theme.lisp")
|
||||
(load "~/.stumpwm.d/gaps.lisp")
|
||||
(load "~/.stumpwm.d/modeline.lisp")
|
||||
|
||||
;; Follow focus on mouse hover
|
||||
(setq *mouse-focus-policy* :sloppy)
|
22
.stumpwm.d/keyboard.lisp
Normal file
22
.stumpwm.d/keyboard.lisp
Normal file
@ -0,0 +1,22 @@
|
||||
;; C-; as prefix key
|
||||
(stumpwm:set-prefix-key (stumpwm:kbd "C-;"))
|
||||
|
||||
(define-key *top-map* (kbd "s-n") "pull-hidden-next")
|
||||
(define-key *top-map* (kbd "s-p") "pull-hidden-previous")
|
||||
|
||||
(define-key *top-map* (kbd "s-h") "resize 40 0")
|
||||
(define-key *top-map* (kbd "s-l") "resize -40 0")
|
||||
(define-key *top-map* (kbd "s-j") "resize 0 40")
|
||||
(define-key *top-map* (kbd "s-k") "resize 0 -40")
|
||||
|
||||
(define-key *top-map* (kbd "s-u") "exec pamixer -i 5")
|
||||
(define-key *top-map* (kbd "s-d") "exec pamixer -d 5")
|
||||
|
||||
(define-key *top-map* (kbd "s-w") "exec xbacklight -inc 5")
|
||||
(define-key *top-map* (kbd "s-s") "exec xbacklight -dec 5")
|
||||
|
||||
(define-key *top-map* (kbd "s-TAB") "fnext")
|
||||
(define-key *top-map* (kbd "s-ISO_Left_Tab") "fprev")
|
||||
|
||||
(define-key *root-map* (kbd "C-t") "exec alacritty")
|
||||
(define-key *root-map* (kbd "b") "exec firefox")
|
44
.stumpwm.d/modeline.lisp
Normal file
44
.stumpwm.d/modeline.lisp
Normal file
@ -0,0 +1,44 @@
|
||||
(defun make-bar (label percentage-function &optional (format-string "(~a\%)"))
|
||||
(let
|
||||
((percentage (funcall percentage-function)))
|
||||
(concat label ": \[" (bar percentage 5 #\X #\=) "\]" (format nil format-string percentage))))
|
||||
|
||||
(defun get-volume ()
|
||||
;; Return the volume as a percentage
|
||||
(parse-integer (run-shell-command "pamixer --get-volume" t)))
|
||||
|
||||
(defun get-battery ()
|
||||
;; Return the current battery level as a percentage
|
||||
(parse-integer (run-shell-command "acpi | awk -F ',' '{print $2}' | grep -Po '\\d+'" t)))
|
||||
|
||||
(defun get-ip ()
|
||||
;; Return the current ip of the default network interface
|
||||
(run-shell-command "printf $(ifconfig $(route | grep '^default' | grep -o '[^ ]*$') | grep -Po '\\d+\\.\\d+\\.\\d+\\.\\d+' | head -n1)" t))
|
||||
|
||||
(defun get-cpu-temp ()
|
||||
;; Return current temperature of the first cpu package (core)
|
||||
(parse-integer (run-shell-command "sensors -A | grep 'Package' | awk '{print $4+0}'" t)))
|
||||
|
||||
(setf *status-seperator* " ^3|^] ")
|
||||
(setf *mode-line* '(
|
||||
"[^B%n^b]"
|
||||
"%g"
|
||||
"%W"
|
||||
"^>"
|
||||
"%d"
|
||||
(:eval (make-bar "VOL" #'get-volume))
|
||||
(:eval (make-bar "TEMP" #'get-cpu-temp "(~a°C)"))
|
||||
(:eval (get-ip))))
|
||||
(if (is-laptop)
|
||||
(push '(:eval (make-bar "BAT" #'get-battery)) (cdr (last *mode-line*))))
|
||||
(setf *screen-mode-line-format* (insert-seperators *mode-line* *status-seperator*))
|
||||
|
||||
(setf *window-format* "%n%s%c")
|
||||
(setf *time-modeline-string* "%a %b %e %k:%M:%S")
|
||||
(setf *mode-line-timeout* 1)
|
||||
|
||||
;; Show on each screen
|
||||
(mapcar
|
||||
(lambda (x)
|
||||
(stumpwm:enable-mode-line (stumpwm:current-screen) x t))
|
||||
(stumpwm:screen-heads (stumpwm:current-screen)))
|
7
.stumpwm.d/swank.lisp
Normal file
7
.stumpwm.d/swank.lisp
Normal file
@ -0,0 +1,7 @@
|
||||
;; Connect in emacs with slime-connect on port 4004
|
||||
|
||||
(require :swank)
|
||||
(swank-loader:init)
|
||||
(swank:create-server :port 4004
|
||||
:style swank:*communication-style*
|
||||
:dont-close t)
|
11
.stumpwm.d/theme.lisp
Normal file
11
.stumpwm.d/theme.lisp
Normal file
@ -0,0 +1,11 @@
|
||||
(setq *message-window-gravity* :center)
|
||||
(setq *input-window-gravity* :center)
|
||||
|
||||
(setq *mode-line-background-color* "AntiqueWhite")
|
||||
(setq *mode-line-foreground-color* "Gray20")
|
||||
|
||||
(setf *bar-med-color* "^b^1") ;; Red
|
||||
(setf *bar-crit-color* "^b^2") ;; Green
|
||||
(setf *bar-hi-color* "^b^3") ;; Yellow
|
||||
|
||||
(setf *mode-line-highlight-template* "(^R~A^r)")
|
18
.stumpwm.d/utils.lisp
Normal file
18
.stumpwm.d/utils.lisp
Normal file
@ -0,0 +1,18 @@
|
||||
(defun string-include (string1 string2)
|
||||
(let* ((string1 (string string1)) (length1 (length string1)))
|
||||
(if (zerop length1)
|
||||
nil
|
||||
(labels ((sub (s)
|
||||
(cond
|
||||
((> length1 (length s)) nil)
|
||||
((string= string1 s :end2 (length string1)) string1)
|
||||
(t (sub (subseq s 1))))))
|
||||
(sub (string string2))))))
|
||||
|
||||
(defun is-laptop ()
|
||||
(loop for item in (sb-ext:posix-environ) thereis (string-include "LAPTOP" item)))
|
||||
|
||||
(defun insert-seperators (l &optional (seperator " | ") (seperated-list (list seperator)))
|
||||
(if (car l)
|
||||
(insert-seperators (cdr l) seperator (nconc (list seperator (car l)) seperated-list))
|
||||
(reverse seperated-list)))
|
30
.vimrc
Normal file
30
.vimrc
Normal file
@ -0,0 +1,30 @@
|
||||
syntax on
|
||||
|
||||
set autoindent
|
||||
set nowrap
|
||||
set backspace=indent,eol,start
|
||||
|
||||
set tabstop=2
|
||||
set shiftwidth=2
|
||||
set expandtab
|
||||
|
||||
set cursorline
|
||||
set number relativenumber
|
||||
|
||||
set laststatus=2
|
||||
set statusline=
|
||||
set statusline+=\ %f
|
||||
set statusline+=%=
|
||||
set statusline+=\ %{&fileencoding?&fileencoding:&encoding}
|
||||
set statusline+=\[%{&fileformat}\]
|
||||
set statusline+=\ %p%%
|
||||
set statusline+=\ %l:%c
|
||||
|
||||
highlight Normal ctermbg=NONE
|
||||
highlight nonText ctermbg=NONE
|
||||
highlight CursorLine ctermbg=255 ctermfg=NONE
|
||||
highlight StatusLine ctermbg=255
|
||||
highlight StatusLineTerm ctermbg=238 ctermfg=255
|
||||
highlight StatusLineTermNC ctermbg=232 ctermfg=238
|
||||
|
||||
set encoding=utf-8
|
52
.zshrc
Normal file
52
.zshrc
Normal file
@ -0,0 +1,52 @@
|
||||
PATH=$PATH:$HOME/scripts:/usr/local/i386elfgcc/bin/:$HOME/.local/bin:/usr/local/opt/binutils/bin:/usr/local/opt/gnu-tar/libexec/gnubin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/findutils/libexec/gnubin:/usr/local/opt/coreutils/libexec/gnubin:$HOME/.elixir-ls/release:$HOME/.rowswell/bin
|
||||
|
||||
# Print a random ascii arts from ~/ascii-arts
|
||||
if [ -d "$HOME/ascii-arts" ]
|
||||
then
|
||||
echo
|
||||
echo "======="
|
||||
logo="$(find $HOME/ascii-arts/* | shuf -n1)"
|
||||
printf "$(echo $logo | grep -o "[0-9a-zA-Z+\-\.]*$")\n"
|
||||
echo "======="
|
||||
printf "$(cat $logo)\n\n"
|
||||
fi
|
||||
|
||||
alias ..="cd .."
|
||||
alias gc="git checkout"
|
||||
alias gcm="git commit -S -m"
|
||||
alias gb="git branch"
|
||||
alias gbm="git branch -m"
|
||||
alias ga="git add"
|
||||
alias gaa="git add ."
|
||||
alias gpl="git pull"
|
||||
alias gps="git push"
|
||||
alias gm="git merge"
|
||||
alias gss="git status"
|
||||
alias gsh="git stash"
|
||||
alias gl="git log"
|
||||
|
||||
alias sbcl="rlwrap sbcl"
|
||||
# Muscle memory is killing me man
|
||||
alias vim="nvim"
|
||||
alias startx="sway"
|
||||
|
||||
export TERM=xterm-256color
|
||||
|
||||
# Alt+b stops at forwardslashes
|
||||
backward-kill-dir () {
|
||||
local WORDCHARS=${WORDCHARS/\/}
|
||||
zle backward-kill-word
|
||||
zle -f kill
|
||||
}
|
||||
zle -N backward-kill-dir
|
||||
bindkey '^[^?' backward-kill-dir
|
||||
|
||||
# ZSH programs
|
||||
source ~/zsh-stuff/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source ~/zsh-stuff/spaceship-prompt/spaceship.zsh
|
||||
|
||||
# History
|
||||
HISTFILE=~/.zsh_history
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
setopt appendhistory
|
7
ascii-arts/bat.txt
Normal file
7
ascii-arts/bat.txt
Normal file
@ -0,0 +1,7 @@
|
||||
=/\ /\=
|
||||
/ \'._ (\_/) _.'/ \
|
||||
/ .''._'--(o.o)--'_.''. \
|
||||
/.' _/ |`'=/ " \='`| \_ `.\
|
||||
/` .' `\;-,'\___/',-;/` '. '\
|
||||
/.-' `\(-V-)/` `-.\
|
||||
` " " `
|
12
ascii-arts/bear.txt
Normal file
12
ascii-arts/bear.txt
Normal file
@ -0,0 +1,12 @@
|
||||
(()__(()
|
||||
/ \
|
||||
( / \ \
|
||||
\ o o /
|
||||
(_()_)__/ \
|
||||
/ _,==.____ \
|
||||
( |--| )
|
||||
/\_.|__|'-.__/\_
|
||||
/ ( / \
|
||||
\ \ ( /
|
||||
) '._____) /
|
||||
(((____.--(((____/
|
19
ascii-arts/bsd.txt
Normal file
19
ascii-arts/bsd.txt
Normal file
@ -0,0 +1,19 @@
|
||||
, ,
|
||||
/( )`
|
||||
\ \___ / |
|
||||
/- _ `-/ '
|
||||
(/\/ \ \ /\
|
||||
/ / | ` \
|
||||
O O ) / |
|
||||
`-^--'`< '
|
||||
TM (_.) _ ) /
|
||||
| | |\ | ~|~ \ / `.___/` /
|
||||
| | | \ | | X `-----' /
|
||||
`__| | \| _|_ / \ <----. __ / __ \
|
||||
<----|====O)))==) \) /====
|
||||
<----' `--' `.__,' \
|
||||
| |
|
||||
\ /
|
||||
______( (_ / \______
|
||||
,' ,-----' | \
|
||||
`--{__________) \/
|
23
ascii-arts/c++.txt
Normal file
23
ascii-arts/c++.txt
Normal file
@ -0,0 +1,23 @@
|
||||
.-.`
|
||||
`.://////:.`
|
||||
.-//////////////-.
|
||||
`-:////////////////////:-`
|
||||
`.-///////+oyhdmmmmdhyo+///////-.`
|
||||
`-:///////+ymMMMMMMMMMMMMMMmy+///////:-`
|
||||
////////+hMMMMMMMMMMMMMMMMMMMMh+///////:
|
||||
///////sNMMMMMMMMMNNNNMMMMMMMMMNo///////
|
||||
//////sMMMMMMMMds+////+sdMMMNdy+////////
|
||||
/////+NMMMMMMm+//////////+ys+//////++///
|
||||
/////yMMMMMMN+/////////////dMy////yMd///
|
||||
/////hMMMMMMm////////////mMMMMMyhMMMMMm/
|
||||
/////yMMMMMMN+//:::::::////dMy////yMd///
|
||||
/////+NMMMMMMm/::::::::::/hs+//////++///
|
||||
//////sMMMMMMMMho/::::/ohMMMMmho////////
|
||||
/////::+NMMMMMMMMMNNNNMMMMMMMMMN+://////
|
||||
:/:::::::yMMMMMMMMMMMMMMMMMMMMy:::::::/:
|
||||
.-::::::::sdMMMMMMMMMMMMMMds::::::::-.
|
||||
`.-:::::::+shddmmddhs+:::::::-.`
|
||||
`.-::::::::::::::::::::-.`
|
||||
`.-::::::::::::-.`
|
||||
`.-::::::-.`
|
||||
`..`
|
14
ascii-arts/calvin-and-hobbes.txt
Normal file
14
ascii-arts/calvin-and-hobbes.txt
Normal file
@ -0,0 +1,14 @@
|
||||
__:.__
|
||||
(_:..'"=
|
||||
::/ o o\ AHAH!
|
||||
;'-' (_) Spaceman Spiff .
|
||||
'-._ ;-' wins again ! _'._|\/:
|
||||
.:; ; . '- ' /_
|
||||
:.. ; ;, \ _/, "_<
|
||||
:.|..| ;: \__ '._____ _)
|
||||
:.|.'| || _/ /
|
||||
:.|..| :' `;--:
|
||||
'.|..|:': _ _ _ :|_\:
|
||||
.. _:|__| '.\.''..' ) ___________ ( )_):|_|:
|
||||
:....::''::/ | : :|''| "/ /_=_=_=_=_=/ :_[__'_\3_)
|
||||
'''' '-''-'-'.__)-'
|
9
ascii-arts/city.txt
Normal file
9
ascii-arts/city.txt
Normal file
@ -0,0 +1,9 @@
|
||||
.|
|
||||
| |
|
||||
|'| ._____
|
||||
___ | | |. |' .---"|
|
||||
_ .-' '-. | | .--'| || | _| |
|
||||
.-'| _.| | || '-__ | | | || |
|
||||
|' | |. | || | | | | || |
|
||||
___| '-' ' "" '-' '-.' '` |____
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
23
ascii-arts/emacs.txt
Normal file
23
ascii-arts/emacs.txt
Normal file
@ -0,0 +1,23 @@
|
||||
mddhysssssssssyyhdm
|
||||
mhyso++++++++++oooooossydm
|
||||
mhyo++++++++++++oooooooooooosydm
|
||||
mhso++++++++++++/::-.`` `.:ooooosydm
|
||||
dyo++++++++++oo+++++++/: `ooooooshd
|
||||
mhs+++++++++//::::---..`` `ooooooooyd
|
||||
mho++++++++. ``....---/ooooooooooyd
|
||||
ho++++++oo+- ./+oooooooooooooooooooossyd
|
||||
dy+++++oooooo/. `:+ooooooooooooooooosssssshm
|
||||
ho+oooooooooooo+/-` `.:+ooooooooooossssssssyd
|
||||
mhooooooooooooooooo+/-.` .:+ooooosssssssssssd
|
||||
dyooooooooooo/:-.` `.-:/ossssssssssssssd
|
||||
mhoooooooo/- `-:/+ooossssssssssssssssssd
|
||||
hooooooo- `:ooooooosssssssssssssssssssyd
|
||||
dyoooooo `oooooosssssssssssssssssssssshm
|
||||
hsooooo+. .:+oossssssssssssssssssssssyd
|
||||
mhsoooooo+:-` `````......-:+ssssssyd
|
||||
mhsoooooooooo+/:----------. `:sssssyd
|
||||
dysoooosssssssssso+/:-.``.-:/osssssshm
|
||||
mhyssssssso++/::://++ossssssssssshd
|
||||
mdysssssssssssssssssssssssssyhd
|
||||
mdhyssssssssssssssssssyhdm
|
||||
mmdhhyyyyyyyyyhhdmm
|
10
ascii-arts/floppy.txt
Normal file
10
ascii-arts/floppy.txt
Normal file
@ -0,0 +1,10 @@
|
||||
.-.-----------.-.
|
||||
| |-----------|#|
|
||||
| |-----------| |
|
||||
| |-----------| |
|
||||
| |-----------| |
|
||||
| "-----------' |
|
||||
| .-----.-.. |
|
||||
| | | || |||
|
||||
| | | || \/|
|
||||
"--^-----^-^^---'
|
15
ascii-arts/gameboy.txt
Normal file
15
ascii-arts/gameboy.txt
Normal file
@ -0,0 +1,15 @@
|
||||
_____________
|
||||
| _"_________ |
|
||||
||.---------.||
|
||||
||| |||
|
||||
||| |||
|
||||
||| |||
|
||||
||'---------'/|
|
||||
| """"""""""` |
|
||||
| || ^^^ () |
|
||||
|[ ] () |
|
||||
| || |
|
||||
| _ _ |
|
||||
| :::|
|
||||
| .::'/
|
||||
'""""""""""""`
|
10
ascii-arts/piglet.txt
Normal file
10
ascii-arts/piglet.txt
Normal file
@ -0,0 +1,10 @@
|
||||
_
|
||||
_<_/_
|
||||
__/ _>
|
||||
'\ ' |
|
||||
\___/
|
||||
/+++\
|
||||
o=|..|..|
|
||||
| o/..|
|
||||
0==|+++++|
|
||||
0======/
|
14
ascii-arts/pooh-bear.txt
Normal file
14
ascii-arts/pooh-bear.txt
Normal file
@ -0,0 +1,14 @@
|
||||
_
|
||||
__( )_
|
||||
( (o____
|
||||
| |
|
||||
| (__/
|
||||
\ / ___
|
||||
/ \ \___/
|
||||
/ ^ / \
|
||||
| | |__|_HUNNY |
|
||||
| \______)____/
|
||||
\ /
|
||||
\ /_
|
||||
| ( __)
|
||||
(____)
|
26
ascii-arts/python.txt
Normal file
26
ascii-arts/python.txt
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
.-://++++++++++/:-.`
|
||||
-/+++++++++++++++++++/:.
|
||||
+++:` .++++++++++++++++/`
|
||||
+++: .++++++++++++++///-
|
||||
+++++++++++++++++++/////-
|
||||
::::::::::-:+++++///////-
|
||||
`--------------------+++/////////-.yyssss+-
|
||||
./+++++++++++++++++++++////////////--ddddddddy`
|
||||
:++++++++++++++++++++++/////////////--dddddddddh`
|
||||
-+++++++++++++++++++++///////////////.:dddddddddds
|
||||
/+++++++++++++++++++////////////////:`yddddddddddd
|
||||
+++++++++++++++++/////////////////:..sdddddddddddd
|
||||
+++++++++++++/:-.-:////////////::-/sdddddddddddddd
|
||||
++++++++++++:`:sdmdddddddddddddddddddddddddddddddd
|
||||
/++++++++++/ ommmddddddddddddddddddddddddddddddddd
|
||||
-++++++++//:`mmdddddddddddddddddddddddddddddddddd+
|
||||
:++++++///:`dddddddddddddddddddddddddddddddddddy`
|
||||
-/++/////:`dddddddddddddddddddddddddddddddddy:
|
||||
`.::::::-`dddddddddddds++++++++++++++++++/.
|
||||
`ddddddddddddhyyyyyyyyyyy/
|
||||
`dddddddddddddddddddddddd/
|
||||
`ddddddddddddddddd: `+ddd/
|
||||
`hdddddddddddddddd/``+ddd/
|
||||
`oddddddddddddddddddddh+
|
||||
`:+syhdddddddddyy++-`
|
7
ascii-arts/rubiks.txt
Normal file
7
ascii-arts/rubiks.txt
Normal file
@ -0,0 +1,7 @@
|
||||
_ _ _
|
||||
/_/_/_/\
|
||||
/_/_/_/\/\
|
||||
/_/_/_/\/\/\
|
||||
\_\_\_\/\/\/
|
||||
\_\_\_\/\/
|
||||
\_\_\_\/
|
16
ascii-arts/tux.txt
Normal file
16
ascii-arts/tux.txt
Normal file
@ -0,0 +1,16 @@
|
||||
_nnnn_
|
||||
dGGGGMMb ,"""""""""""""".
|
||||
@p~qp~~qMb | Linux Rules! |
|
||||
M|@||@) M| _;..............'
|
||||
@,----.JM| -'
|
||||
JS^\__/ qKL
|
||||
dZP qKRb
|
||||
dZP qKKb
|
||||
fZP SMMb
|
||||
HZM MMMM
|
||||
FqM MMMM
|
||||
__| ". |\dS"qML
|
||||
| `. | `' \Zq
|
||||
_) \.___.,| .'
|
||||
\____ )MMMMMM| .'
|
||||
`-' `--'
|
23
ascii-arts/vim.txt
Normal file
23
ascii-arts/vim.txt
Normal file
@ -0,0 +1,23 @@
|
||||
-o/-
|
||||
sdddddddddddddddo :///+- yhhhhhhhhhhhhhhh:
|
||||
hhhhdddddddddhhh+ -/////- dhhhddddddddddds/
|
||||
``.dddddddddho:.`.://///:.`-yhdddddddddy+-
|
||||
`dddddddddho- ////////-.omdddddddddy+-
|
||||
`dddddddddho- /////:-.omdddddddddy+-
|
||||
`dddddddddho- ///:-.smdddddddddyo-
|
||||
`dddddddddho- /:-.smdddddddddyo-`-
|
||||
`dddddddddho- ..smdddddddddho:`-:++-
|
||||
--`dddddddddho-`smdddddddddho:`-:////++-
|
||||
-so.`dddddddddhosmdddddddddho:`.:////////++-
|
||||
:+:/.`dddddddddhodddddddddho:`.:///////////:/:
|
||||
`-:.`dddddddddddddddddhs+:`.:////////////:.`
|
||||
```ddddddddddddddddy/hh::////////////:.`
|
||||
`ddddddddddddddhs./++-///////////:.`
|
||||
`dddddddddddddo::-::-:-///-:::/:.` .--`
|
||||
`ddddddddddds/`.odd+-:.hddhssdddhsydddo
|
||||
`ddddddddds/`.:-ddy./-+dd--..ddo```ydd.
|
||||
`dddddddy/.`:/.ydd.::-dd/-.`sdh` :dd+
|
||||
`dddddy/. `-:-odd/-/.ydy`` :dd: `hdy
|
||||
+/++/. ``ooo/.:-o+/ /++. -++/`
|
||||
`-::/-.`
|
||||
`-.`
|
1
scripts/.gitignore
vendored
Normal file
1
scripts/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
__pycache__/*
|
5
scripts/ascii-table.py
Executable file
5
scripts/ascii-table.py
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
rows = (128-32) // 4
|
||||
for i in range(rows):
|
||||
print("".join(list(map(lambda x: str(x*rows+i+32).ljust(5) + str(chr(x*rows + i + 32)).strip().ljust(2) + "|", range(4)))))
|
165
scripts/mediaplayer.py
Executable file
165
scripts/mediaplayer.py
Executable file
@ -0,0 +1,165 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
import signal
|
||||
import gi
|
||||
import json
|
||||
import threading
|
||||
gi.require_version('Playerctl', '2.0')
|
||||
from gi.repository import Playerctl, GLib
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
cache = {"i": 0, "stopped": True, "text": "Initializing"}
|
||||
|
||||
print_thread = None
|
||||
|
||||
def wrap_text(text, width, update):
|
||||
if len(text) <= width:
|
||||
return text
|
||||
t = text + " | "
|
||||
n = update % len(t)
|
||||
return "".join((t[n:] + t[:n])[0:width])
|
||||
|
||||
def print_from_cache():
|
||||
if cache["stopped"]:
|
||||
cache["text"] = " " + cache["text"]
|
||||
|
||||
sys.stdout.write(json.dumps(cache) + '\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
def print_every_second(width, period=1):
|
||||
global print_thread
|
||||
|
||||
print_thread = threading.Timer(period, print_every_second, [width, period])
|
||||
print_thread.start()
|
||||
|
||||
cache["i"] += 1
|
||||
cache["text"] = wrap_text(cache["formattedText"], width, cache["i"])
|
||||
|
||||
print_from_cache()
|
||||
|
||||
def save_in_cache(formattedText, player):
|
||||
logger.info('Writing output')
|
||||
|
||||
cache["formattedText"] = formattedText
|
||||
cache["class"] = f"custom-{player.props.player_name}"
|
||||
cache["alt"] = player.props.player_name
|
||||
|
||||
|
||||
def on_play(player, status, manager):
|
||||
logger.info('Received new playback status')
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
def on_metadata(player, metadata, manager):
|
||||
logger.info('Received new metadata')
|
||||
cache["stopped"] = False
|
||||
track_info = ''
|
||||
|
||||
if player.props.player_name == 'spotify' and \
|
||||
'mpris:trackid' in metadata.keys() and \
|
||||
':ad:' in player.props.metadata['mpris:trackid']:
|
||||
track_info = 'AD PLAYING'
|
||||
elif player.get_artist() != '' and player.get_title() != '':
|
||||
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
|
||||
title=player.get_title())
|
||||
else:
|
||||
track_info = player.get_title()
|
||||
|
||||
if player.props.status != 'Playing' and track_info:
|
||||
cache["stopped"] = True
|
||||
|
||||
save_in_cache(track_info, player)
|
||||
print_from_cache()
|
||||
|
||||
|
||||
def on_player_appeared(manager, player, selected_player=None):
|
||||
if player is not None and (selected_player is None or player.name == selected_player):
|
||||
cache["stopped"] = False
|
||||
init_player(manager, player)
|
||||
else:
|
||||
logger.debug("New player appeared, but it's not the selected player, skipping")
|
||||
|
||||
|
||||
def on_player_vanished(manager, player):
|
||||
logger.info('Player has vanished')
|
||||
cache["stopped"] = True
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def init_player(manager, name):
|
||||
logger.debug('Initialize player: {player}'.format(player=name.name))
|
||||
player = Playerctl.Player.new_from_name(name)
|
||||
player.connect('playback-status', on_play, manager)
|
||||
player.connect('metadata', on_metadata, manager)
|
||||
manager.manage_player(player)
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
logger.debug('Received signal to stop, exiting')
|
||||
cache["stopped"] = True
|
||||
print_thread.cancel()
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
# loop.quit()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Increase verbosity with every occurrence of -v
|
||||
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||
|
||||
# Define for which player we're listening
|
||||
parser.add_argument('--player')
|
||||
|
||||
parser.add_argument('--width', default=20)
|
||||
parser.add_argument('--period', default=1)
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
arguments = parse_arguments()
|
||||
|
||||
# Initialize logging
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
|
||||
format='%(name)s %(levelname)s %(message)s')
|
||||
|
||||
# Logging is set by default to WARN and higher.
|
||||
# With every occurrence of -v it's lowered by one
|
||||
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||
|
||||
# Log the sent command line arguments
|
||||
logger.debug('Arguments received {}'.format(vars(arguments)))
|
||||
|
||||
manager = Playerctl.PlayerManager()
|
||||
loop = GLib.MainLoop()
|
||||
|
||||
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
|
||||
manager.connect('player-vanished', on_player_vanished)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||||
|
||||
for player in manager.props.player_names:
|
||||
if arguments.player is not None and arguments.player != player.name:
|
||||
logger.debug('{player} is not the filtered player, skipping it'
|
||||
.format(player=player.name)
|
||||
)
|
||||
continue
|
||||
|
||||
init_player(manager, player)
|
||||
|
||||
print_every_second(int(arguments.width), float(arguments.period))
|
||||
loop.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
4
scripts/songnotification
Executable file
4
scripts/songnotification
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
song=$(playerctl metadata --format "{{ title }}\n{{ artist }}\n{{ album }}")
|
||||
notify-send "Spotify" "$song" #--icon=~/.config/spotifyd/penguin.jpg
|
||||
|
Loading…
Reference in New Issue
Block a user