Skip to content

Instantly share code, notes, and snippets.

View husen-hn's full-sized avatar
🏠
Working from home

Hossein HassanNejad husen-hn

🏠
Working from home
View GitHub Profile
@husen-hn
husen-hn / i3shut
Created August 6, 2020 04:59
i3 : Set shut down, restart and locking features
bindsym $mod+0 mode "$mode_system"
set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
mode "$mode_system" {
bindsym l exec --no-startup-id i3exit lock, mode "default"
bindsym s exec --no-startup-id i3exit suspend, mode "default"
bindsym u exec --no-startup-id i3exit switch_user, mode "default"
bindsym e exec --no-startup-id i3exit logout, mode "default"
bindsym h exec --no-startup-id i3exit hibernate, mode "default"
bindsym r exec --no-startup-id i3exit reboot, mode "default"
bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
exec --no-startup-id start-pulseaudio-x11
exec --no-startup-id pa-applet
bindsym $mod+Ctrl+m exec pavucontrol
data class MyData(var value: String)
fun main() {
var mutable = MyData("Foo")
val immutable = MyData("Bar")
mutable = immutable // This is fine
immutable = mutable // This will not compile
}
class Space{
var squares = 24
var triangles = 23
val all: Int
get() {
return squares + triangles
}
}
val space = Space()
println(space.all) // result 47
val squares = 30
space.squares = squares * 2
println(space.all) // result 84
sealed class MyValue(default: String) {
open val value: String = default
class Immutable(default: String): MyValue(default) {
fun mutate(): Mutable = Mutable(value)
}
class Mutable(default: String) : MyValue(default) {
fun immutate(): Immutable = Immutable(value)
val mutable = MyValue.Mutable("Foo")
val immutable = MyValue.Immutable("Foo")
mutable.value = "Bar" // This is fine
immutable.value = "Bar" // This will not compile because value cannot be reassigned
val mutated = immutable.mutate()
mutated.value = "Bar" // This is fine
class MyOtherValue(default: String) {
lateinit var value: String
private set
}
val myOtherValue = MyOtherValue("Foo")
myOtherValue.value = "Bar" // This will not compile because value cannot be reassigned
class MutableObj {
var value = ""
override fun toString(): String {
return "MutableObj(value='$value')"
}
}
fun main() {
val mutableObj:MutableObj = MutableObj()//(1)